OSDN Git Service

tcg/arm: don't try to load constants using pc
authorAurelien Jarno <aurelien@aurel32.net>
Fri, 9 Apr 2010 18:52:48 +0000 (20:52 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Mon, 19 Apr 2010 05:03:06 +0000 (07:03 +0200)
There is statistically almost 0 chances to use this code, so
remove it.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
tcg/arm/tcg-target.c

index c07d284..2937c5a 100644 (file)
@@ -396,19 +396,12 @@ static inline void tcg_out_dat_imm(TCGContext *s,
 static inline void tcg_out_movi32(TCGContext *s,
                 int cond, int rd, int32_t arg)
 {
-    int offset = (uint32_t) arg - ((uint32_t) s->code_ptr + 8);
-
     /* TODO: This is very suboptimal, we can easily have a constant
      * pool somewhere after all the instructions.  */
 
     if (arg < 0 && arg > -0x100)
         return tcg_out_dat_imm(s, cond, ARITH_MVN, rd, 0, (~arg) & 0xff);
 
-    if (offset < 0x100 && offset > -0x100)
-        return offset >= 0 ?
-                tcg_out_dat_imm(s, cond, ARITH_ADD, rd, 15, offset) :
-                tcg_out_dat_imm(s, cond, ARITH_SUB, rd, 15, -offset);
-
     if (use_armv7_instructions) {
         /* use movw/movt */
         /* movw */