diff mbox series

tests/tcg/s390x: Fix test-svc with clang

Message ID 20230707154242.457706-1-iii@linux.ibm.com (mailing list archive)
State New, archived
Headers show
Series tests/tcg/s390x: Fix test-svc with clang | expand

Commit Message

Ilya Leoshkevich July 7, 2023, 3:42 p.m. UTC
clang does not support expressions involving symbols in instructions
like lghi yet, so building hello-s390x-asm.S with it fails.

Move the expression to the literal pool and load it from there.

Reported-by: Thomas Huth <thuth@redhat.com>
Fixes: be4a4cb42961 ("tests/tcg/s390x: Test single-stepping SVC")
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
 tests/tcg/s390x/gdbstub/test-svc.py | 2 +-
 tests/tcg/s390x/hello-s390x-asm.S   | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

Comments

Thomas Huth July 10, 2023, 7:31 a.m. UTC | #1
On 07/07/2023 17.42, Ilya Leoshkevich wrote:
> clang does not support expressions involving symbols in instructions
> like lghi yet, so building hello-s390x-asm.S with it fails.
> 
> Move the expression to the literal pool and load it from there.
> 
> Reported-by: Thomas Huth <thuth@redhat.com>
> Fixes: be4a4cb42961 ("tests/tcg/s390x: Test single-stepping SVC")
> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
> ---
>   tests/tcg/s390x/gdbstub/test-svc.py | 2 +-
>   tests/tcg/s390x/hello-s390x-asm.S   | 4 +++-
>   2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/tcg/s390x/gdbstub/test-svc.py b/tests/tcg/s390x/gdbstub/test-svc.py
> index 7851ca72846..18fad3f163d 100644
> --- a/tests/tcg/s390x/gdbstub/test-svc.py
> +++ b/tests/tcg/s390x/gdbstub/test-svc.py
> @@ -25,7 +25,7 @@ def run_test():
>       gdb.execute("si")
>       report("larl\t" in gdb.execute("x/i $pc", False, True), "insn #2")
>       gdb.execute("si")
> -    report("lghi\t" in gdb.execute("x/i $pc", False, True), "insn #3")
> +    report("lgrl\t" in gdb.execute("x/i $pc", False, True), "insn #3")
>       gdb.execute("si")
>       report("svc\t" in gdb.execute("x/i $pc", False, True), "insn #4")
>       gdb.execute("si")
> diff --git a/tests/tcg/s390x/hello-s390x-asm.S b/tests/tcg/s390x/hello-s390x-asm.S
> index 2e9faa16047..4dbda12d35d 100644
> --- a/tests/tcg/s390x/hello-s390x-asm.S
> +++ b/tests/tcg/s390x/hello-s390x-asm.S
> @@ -8,7 +8,7 @@ _start:
>   /* puts("Hello, World!"); */
>   lghi %r2,1
>   larl %r3,foo
> -lghi %r4,foo_end-foo
> +lgrl %r4,foo_len
>   svc 4
>   
>   /* exit(0); */
> @@ -18,3 +18,5 @@ svc 1
>   .align 2
>   foo: .asciz "Hello, World!\n"
>   foo_end:
> +.align 8
> +foo_len: .quad foo_end-foo

Thanks, that seems to work! Queued now.

Tested-by: Thomas Huth <thuth@redhat.com>
diff mbox series

Patch

diff --git a/tests/tcg/s390x/gdbstub/test-svc.py b/tests/tcg/s390x/gdbstub/test-svc.py
index 7851ca72846..18fad3f163d 100644
--- a/tests/tcg/s390x/gdbstub/test-svc.py
+++ b/tests/tcg/s390x/gdbstub/test-svc.py
@@ -25,7 +25,7 @@  def run_test():
     gdb.execute("si")
     report("larl\t" in gdb.execute("x/i $pc", False, True), "insn #2")
     gdb.execute("si")
-    report("lghi\t" in gdb.execute("x/i $pc", False, True), "insn #3")
+    report("lgrl\t" in gdb.execute("x/i $pc", False, True), "insn #3")
     gdb.execute("si")
     report("svc\t" in gdb.execute("x/i $pc", False, True), "insn #4")
     gdb.execute("si")
diff --git a/tests/tcg/s390x/hello-s390x-asm.S b/tests/tcg/s390x/hello-s390x-asm.S
index 2e9faa16047..4dbda12d35d 100644
--- a/tests/tcg/s390x/hello-s390x-asm.S
+++ b/tests/tcg/s390x/hello-s390x-asm.S
@@ -8,7 +8,7 @@  _start:
 /* puts("Hello, World!"); */
 lghi %r2,1
 larl %r3,foo
-lghi %r4,foo_end-foo
+lgrl %r4,foo_len
 svc 4
 
 /* exit(0); */
@@ -18,3 +18,5 @@  svc 1
 .align 2
 foo: .asciz "Hello, World!\n"
 foo_end:
+.align 8
+foo_len: .quad foo_end-foo