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 |
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 --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
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(-)