* [Qemu-devel] [PATCH for-1.5 1/2] tcg-arm: Fix 64-bit tlb load for pre-v6
2013-04-29 15:08 [Qemu-devel] [PATCH for-1.5 0/2] more tcg-arm cleanups Richard Henderson
@ 2013-04-29 15:08 ` Richard Henderson
2013-04-29 15:08 ` [Qemu-devel] [PATCH for-1.5 2/2] tcg-arm: Use movi32 in exit_tb Richard Henderson
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Richard Henderson @ 2013-04-29 15:08 UTC (permalink / raw)
To: qemu-devel; +Cc: aliguori, aurelien
Found by inspection, since the effect of the bug was simply to
send all memory ops through the slow path.
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
tcg/arm/tcg-target.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tcg/arm/tcg-target.c b/tcg/arm/tcg-target.c
index 7216f7a..12edad4 100644
--- a/tcg/arm/tcg-target.c
+++ b/tcg/arm/tcg-target.c
@@ -1190,7 +1190,7 @@ static void tcg_out_tlb_read(TCGContext *s, TCGReg addrlo, TCGReg addrhi,
tcg_out_memop_12(s, COND_AL, INSN_LDR_IMM, TCG_REG_R0,
TCG_REG_R2, tlb_offset, 1, 1);
if (TARGET_LONG_BITS == 64) {
- tcg_out_memop_12(s, COND_AL, INSN_LDR_IMM, TCG_REG_R0,
+ tcg_out_memop_12(s, COND_AL, INSN_LDR_IMM, TCG_REG_R1,
TCG_REG_R2, 4, 1, 0);
}
}
--
1.8.1.4
^ permalink raw reply related [flat|nested] 5+ messages in thread* [Qemu-devel] [PATCH for-1.5 2/2] tcg-arm: Use movi32 in exit_tb
2013-04-29 15:08 [Qemu-devel] [PATCH for-1.5 0/2] more tcg-arm cleanups Richard Henderson
2013-04-29 15:08 ` [Qemu-devel] [PATCH for-1.5 1/2] tcg-arm: Fix 64-bit tlb load for pre-v6 Richard Henderson
@ 2013-04-29 15:08 ` Richard Henderson
2013-05-02 7:40 ` [Qemu-devel] [PATCH for-1.5 0/2] more tcg-arm cleanups Richard Henderson
2013-05-03 10:01 ` Aurelien Jarno
3 siblings, 0 replies; 5+ messages in thread
From: Richard Henderson @ 2013-04-29 15:08 UTC (permalink / raw)
To: qemu-devel; +Cc: aliguori, aurelien
Avoid the mini constant pool for armv7, and avoid replicating
the test for pre-v7.
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
tcg/arm/tcg-target.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/tcg/arm/tcg-target.c b/tcg/arm/tcg-target.c
index 12edad4..3d43412 100644
--- a/tcg/arm/tcg-target.c
+++ b/tcg/arm/tcg-target.c
@@ -1611,17 +1611,15 @@ static inline void tcg_out_op(TCGContext *s, TCGOpcode opc,
switch (opc) {
case INDEX_op_exit_tb:
- {
+ if (use_armv7_instructions || check_fit_imm(args[0])) {
+ tcg_out_movi32(s, COND_AL, TCG_REG_R0, args[0]);
+ tcg_out_goto(s, COND_AL, (tcg_target_ulong) tb_ret_addr);
+ } else {
uint8_t *ld_ptr = s->code_ptr;
- if (args[0] >> 8)
- tcg_out_ld32_12(s, COND_AL, TCG_REG_R0, TCG_REG_PC, 0);
- else
- tcg_out_dat_imm(s, COND_AL, ARITH_MOV, TCG_REG_R0, 0, args[0]);
+ tcg_out_ld32_12(s, COND_AL, TCG_REG_R0, TCG_REG_PC, 0);
tcg_out_goto(s, COND_AL, (tcg_target_ulong) tb_ret_addr);
- if (args[0] >> 8) {
- *ld_ptr = (uint8_t) (s->code_ptr - ld_ptr) - 8;
- tcg_out32(s, args[0]);
- }
+ *ld_ptr = (uint8_t) (s->code_ptr - ld_ptr) - 8;
+ tcg_out32(s, args[0]);
}
break;
case INDEX_op_goto_tb:
--
1.8.1.4
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [Qemu-devel] [PATCH for-1.5 0/2] more tcg-arm cleanups
2013-04-29 15:08 [Qemu-devel] [PATCH for-1.5 0/2] more tcg-arm cleanups Richard Henderson
2013-04-29 15:08 ` [Qemu-devel] [PATCH for-1.5 1/2] tcg-arm: Fix 64-bit tlb load for pre-v6 Richard Henderson
2013-04-29 15:08 ` [Qemu-devel] [PATCH for-1.5 2/2] tcg-arm: Use movi32 in exit_tb Richard Henderson
@ 2013-05-02 7:40 ` Richard Henderson
2013-05-03 10:01 ` Aurelien Jarno
3 siblings, 0 replies; 5+ messages in thread
From: Richard Henderson @ 2013-05-02 7:40 UTC (permalink / raw)
To: qemu-devel; +Cc: aliguori, aurelien
Quick ping since the freeze is coming soon...
r~
On 2013-04-29 16:08, Richard Henderson wrote:
> The first patch really ought to get into 1.5.
>
> The second patch is a re-done version of the 19/19 patch from version 5
> of the previous patch series. We had dropped that due to wanting to
> avoid 16MB assumption changes. The revised patch merely changes how we
> handle the constant that needs loading.
>
> Please apply.
>
>
> r~
>
>
> Richard Henderson (2):
> tcg-arm: Fix 64-bit tlb load for pre-v6
> tcg-arm: Use movi32 in exit_tb
>
> tcg/arm/tcg-target.c | 18 ++++++++----------
> 1 file changed, 8 insertions(+), 10 deletions(-)
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH for-1.5 0/2] more tcg-arm cleanups
2013-04-29 15:08 [Qemu-devel] [PATCH for-1.5 0/2] more tcg-arm cleanups Richard Henderson
` (2 preceding siblings ...)
2013-05-02 7:40 ` [Qemu-devel] [PATCH for-1.5 0/2] more tcg-arm cleanups Richard Henderson
@ 2013-05-03 10:01 ` Aurelien Jarno
3 siblings, 0 replies; 5+ messages in thread
From: Aurelien Jarno @ 2013-05-03 10:01 UTC (permalink / raw)
To: Richard Henderson; +Cc: aliguori, qemu-devel
On Mon, Apr 29, 2013 at 08:08:21AM -0700, Richard Henderson wrote:
> The first patch really ought to get into 1.5.
>
> The second patch is a re-done version of the 19/19 patch from version 5
> of the previous patch series. We had dropped that due to wanting to
> avoid 16MB assumption changes. The revised patch merely changes how we
> handle the constant that needs loading.
>
> Please apply.
>
>
> r~
>
>
> Richard Henderson (2):
> tcg-arm: Fix 64-bit tlb load for pre-v6
> tcg-arm: Use movi32 in exit_tb
>
> tcg/arm/tcg-target.c | 18 ++++++++----------
> 1 file changed, 8 insertions(+), 10 deletions(-)
>
Thanks, both applied.
--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net
^ permalink raw reply [flat|nested] 5+ messages in thread