* [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user
@ 2015-08-27 23:47 Andreas Färber
2015-08-28 4:30 ` Richard Henderson
2015-08-29 6:50 ` Paolo Bonzini
0 siblings, 2 replies; 10+ messages in thread
From: Andreas Färber @ 2015-08-27 23:47 UTC (permalink / raw)
To: qemu-devel
Cc: Claudio Fontana, v2.4.0, Paolo Bonzini, Andreas Färber,
Aurelien Jarno, Richard Henderson
The argument order for the !CONFIG_SOFTMMU case was jumbled up since
ffc6372851d8631a9f9fa56ec613b3244dc635b9 ("tcg/aarch64: use 32-bit
offset for 32-bit user-mode emulation"), regressing from -rc2 to v2.4.0.
Fix their order to avoid segfaults, e.g., in openSUSE's GNU coreutils 8.24.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Richard Henderson <rth@twiddle.net>
Cc: qemu-stable@nongnu.org (v2.4.0)
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
tcg/aarch64/tcg-target.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/tcg/aarch64/tcg-target.c b/tcg/aarch64/tcg-target.c
index 01ae610..6f7dd4e 100644
--- a/tcg/aarch64/tcg-target.c
+++ b/tcg/aarch64/tcg-target.c
@@ -1224,9 +1224,8 @@ static void tcg_out_qemu_ld(TCGContext *s, TCGReg data_reg, TCGReg addr_reg,
add_qemu_ldst_label(s, true, oi, ext, data_reg, addr_reg,
s->code_ptr, label_ptr);
#else /* !CONFIG_SOFTMMU */
- tcg_out_qemu_ld_direct(s, memop, ext, data_reg,
- guest_base ? TCG_REG_GUEST_BASE : TCG_REG_XZR,
- otype, addr_reg);
+ tcg_out_qemu_ld_direct(s, memop, ext, data_reg, addr_reg, otype,
+ guest_base ? TCG_REG_GUEST_BASE : TCG_REG_XZR);
#endif /* CONFIG_SOFTMMU */
}
@@ -1245,9 +1244,8 @@ static void tcg_out_qemu_st(TCGContext *s, TCGReg data_reg, TCGReg addr_reg,
add_qemu_ldst_label(s, false, oi, (memop & MO_SIZE)== MO_64,
data_reg, addr_reg, s->code_ptr, label_ptr);
#else /* !CONFIG_SOFTMMU */
- tcg_out_qemu_st_direct(s, memop, data_reg,
- guest_base ? TCG_REG_GUEST_BASE : TCG_REG_XZR,
- otype, addr_reg);
+ tcg_out_qemu_st_direct(s, memop, data_reg, addr_reg, otype,
+ guest_base ? TCG_REG_GUEST_BASE : TCG_REG_XZR);
#endif /* CONFIG_SOFTMMU */
}
--
2.1.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user
2015-08-27 23:47 [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user Andreas Färber
@ 2015-08-28 4:30 ` Richard Henderson
2015-08-28 16:23 ` Andreas Färber
2015-08-29 6:50 ` Paolo Bonzini
1 sibling, 1 reply; 10+ messages in thread
From: Richard Henderson @ 2015-08-28 4:30 UTC (permalink / raw)
To: Andreas Färber, qemu-devel
Cc: Paolo Bonzini, Claudio Fontana, v2.4.0, Aurelien Jarno
On 08/27/2015 04:47 PM, Andreas Färber wrote:
> The argument order for the !CONFIG_SOFTMMU case was jumbled up since
> ffc6372851d8631a9f9fa56ec613b3244dc635b9 ("tcg/aarch64: use 32-bit
> offset for 32-bit user-mode emulation"), regressing from -rc2 to v2.4.0.
> Fix their order to avoid segfaults, e.g., in openSUSE's GNU coreutils 8.24.
Nack. The argument order is correct, that is...
> - tcg_out_qemu_ld_direct(s, memop, ext, data_reg,
> - guest_base ? TCG_REG_GUEST_BASE : TCG_REG_XZR,
> - otype, addr_reg);
> + tcg_out_qemu_ld_direct(s, memop, ext, data_reg, addr_reg, otype,
> + guest_base ? TCG_REG_GUEST_BASE : TCG_REG_XZR);
TCG_REG_GUEST_BASE is definitely the "base" register, holding a 64-bit host
address, while addr_reg is the "offset" register, holding a (potentially)
32-bit guest address. It is (supposed to be) the "offset" register to which
the zero-extend is applied.
If something's wrong, and I'm not currently in a position to verify one way or
another, it's in tcg_out_insn_3310.
r~
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user
2015-08-28 4:30 ` Richard Henderson
@ 2015-08-28 16:23 ` Andreas Färber
2015-08-29 5:33 ` Richard Henderson
0 siblings, 1 reply; 10+ messages in thread
From: Andreas Färber @ 2015-08-28 16:23 UTC (permalink / raw)
To: Richard Henderson, qemu-devel
Cc: Paolo Bonzini, Claudio Fontana, qemu-stable, Aurelien Jarno
Am 27.08.2015 um 22:30 schrieb Richard Henderson:
> On 08/27/2015 04:47 PM, Andreas Färber wrote:
>> The argument order for the !CONFIG_SOFTMMU case was jumbled up since
>> ffc6372851d8631a9f9fa56ec613b3244dc635b9 ("tcg/aarch64: use 32-bit
>> offset for 32-bit user-mode emulation"), regressing from -rc2 to v2.4.0.
>> Fix their order to avoid segfaults, e.g., in openSUSE's GNU coreutils
>> 8.24.
>
> Nack. The argument order is correct, that is...
>
>> - tcg_out_qemu_ld_direct(s, memop, ext, data_reg,
>> - guest_base ? TCG_REG_GUEST_BASE :
>> TCG_REG_XZR,
>> - otype, addr_reg);
>> + tcg_out_qemu_ld_direct(s, memop, ext, data_reg, addr_reg, otype,
>> + guest_base ? TCG_REG_GUEST_BASE :
>> TCG_REG_XZR);
>
> TCG_REG_GUEST_BASE is definitely the "base" register, holding a 64-bit
> host address, while addr_reg is the "offset" register, holding a
> (potentially) 32-bit guest address. It is (supposed to be) the "offset"
> register to which the zero-extend is applied.
Huh? Please see
http://git.qemu-project.org/?p=qemu.git;a=blobdiff;f=tcg/aarch64/tcg-target.c;h=4aca883b8e78b2cae6ec22c19a74f0fa9bc22bfe;hp=d1c550886a461581f93c34d5beead2b3ddfebde5;hb=ffc6372851d8631a9f9fa56ec613b3244dc635b9;hpb=6c0f0c0f124718650a8d682ba275044fc02f6fe2
@@ -1210,12 +1210,15 @@ static void tcg_out_qemu_ld(TCGContext *s,
TCGReg data_reg, TCGReg addr_reg,
tcg_insn_unit *label_ptr;
tcg_out_tlb_read(s, addr_reg, s_bits, &label_ptr, mem_index, 1);
- tcg_out_qemu_ld_direct(s, memop, ext, data_reg, addr_reg, TCG_REG_X1);
+ tcg_out_qemu_ld_direct(s, memop, ext, data_reg, addr_reg,
+ TCG_TYPE_I64, TCG_REG_X1);
add_qemu_ldst_label(s, true, oi, ext, data_reg, addr_reg,
s->code_ptr, label_ptr);
#else /* !CONFIG_SOFTMMU */
- tcg_out_qemu_ld_direct(s, memop, ext, data_reg, addr_reg,
- GUEST_BASE ? TCG_REG_GUEST_BASE : TCG_REG_XZR);
+ const TCGType otype = TARGET_LONG_BITS == 64 ? TCG_TYPE_I64 :
TCG_TYPE_I32;
+ tcg_out_qemu_ld_direct(s, memop, ext, data_reg,
+ GUEST_BASE ? TCG_REG_GUEST_BASE : TCG_REG_XZR,
+ otype, addr_reg);
#endif /* CONFIG_SOFTMMU */
}
@@ -1229,12 +1232,15 @@ static void tcg_out_qemu_st(TCGContext *s,
TCGReg data_reg, TCGReg addr_reg,
tcg_insn_unit *label_ptr;
tcg_out_tlb_read(s, addr_reg, s_bits, &label_ptr, mem_index, 0);
- tcg_out_qemu_st_direct(s, memop, data_reg, addr_reg, TCG_REG_X1);
+ tcg_out_qemu_st_direct(s, memop, data_reg, addr_reg,
+ TCG_TYPE_I64, TCG_REG_X1);
add_qemu_ldst_label(s, false, oi, s_bits == MO_64, data_reg, addr_reg,
s->code_ptr, label_ptr);
#else /* !CONFIG_SOFTMMU */
- tcg_out_qemu_st_direct(s, memop, data_reg, addr_reg,
- GUEST_BASE ? TCG_REG_GUEST_BASE : TCG_REG_XZR);
+ const TCGType otype = TARGET_LONG_BITS == 64 ? TCG_TYPE_I64 :
TCG_TYPE_I32;
+ tcg_out_qemu_st_direct(s, memop, data_reg,
+ GUEST_BASE ? TCG_REG_GUEST_BASE : TCG_REG_XZR,
+ otype, addr_reg);
#endif /* CONFIG_SOFTMMU */
}
An otype argument is being inserted as next-to-last argument for the
function definitions. Same for the softmmu callsites. Only in the *-user
callsites the argument order is being changed with addr_reg and off_r
switching order? I don't see why that should be done in this patch. If
it was wrong before, it should've been done in a separate patch.
> If something's wrong, and I'm not currently in a position to verify one
> way or another, it's in tcg_out_insn_3310.
git-bisect pointed to the above commit. You are referring to its
predecessor
http://git.qemu-project.org/?p=qemu.git;a=commit;h=6c0f0c0f124718650a8d682ba275044fc02f6fe2
? Don't spot anything obviously wrong there immediately...
Regards,
Andreas
--
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton; HRB 21284 (AG Nürnberg)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user
2015-08-28 16:23 ` Andreas Färber
@ 2015-08-29 5:33 ` Richard Henderson
0 siblings, 0 replies; 10+ messages in thread
From: Richard Henderson @ 2015-08-29 5:33 UTC (permalink / raw)
To: Andreas Färber, qemu-devel
Cc: Paolo Bonzini, Claudio Fontana, qemu-stable, Aurelien Jarno
On 08/28/2015 09:23 AM, Andreas Färber wrote:
> An otype argument is being inserted as next-to-last argument for the
> function definitions. Same for the softmmu callsites. Only in the *-user
> callsites the argument order is being changed with addr_reg and off_r
> switching order? I don't see why that should be done in this patch. If
> it was wrong before, it should've been done in a separate patch.
It wasn't "wrong" before because it didn't matter before.
The whole point of the patch is that we're changing from
(xD = data_reg, xA = addr_reg, xG = GUEST_BASE)
ldr xD, [xA, xG]
to
ldr xD, [xG, wA, uxtw]
i.e. zero-extending xA during the address formation.
Before this patch, the order of xA and xG doesn't matter; they're both straight
addition operands. After this patch, if we don't switch the argument order
it'll be xG that gets zero-extending GUEST_BASE, which is obviously incorrect.
You'll note that we also switch the argument order for the softmmu case in the
next patch, and for the same reason.
Tomorrow I'll be home and can do any further investigation in depth.
r~
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user
2015-08-27 23:47 [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user Andreas Färber
2015-08-28 4:30 ` Richard Henderson
@ 2015-08-29 6:50 ` Paolo Bonzini
2015-09-01 16:31 ` Andreas Färber
1 sibling, 1 reply; 10+ messages in thread
From: Paolo Bonzini @ 2015-08-29 6:50 UTC (permalink / raw)
To: Andreas Färber, qemu-devel
Cc: Claudio Fontana, v2.4.0, Aurelien Jarno, Richard Henderson
On 28/08/2015 01:47, Andreas Färber wrote:
> The argument order for the !CONFIG_SOFTMMU case was jumbled up since
> ffc6372851d8631a9f9fa56ec613b3244dc635b9 ("tcg/aarch64: use 32-bit
> offset for 32-bit user-mode emulation"), regressing from -rc2 to v2.4.0.
> Fix their order to avoid segfaults, e.g., in openSUSE's GNU coreutils 8.24.
How does -d out_asm change? The patch was tested on aarch64.
Paolo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user
2015-08-29 6:50 ` Paolo Bonzini
@ 2015-09-01 16:31 ` Andreas Färber
2015-09-01 20:09 ` Richard Henderson
2015-09-02 9:02 ` Paolo Bonzini
0 siblings, 2 replies; 10+ messages in thread
From: Andreas Färber @ 2015-09-01 16:31 UTC (permalink / raw)
To: Paolo Bonzini, qemu-devel
Cc: Claudio Fontana, qemu-stable, Aurelien Jarno, Richard Henderson
[-- Attachment #1: Type: text/plain, Size: 5799 bytes --]
Am 29.08.2015 um 08:50 schrieb Paolo Bonzini:
> On 28/08/2015 01:47, Andreas Färber wrote:
>> The argument order for the !CONFIG_SOFTMMU case was jumbled up since
>> ffc6372851d8631a9f9fa56ec613b3244dc635b9 ("tcg/aarch64: use 32-bit
>> offset for 32-bit user-mode emulation"), regressing from -rc2 to v2.4.0.
>> Fix their order to avoid segfaults, e.g., in openSUSE's GNU coreutils 8.24.
>
> How does -d out_asm change? The patch was tested on aarch64.
Breaking stderr log attached. Diff below.
ffc6372851d8631a9f9fa56ec613b3244dc635b9^ vs.
ffc6372851d8631a9f9fa56ec613b3244dc635b9:
@@ -53,7 +53,7 @@
0x006cd950: 52800000 mov w0, #0x0
0x006cd954: 147ffefd b #+0x1fffbf4 (addr 0x26cd548)
0x006cd958: d2800260 mov x0, #0x13
-0x006cd95c: f2ae81c0 movk x0, #0x740e, lsl #16
+0x006cd95c: f2b4fc60 movk x0, #0xa7e3, lsl #16
0x006cd960: f2c07fe0 movk x0, #0x3ff, lsl #32
0x006cd964: 147ffef9 b #+0x1fffbe4 (addr 0x26cd548)
@@ -65,53 +65,53 @@
0x006cd980: f9009e74 str x20, [x19, #312]
0x006cd984: d1018294 sub x20, x20, #0x60 (96)
0x006cd988: f9409675 ldr x21, [x19, #296]
-0x006cd98c: f83f6a95 str x21, [x20, xzr]
+0x006cd98c: f8346bf5 str x21, [sp, x20]
0x006cd990: 91002294 add x20, x20, #0x8 (8)
0x006cd994: f9409a75 ldr x21, [x19, #304]
-0x006cd998: f83f6a95 str x21, [x20, xzr]
+0x006cd998: f8346bf5 str x21, [sp, x20]
0x006cd99c: d1002294 sub x20, x20, #0x8 (8)
0x006cd9a0: f9009e74 str x20, [x19, #312]
0x006cd9a4: aa1403f5 mov x21, x20
0x006cd9a8: f9009675 str x21, [x19, #296]
0x006cd9ac: 91014294 add x20, x20, #0x50 (80)
0x006cd9b0: f9408e76 ldr x22, [x19, #280]
-0x006cd9b4: f83f6a96 str x22, [x20, xzr]
+0x006cd9b4: f8346bf6 str x22, [sp, x20]
0x006cd9b8: 91002294 add x20, x20, #0x8 (8)
0x006cd9bc: f9409276 ldr x22, [x19, #288]
-0x006cd9c0: f83f6a96 str x22, [x20, xzr]
+0x006cd9c0: f8346bf6 str x22, [sp, x20]
0x006cd9c4: 9101e2b4 add x20, x21, #0x78 (120)
0x006cd9c8: f9008e74 str x20, [x19, #280]
0x006cd9cc: 910042b6 add x22, x21, #0x10 (16)
0x006cd9d0: f9406e77 ldr x23, [x19, #216]
-0x006cd9d4: f83f6ad7 str x23, [x22, xzr]
+0x006cd9d4: f8366bf7 str x23, [sp, x22]
0x006cd9d8: 910022d6 add x22, x22, #0x8 (8)
0x006cd9dc: f9407277 ldr x23, [x19, #224]
-0x006cd9e0: f83f6ad7 str x23, [x22, xzr]
+0x006cd9e0: f8366bf7 str x23, [sp, x22]
0x006cd9e4: 910082b6 add x22, x21, #0x20 (32)
0x006cd9e8: f9407677 ldr x23, [x19, #232]
-0x006cd9ec: f83f6ad7 str x23, [x22, xzr]
+0x006cd9ec: f8366bf7 str x23, [sp, x22]
0x006cd9f0: 910022d6 add x22, x22, #0x8 (8)
0x006cd9f4: f9407a77 ldr x23, [x19, #240]
-0x006cd9f8: f83f6ad7 str x23, [x22, xzr]
+0x006cd9f8: f8366bf7 str x23, [sp, x22]
0x006cd9fc: f9402276 ldr x22, [x19, #64]
0x006cda00: f9006e76 str x22, [x19, #216]
0x006cda04: 910a8296 add x22, x20, #0x2a0 (672)
0x006cda08: f9002676 str x22, [x19, #72]
0x006cda0c: 9100c2b7 add x23, x21, #0x30 (48)
0x006cda10: f9407e78 ldr x24, [x19, #248]
-0x006cda14: f83f6af8 str x24, [x23, xzr]
+0x006cda14: f8376bf8 str x24, [sp, x23]
0x006cda18: 910022f7 add x23, x23, #0x8 (8)
0x006cda1c: f9408278 ldr x24, [x19, #256]
-0x006cda20: f83f6af8 str x24, [x23, xzr]
+0x006cda20: f8376bf8 str x24, [sp, x23]
0x006cda24: 910102b5 add x21, x21, #0x40 (64)
0x006cda28: f9408677 ldr x23, [x19, #264]
-0x006cda2c: f83f6ab7 str x23, [x21, xzr]
+0x006cda2c: f8356bf7 str x23, [sp, x21]
0x006cda30: 910022b5 add x21, x21, #0x8 (8)
0x006cda34: f9408a77 ldr x23, [x19, #272]
-0x006cda38: f83f6ab7 str x23, [x21, xzr]
+0x006cda38: f8356bf7 str x23, [sp, x21]
0x006cda3c: 91010294 add x20, x20, #0x40 (64)
0x006cda40: f9002274 str x20, [x19, #64]
-0x006cda44: f83f6a9f str xzr, [x20, xzr]
+0x006cda44: f8346bff str xzr, [sp, x20]
0x006cda48: 91002294 add x20, x20, #0x8 (8)
0x006cda4c: f9002274 str x20, [x19, #64]
0x006cda50: cb160295 sub x21, x20, x22
@@ -136,7 +136,7 @@
0x006cda9c: f2c00814 movk x20, #0x40, lsl #32
0x006cdaa0: f900a274 str x20, [x19, #320]
0x006cdaa4: d2801000 mov x0, #0x80
-0x006cdaa8: f2ae81c0 movk x0, #0x740e, lsl #16
+0x006cdaa8: f2b4fc60 movk x0, #0xa7e3, lsl #16
0x006cdaac: f2c07fe0 movk x0, #0x3ff, lsl #32
0x006cdab0: 147ffea6 b #+0x1fffa98 (addr 0x26cd548)
0x006cdab4: 14000000 b #+0x0 (addr 0x6cdab4)
@@ -145,135024 +145,12 @@
0x006cdac0: f2c00814 movk x20, #0x40, lsl #32
0x006cdac4: f900a274 str x20, [x19, #320]
0x006cdac8: d2801020 mov x0, #0x81
-0x006cdacc: f2ae81c0 movk x0, #0x740e, lsl #16
+0x006cdacc: f2b4fc60 movk x0, #0xa7e3, lsl #16
0x006cdad0: f2c07fe0 movk x0, #0x3ff, lsl #32
0x006cdad4: 147ffe9d b #+0x1fffa74 (addr 0x26cd548)
0x006cdad8: d2801060 mov x0, #0x83
-0x006cdadc: f2ae81c0 movk x0, #0x740e, lsl #16
+0x006cdadc: f2b4fc60 movk x0, #0xa7e3, lsl #16
0x006cdae0: f2c07fe0 movk x0, #0x3ff, lsl #32
0x006cdae4: 147ffe99 b #+0x1fffa64 (addr 0x26cd548)
-OUT: [size=180]
-0x006cdaf0: b85fc274 ldur w20, [x19, #-4]
-0x006cdaf4: 35000514 cbnz w20, #+0xa0 (addr 0x6cdb94)
[...]
+qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Regards,
Andreas
--
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton; HRB 21284 (AG Nürnberg)
[-- Attachment #2: aarch64-post.log --]
[-- Type: text/x-log, Size: 7232 bytes --]
host mmap_min_addr=0x10000
guest_base 0x0
start end size prot
0000004000000000-000000400001e000 000000000001e000 r-x
000000400001e000-000000400002d000 000000000000f000 ---
000000400002d000-0000004000030000 0000000000003000 rw-
0000004000030000-0000004000040000 0000000000010000 ---
0000004000040000-0000004000840000 0000000000800000 rw-
0000004000840000-000000400085f000 000000000001f000 r-x
000000400085f000-000000400086e000 000000000000f000 ---
000000400086e000-0000004000871000 0000000000003000 rw-
start_brk 0x0000000000000000
end_code 0x000000400001d2fc
start_code 0x0000004000000000
start_data 0x000000400002d358
end_data 0x000000400002e630
start_stack 0x000000400083f490
brk 0x000000400002f378
entry 0x0000004000840d80
PROLOGUE: [size=72]
0x026cd520: a9ba7bfd stp x29, x30, [sp, #-96]!
0x026cd524: 910003fd mov x29, sp
0x026cd528: a90153f3 stp x19, x20, [sp, #16]
0x026cd52c: a9025bf5 stp x21, x22, [sp, #32]
0x026cd530: a90363f7 stp x23, x24, [sp, #48]
0x026cd534: a9046bf9 stp x25, x26, [sp, #64]
0x026cd538: a90573fb stp x27, x28, [sp, #80]
0x026cd53c: d11203ff sub sp, sp, #0x480 (1152)
0x026cd540: aa0003f3 mov x19, x0
0x026cd544: d61f0020 br x1
0x026cd548: 911203ff add sp, sp, #0x480 (1152)
0x026cd54c: a94153f3 ldp x19, x20, [sp, #16]
0x026cd550: a9425bf5 ldp x21, x22, [sp, #32]
0x026cd554: a94363f7 ldp x23, x24, [sp, #48]
0x026cd558: a9446bf9 ldp x25, x26, [sp, #64]
0x026cd55c: a94573fb ldp x27, x28, [sp, #80]
0x026cd560: a8c67bfd ldp x29, x30, [sp], #96
0x026cd564: d65f03c0 ret
OUT: [size=72]
0x006cd920: b85fc274 ldur w20, [x19, #-4]
0x006cd924: 350001b4 cbnz w20, #+0x34 (addr 0x6cd958)
0x006cd928: f9409e74 ldr x20, [x19, #312]
0x006cd92c: f9002274 str x20, [x19, #64]
0x006cd930: d281b114 mov x20, #0xd88
0x006cd934: f2a01094 movk x20, #0x84, lsl #16
0x006cd938: f2c00814 movk x20, #0x40, lsl #32
0x006cd93c: f9009a74 str x20, [x19, #304]
0x006cd940: d2887414 mov x20, #0x43a0
0x006cd944: f2a01094 movk x20, #0x84, lsl #16
0x006cd948: f2c00814 movk x20, #0x40, lsl #32
0x006cd94c: f900a274 str x20, [x19, #320]
0x006cd950: 52800000 mov w0, #0x0
0x006cd954: 147ffefd b #+0x1fffbf4 (addr 0x26cd548)
0x006cd958: d2800260 mov x0, #0x13
0x006cd95c: f2b4fc60 movk x0, #0xa7e3, lsl #16
0x006cd960: f2c07fe0 movk x0, #0x3ff, lsl #32
0x006cd964: 147ffef9 b #+0x1fffbe4 (addr 0x26cd548)
OUT: [size=376]
0x006cd970: b85fc274 ldur w20, [x19, #-4]
0x006cd974: 35000b34 cbnz w20, #+0x164 (addr 0x6cdad8)
0x006cd978: f9409e74 ldr x20, [x19, #312]
0x006cd97c: d1120294 sub x20, x20, #0x480 (1152)
0x006cd980: f9009e74 str x20, [x19, #312]
0x006cd984: d1018294 sub x20, x20, #0x60 (96)
0x006cd988: f9409675 ldr x21, [x19, #296]
0x006cd98c: f8346bf5 str x21, [sp, x20]
0x006cd990: 91002294 add x20, x20, #0x8 (8)
0x006cd994: f9409a75 ldr x21, [x19, #304]
0x006cd998: f8346bf5 str x21, [sp, x20]
0x006cd99c: d1002294 sub x20, x20, #0x8 (8)
0x006cd9a0: f9009e74 str x20, [x19, #312]
0x006cd9a4: aa1403f5 mov x21, x20
0x006cd9a8: f9009675 str x21, [x19, #296]
0x006cd9ac: 91014294 add x20, x20, #0x50 (80)
0x006cd9b0: f9408e76 ldr x22, [x19, #280]
0x006cd9b4: f8346bf6 str x22, [sp, x20]
0x006cd9b8: 91002294 add x20, x20, #0x8 (8)
0x006cd9bc: f9409276 ldr x22, [x19, #288]
0x006cd9c0: f8346bf6 str x22, [sp, x20]
0x006cd9c4: 9101e2b4 add x20, x21, #0x78 (120)
0x006cd9c8: f9008e74 str x20, [x19, #280]
0x006cd9cc: 910042b6 add x22, x21, #0x10 (16)
0x006cd9d0: f9406e77 ldr x23, [x19, #216]
0x006cd9d4: f8366bf7 str x23, [sp, x22]
0x006cd9d8: 910022d6 add x22, x22, #0x8 (8)
0x006cd9dc: f9407277 ldr x23, [x19, #224]
0x006cd9e0: f8366bf7 str x23, [sp, x22]
0x006cd9e4: 910082b6 add x22, x21, #0x20 (32)
0x006cd9e8: f9407677 ldr x23, [x19, #232]
0x006cd9ec: f8366bf7 str x23, [sp, x22]
0x006cd9f0: 910022d6 add x22, x22, #0x8 (8)
0x006cd9f4: f9407a77 ldr x23, [x19, #240]
0x006cd9f8: f8366bf7 str x23, [sp, x22]
0x006cd9fc: f9402276 ldr x22, [x19, #64]
0x006cda00: f9006e76 str x22, [x19, #216]
0x006cda04: 910a8296 add x22, x20, #0x2a0 (672)
0x006cda08: f9002676 str x22, [x19, #72]
0x006cda0c: 9100c2b7 add x23, x21, #0x30 (48)
0x006cda10: f9407e78 ldr x24, [x19, #248]
0x006cda14: f8376bf8 str x24, [sp, x23]
0x006cda18: 910022f7 add x23, x23, #0x8 (8)
0x006cda1c: f9408278 ldr x24, [x19, #256]
0x006cda20: f8376bf8 str x24, [sp, x23]
0x006cda24: 910102b5 add x21, x21, #0x40 (64)
0x006cda28: f9408677 ldr x23, [x19, #264]
0x006cda2c: f8356bf7 str x23, [sp, x21]
0x006cda30: 910022b5 add x21, x21, #0x8 (8)
0x006cda34: f9408a77 ldr x23, [x19, #272]
0x006cda38: f8356bf7 str x23, [sp, x21]
0x006cda3c: 91010294 add x20, x20, #0x40 (64)
0x006cda40: f9002274 str x20, [x19, #64]
0x006cda44: f8346bff str xzr, [sp, x20]
0x006cda48: 91002294 add x20, x20, #0x8 (8)
0x006cda4c: f9002274 str x20, [x19, #64]
0x006cda50: cb160295 sub x21, x20, x22
0x006cda54: f10002bf cmp x21, #0x0 (0)
0x006cda58: 1a9f07f7 cset w23, ne
0x006cda5c: b9020e77 str w23, [x19, #524]
0x006cda60: d360feb7 lsr x23, x21, #32
0x006cda64: b9020a77 str w23, [x19, #520]
0x006cda68: eb16029f cmp x20, x22
0x006cda6c: 1a9f37f7 cset w23, hs
0x006cda70: b9020277 str w23, [x19, #512]
0x006cda74: ca1402b5 eor x21, x21, x20
0x006cda78: ca160294 eor x20, x20, x22
0x006cda7c: 8a1402b4 and x20, x21, x20
0x006cda80: d360fe94 lsr x20, x20, #32
0x006cda84: b9020674 str w20, [x19, #516]
0x006cda88: b9420e74 ldr w20, [x19, #524]
0x006cda8c: 35000154 cbnz w20, #+0x28 (addr 0x6cdab4)
0x006cda90: 14000000 b #+0x0 (addr 0x6cda90)
0x006cda94: d2887b94 mov x20, #0x43dc
0x006cda98: f2a01094 movk x20, #0x84, lsl #16
0x006cda9c: f2c00814 movk x20, #0x40, lsl #32
0x006cdaa0: f900a274 str x20, [x19, #320]
0x006cdaa4: d2801000 mov x0, #0x80
0x006cdaa8: f2b4fc60 movk x0, #0xa7e3, lsl #16
0x006cdaac: f2c07fe0 movk x0, #0x3ff, lsl #32
0x006cdab0: 147ffea6 b #+0x1fffa98 (addr 0x26cd548)
0x006cdab4: 14000000 b #+0x0 (addr 0x6cdab4)
0x006cdab8: d2887a14 mov x20, #0x43d0
0x006cdabc: f2a01094 movk x20, #0x84, lsl #16
0x006cdac0: f2c00814 movk x20, #0x40, lsl #32
0x006cdac4: f900a274 str x20, [x19, #320]
0x006cdac8: d2801020 mov x0, #0x81
0x006cdacc: f2b4fc60 movk x0, #0xa7e3, lsl #16
0x006cdad0: f2c07fe0 movk x0, #0x3ff, lsl #32
0x006cdad4: 147ffe9d b #+0x1fffa74 (addr 0x26cd548)
0x006cdad8: d2801060 mov x0, #0x83
0x006cdadc: f2b4fc60 movk x0, #0xa7e3, lsl #16
0x006cdae0: f2c07fe0 movk x0, #0x3ff, lsl #32
0x006cdae4: 147ffe99 b #+0x1fffa64 (addr 0x26cd548)
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user
2015-09-01 16:31 ` Andreas Färber
@ 2015-09-01 20:09 ` Richard Henderson
2015-09-02 9:02 ` Paolo Bonzini
1 sibling, 0 replies; 10+ messages in thread
From: Richard Henderson @ 2015-09-01 20:09 UTC (permalink / raw)
To: Andreas Färber, Paolo Bonzini, qemu-devel
Cc: Claudio Fontana, qemu-stable, Aurelien Jarno
On 09/01/2015 09:31 AM, Andreas Färber wrote:
> -0x006cd98c: f83f6a95 str x21, [x20, xzr]
> +0x006cd98c: f8346bf5 str x21, [sp, x20]
Thanks. Sorry it took me so long to get back to this.
I've sent a patch to the list. I intended to cc you,
but somehow forgot at the last second.
r~
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user
2015-09-01 16:31 ` Andreas Färber
2015-09-01 20:09 ` Richard Henderson
@ 2015-09-02 9:02 ` Paolo Bonzini
2015-09-02 14:26 ` Richard Henderson
2015-09-02 14:38 ` Andreas Färber
1 sibling, 2 replies; 10+ messages in thread
From: Paolo Bonzini @ 2015-09-02 9:02 UTC (permalink / raw)
To: Andreas Färber, qemu-devel
Cc: Claudio Fontana, qemu-stable, Aurelien Jarno, Richard Henderson
On 01/09/2015 18:31, Andreas Färber wrote:
> Breaking stderr log attached. Diff below.
>
> ffc6372851d8631a9f9fa56ec613b3244dc635b9^ vs.
> ffc6372851d8631a9f9fa56ec613b3244dc635b9:
Richard already answered (and sent a patch), but I also have a question:
are you using --disable-guest-base, and if so why?
Paolo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user
2015-09-02 9:02 ` Paolo Bonzini
@ 2015-09-02 14:26 ` Richard Henderson
2015-09-02 14:38 ` Andreas Färber
1 sibling, 0 replies; 10+ messages in thread
From: Richard Henderson @ 2015-09-02 14:26 UTC (permalink / raw)
To: Paolo Bonzini, Andreas Färber, qemu-devel
Cc: Claudio Fontana, qemu-stable, Aurelien Jarno
On 09/02/2015 02:02 AM, Paolo Bonzini wrote:
>
>
> On 01/09/2015 18:31, Andreas Färber wrote:
>> Breaking stderr log attached. Diff below.
>>
>> ffc6372851d8631a9f9fa56ec613b3244dc635b9^ vs.
>> ffc6372851d8631a9f9fa56ec613b3244dc635b9:
>
> Richard already answered (and sent a patch), but I also have a question:
> are you using --disable-guest-base, and if so why?
Depending on the (non) overlap of host and guest addresses, 64-bit guests tend
to auto-select guest_base == 0.
r~
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user
2015-09-02 9:02 ` Paolo Bonzini
2015-09-02 14:26 ` Richard Henderson
@ 2015-09-02 14:38 ` Andreas Färber
1 sibling, 0 replies; 10+ messages in thread
From: Andreas Färber @ 2015-09-02 14:38 UTC (permalink / raw)
To: Paolo Bonzini, qemu-devel
Cc: Claudio Fontana, qemu-stable, Aurelien Jarno, Richard Henderson
Am 02.09.2015 um 11:02 schrieb Paolo Bonzini:
> On 01/09/2015 18:31, Andreas Färber wrote:
>> Breaking stderr log attached. Diff below.
>>
>> ffc6372851d8631a9f9fa56ec613b3244dc635b9^ vs.
>> ffc6372851d8631a9f9fa56ec613b3244dc635b9:
>
> Richard already answered (and sent a patch), but I also have a question:
> are you using --disable-guest-base, and if so why?
In my test builds I was using only a target list as parameter and
defaults otherwise.
Regards,
Andreas
--
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton; HRB 21284 (AG Nürnberg)
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-09-02 14:38 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-27 23:47 [Qemu-devel] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user Andreas Färber
2015-08-28 4:30 ` Richard Henderson
2015-08-28 16:23 ` Andreas Färber
2015-08-29 5:33 ` Richard Henderson
2015-08-29 6:50 ` Paolo Bonzini
2015-09-01 16:31 ` Andreas Färber
2015-09-01 20:09 ` Richard Henderson
2015-09-02 9:02 ` Paolo Bonzini
2015-09-02 14:26 ` Richard Henderson
2015-09-02 14:38 ` Andreas Färber
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.