[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 4/9] tests/tcg/s390x: Fix EXRL tests
From: |
Cornelia Huck |
Subject: |
[PULL 4/9] tests/tcg/s390x: Fix EXRL tests |
Date: |
Thu, 21 Jan 2021 13:16:24 +0100 |
From: David Hildenbrand <david@redhat.com>
The current EXRL tests crash on real machines: we must not use r0 as a base
register for trt/trtr, otherwise the content gets ignored. Also, we must
not use r0 for exrl, otherwise it gets ignored.
Let's use the "a" constraint so we get a general purpose register != r0.
For op2, we can simply specify a memory operand directly via "Q" (Memory
reference without index register and with short displacement).
Fixes: ad8c851d2e77 ("target/s390x: add EX support for TRT and TRTR")
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20210111163845.18148-5-david@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
tests/tcg/s390x/exrl-trt.c | 8 ++++----
tests/tcg/s390x/exrl-trtr.c | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/tests/tcg/s390x/exrl-trt.c b/tests/tcg/s390x/exrl-trt.c
index 3c5323aecb47..16711a318182 100644
--- a/tests/tcg/s390x/exrl-trt.c
+++ b/tests/tcg/s390x/exrl-trt.c
@@ -19,7 +19,7 @@ int main(void)
}
asm volatile(
" j 2f\n"
- "1: trt 0(1,%[op1]),0(%[op2])\n"
+ "1: trt 0(1,%[op1]),%[op2]\n"
"2: exrl %[op1_len],1b\n"
" lgr %[r1],%%r1\n"
" lgr %[r2],%%r2\n"
@@ -27,9 +27,9 @@ int main(void)
: [r1] "+r" (r1),
[r2] "+r" (r2),
[cc] "=r" (cc)
- : [op1] "r" (&op1),
- [op1_len] "r" (5),
- [op2] "r" (&op2)
+ : [op1] "a" (&op1),
+ [op1_len] "a" (5),
+ [op2] "Q" (op2)
: "r1", "r2", "cc");
cc = (cc >> 28) & 3;
if (cc != 2) {
diff --git a/tests/tcg/s390x/exrl-trtr.c b/tests/tcg/s390x/exrl-trtr.c
index c33153ad7e1d..5f30cda6bd9e 100644
--- a/tests/tcg/s390x/exrl-trtr.c
+++ b/tests/tcg/s390x/exrl-trtr.c
@@ -19,7 +19,7 @@ int main(void)
}
asm volatile(
" j 2f\n"
- "1: trtr 3(1,%[op1]),0(%[op2])\n"
+ "1: trtr 3(1,%[op1]),%[op2]\n"
"2: exrl %[op1_len],1b\n"
" lgr %[r1],%%r1\n"
" lgr %[r2],%%r2\n"
@@ -27,9 +27,9 @@ int main(void)
: [r1] "+r" (r1),
[r2] "+r" (r2),
[cc] "=r" (cc)
- : [op1] "r" (&op1),
- [op1_len] "r" (3),
- [op2] "r" (&op2)
+ : [op1] "a" (&op1),
+ [op1_len] "a" (3),
+ [op2] "Q" (op2)
: "r1", "r2", "cc");
cc = (cc >> 28) & 3;
if (cc != 1) {
--
2.26.2
- [PULL 0/9] s390x updates, Cornelia Huck, 2021/01/21
- [PULL 1/9] s390x/tcg: Fix ALGSI, Cornelia Huck, 2021/01/21
- [PULL 2/9] s390x/tcg: Fix RISBHG, Cornelia Huck, 2021/01/21
- [PULL 4/9] tests/tcg/s390x: Fix EXRL tests,
Cornelia Huck <=
- [PULL 3/9] s390x/tcg: Don't ignore content in r0 when not specified via "b" or "x", Cornelia Huck, 2021/01/21
- [PULL 5/9] s390x/tcg: Ignore register content if b1/b2 is zero when handling EXECUTE, Cornelia Huck, 2021/01/21
- [PULL 6/9] update-linux-headers: Include const.h, Cornelia Huck, 2021/01/21
- [PULL 7/9] Update linux headers to 5.11-rc2, Cornelia Huck, 2021/01/21
- [PULL 9/9] s390x: Use strpadcpy for copying vm name, Cornelia Huck, 2021/01/21
- [PULL 8/9] vfio-ccw: Connect the device request notifier, Cornelia Huck, 2021/01/21
- Re: [PULL 0/9] s390x updates, Peter Maydell, 2021/01/22