[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH for-2.11 22/23] tcg/ppc: Look for shifted constants
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH for-2.11 22/23] tcg/ppc: Look for shifted constants |
Date: |
Thu, 3 Aug 2017 22:44:25 -0700 |
Signed-off-by: Richard Henderson <address@hidden>
---
tcg/ppc/tcg-target.inc.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/tcg/ppc/tcg-target.inc.c b/tcg/ppc/tcg-target.inc.c
index bc14d2c9c6..4b32809217 100644
--- a/tcg/ppc/tcg-target.inc.c
+++ b/tcg/ppc/tcg-target.inc.c
@@ -598,6 +598,7 @@ static void tcg_out_movi_int(TCGContext *s, TCGType type,
TCGReg ret,
{
intptr_t tb_diff;
int32_t high;
+ int lsb;
tcg_debug_assert(TCG_TARGET_REG_BITS == 64 || type == TCG_TYPE_I32);
@@ -638,6 +639,14 @@ static void tcg_out_movi_int(TCGContext *s, TCGType type,
TCGReg ret,
return;
}
+ lsb = ctz64(arg);
+ high = arg >> lsb;
+ if (arg == (int16_t)arg) {
+ tcg_out32(s, ADDI | TAI(ret, 0, high));
+ tcg_out_shli64(s, ret, ret, lsb);
+ return;
+ }
+
high = arg >> 31 >> 1;
tcg_out_movi(s, TCG_TYPE_I32, ret, high);
if (high) {
--
2.13.3
- [Qemu-devel] [PATCH for-2.11 11/23] tcg/s390: Use constant pool for cmpi, (continued)
- [Qemu-devel] [PATCH for-2.11 11/23] tcg/s390: Use constant pool for cmpi, Richard Henderson, 2017/08/04
- [Qemu-devel] [PATCH for-2.11 13/23] tcg/sparc: Introduce TCG_REG_TB, Richard Henderson, 2017/08/04
- [Qemu-devel] [PATCH for-2.11 16/23] tcg/arm: Tighten tlb indexing offset test, Richard Henderson, 2017/08/04
- [Qemu-devel] [PATCH for-2.11 09/23] tcg/s390: Use constant pool for ori, Richard Henderson, 2017/08/04
- [Qemu-devel] [PATCH for-2.11 15/23] tcg/arm: Improve tlb load for armv7, Richard Henderson, 2017/08/04
- [Qemu-devel] [PATCH for-2.11 14/23] tcg/sparc: Use constant pool for movi, Richard Henderson, 2017/08/04
- [Qemu-devel] [PATCH for-2.11 20/23] tcg/arm: Use constant pool for call, Richard Henderson, 2017/08/04
- [Qemu-devel] [PATCH for-2.11 18/23] tcg/arm: Extract INSN_NOP, Richard Henderson, 2017/08/04
- [Qemu-devel] [PATCH for-2.11 19/23] tcg/arm: Use constant pool for movi, Richard Henderson, 2017/08/04
- [Qemu-devel] [PATCH for-2.11 17/23] tcg/arm: Code rearrangement, Richard Henderson, 2017/08/04
- [Qemu-devel] [PATCH for-2.11 22/23] tcg/ppc: Look for shifted constants,
Richard Henderson <=
- [Qemu-devel] [PATCH for-2.11 21/23] tcg/ppc: Change TCG_REG_RA to TCG_REG_TB, Richard Henderson, 2017/08/04
- [Qemu-devel] [PATCH for-2.11 23/23] tcg/ppc: Use constant pool for movi, Richard Henderson, 2017/08/04