[Qemu-devel] [PATCH] pc-bios/s390-ccw: Use proper register names for Clang

Thomas Huth posted 1 patch 5 years, 2 months ago
Test checkpatch passed
Test asan passed
Test docker-clang@ubuntu failed
Test docker-mingw@fedora passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1547123559-30476-1-git-send-email-thuth@redhat.com
Maintainers: Cornelia Huck <cohuck@redhat.com>, Thomas Huth <thuth@redhat.com>, Christian Borntraeger <borntraeger@de.ibm.com>
pc-bios/s390-ccw/start.S | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
[Qemu-devel] [PATCH] pc-bios/s390-ccw: Use proper register names for Clang
Posted by Thomas Huth 5 years, 2 months ago
When compiling the s390-ccw firmware with Clang 7.0.1, I get the
following errors:

pc-bios/s390-ccw/start.S:62:19: error: invalid use of length addressing
        stctg 0,0,0(15)
                  ^
pc-bios/s390-ccw/start.S:63:12: error: invalid use of length addressing
        oi 6(15), 0x2
           ^
pc-bios/s390-ccw/start.S:64:19: error: invalid use of length addressing
        lctlg 0,0,0(15)
                  ^
pc-bios/s390-ccw/start.S:76:19: error: invalid use of length addressing
        stctg 0,0,0(15)
                  ^
pc-bios/s390-ccw/start.S:77:12: error: invalid use of length addressing
        ni 6(15), 0xfd
           ^
pc-bios/s390-ccw/start.S:78:19: error: invalid use of length addressing
        lctlg 0,0,0(15)
                  ^
pc-bios/s390-ccw/start.S:79:12: error: invalid operand for instruction
        br 14
           ^

Let's use proper register names like in the rest of this file to fix it.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/start.S | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/pc-bios/s390-ccw/start.S b/pc-bios/s390-ccw/start.S
index eb8d024..3b7fa3f 100644
--- a/pc-bios/s390-ccw/start.S
+++ b/pc-bios/s390-ccw/start.S
@@ -59,9 +59,9 @@ disabled_wait:
         .globl consume_sclp_int
 consume_sclp_int:
         /* enable service interrupts in cr0 */
-        stctg 0,0,0(15)
-        oi 6(15), 0x2
-        lctlg 0,0,0(15)
+        stctg   %c0,%c0,0(%r15)
+        oi      6(%r15),0x2
+        lctlg   %c0,%c0,0(%r15)
         /* prepare external call handler */
         larl %r1, external_new_code
         stg %r1, 0x1b8
@@ -73,10 +73,10 @@ consume_sclp_int:
 
 external_new_code:
         /* disable service interrupts in cr0 */
-        stctg 0,0,0(15)
-        ni 6(15), 0xfd
-        lctlg 0,0,0(15)
-        br 14
+        stctg   %c0,%c0,0(%r15)
+        ni      6(%r15),0xfd
+        lctlg   %c0,%c0,0(%r15)
+        br      %r14
 
         .align  8
 disabled_wait_psw:
-- 
1.8.3.1


Re: [Qemu-devel] [PATCH] pc-bios/s390-ccw: Use proper register names for Clang
Posted by Christian Borntraeger 5 years, 2 months ago

On 10.01.2019 13:32, Thomas Huth wrote:
> When compiling the s390-ccw firmware with Clang 7.0.1, I get the
> following errors:
> 
> pc-bios/s390-ccw/start.S:62:19: error: invalid use of length addressing
>         stctg 0,0,0(15)
>                   ^
> pc-bios/s390-ccw/start.S:63:12: error: invalid use of length addressing
>         oi 6(15), 0x2
>            ^
> pc-bios/s390-ccw/start.S:64:19: error: invalid use of length addressing
>         lctlg 0,0,0(15)
>                   ^
> pc-bios/s390-ccw/start.S:76:19: error: invalid use of length addressing
>         stctg 0,0,0(15)
>                   ^
> pc-bios/s390-ccw/start.S:77:12: error: invalid use of length addressing
>         ni 6(15), 0xfd
>            ^
> pc-bios/s390-ccw/start.S:78:19: error: invalid use of length addressing
>         lctlg 0,0,0(15)
>                   ^
> pc-bios/s390-ccw/start.S:79:12: error: invalid operand for instruction
>         br 14
>            ^
> 
> Let's use proper register names like in the rest of this file to fix it.

Sad that this does no longer work, but

Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  pc-bios/s390-ccw/start.S | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/pc-bios/s390-ccw/start.S b/pc-bios/s390-ccw/start.S
> index eb8d024..3b7fa3f 100644
> --- a/pc-bios/s390-ccw/start.S
> +++ b/pc-bios/s390-ccw/start.S
> @@ -59,9 +59,9 @@ disabled_wait:
>          .globl consume_sclp_int
>  consume_sclp_int:
>          /* enable service interrupts in cr0 */
> -        stctg 0,0,0(15)
> -        oi 6(15), 0x2
> -        lctlg 0,0,0(15)
> +        stctg   %c0,%c0,0(%r15)
> +        oi      6(%r15),0x2
> +        lctlg   %c0,%c0,0(%r15)
>          /* prepare external call handler */
>          larl %r1, external_new_code
>          stg %r1, 0x1b8
> @@ -73,10 +73,10 @@ consume_sclp_int:
>  
>  external_new_code:
>          /* disable service interrupts in cr0 */
> -        stctg 0,0,0(15)
> -        ni 6(15), 0xfd
> -        lctlg 0,0,0(15)
> -        br 14
> +        stctg   %c0,%c0,0(%r15)
> +        ni      6(%r15),0xfd
> +        lctlg   %c0,%c0,0(%r15)
> +        br      %r14
>  
>          .align  8
>  disabled_wait_psw:
> 


Re: [Qemu-devel] [PATCH] pc-bios/s390-ccw: Use proper register names for Clang
Posted by Cornelia Huck 5 years, 2 months ago
On Thu, 10 Jan 2019 13:32:39 +0100
Thomas Huth <thuth@redhat.com> wrote:

> When compiling the s390-ccw firmware with Clang 7.0.1, I get the
> following errors:
> 
> pc-bios/s390-ccw/start.S:62:19: error: invalid use of length addressing
>         stctg 0,0,0(15)
>                   ^
> pc-bios/s390-ccw/start.S:63:12: error: invalid use of length addressing
>         oi 6(15), 0x2
>            ^
> pc-bios/s390-ccw/start.S:64:19: error: invalid use of length addressing
>         lctlg 0,0,0(15)
>                   ^
> pc-bios/s390-ccw/start.S:76:19: error: invalid use of length addressing
>         stctg 0,0,0(15)
>                   ^
> pc-bios/s390-ccw/start.S:77:12: error: invalid use of length addressing
>         ni 6(15), 0xfd
>            ^
> pc-bios/s390-ccw/start.S:78:19: error: invalid use of length addressing
>         lctlg 0,0,0(15)
>                   ^
> pc-bios/s390-ccw/start.S:79:12: error: invalid operand for instruction
>         br 14
>            ^
> 
> Let's use proper register names like in the rest of this file to fix it.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  pc-bios/s390-ccw/start.S | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)

Thanks, applied.