No need for indirection in exception checkers.
authorNikolay Igotti <olonho@chromium.org>
Fri, 22 Feb 2013 10:24:27 +0000 (14:24 +0400)
committerNikolay Igotti <olonho@chromium.org>
Fri, 22 Feb 2013 10:24:27 +0000 (14:24 +0400)
mono/mini/cpu-arm.md
mono/mini/mini-arm.c

index b09a6199e7fbdbfb778386362f5e7517957c64e3..fc873899a61b7bda2fa9e0a2ce23af502b536896 100644 (file)
@@ -143,19 +143,19 @@ xor_imm: dest:i src1:i len:12
 shl_imm: dest:i src1:i len:8
 shr_imm: dest:i src1:i len:8
 shr_un_imm: dest:i src1:i len:8
-cond_exc_eq: len:16
-cond_exc_ne_un: len:16
-cond_exc_lt: len:16
-cond_exc_lt_un: len:16
-cond_exc_gt: len:16
-cond_exc_gt_un: len:16
-cond_exc_ge: len:16
-cond_exc_ge_un: len:16
-cond_exc_le: len:16
-cond_exc_le_un: len:16
-cond_exc_ov: len:16
+cond_exc_eq: len:8
+cond_exc_ne_un: len:8
+cond_exc_lt: len:8
+cond_exc_lt_un: len:8
+cond_exc_gt: len:8
+cond_exc_gt_un: len:8
+cond_exc_ge: len:8
+cond_exc_ge_un: len:8
+cond_exc_le: len:8
+cond_exc_le_un: len:8
+cond_exc_ov: len:12
 cond_exc_no: len:8
-cond_exc_c: len:16
+cond_exc_c: len:12
 cond_exc_nc: len:8
 #float_beq: src1:f src2:f len:20
 #float_bne_un: src1:f src2:f len:20
index 4df8ad425e4fa6062870a6b39dd969be10a10ed7..7c055c80add486172a37e863963a840091449685 100644 (file)
@@ -2573,7 +2573,7 @@ if (0 && ins->inst_true_bb->native_offset) { \
        ARM_B_COND (code, (condcode), (code - cfg->native_code + ins->inst_true_bb->native_offset) & 0xffffff); \
 } else { \
        mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_BB, ins->inst_true_bb); \
-       code = mono_arm_patchable_b (code, (condcode)); \
+       ARM_B_COND (code, (condcode), 0); \
 }
 
 #define EMIT_COND_BRANCH(ins,cond) EMIT_COND_BRANCH_FLAGS(ins, branch_cc_table [(cond)])
@@ -2586,8 +2586,8 @@ if (0 && ins->inst_true_bb->native_offset) { \
 #define EMIT_COND_SYSTEM_EXCEPTION_FLAGS(condcode,exc_name)            \
         do {                                                        \
                mono_add_patch_info (cfg, code - cfg->native_code,   \
-                                   MONO_PATCH_INFO_EXC, exc_name);  \
-               code = mono_arm_patchable_bl (code, (condcode));    \
+                                   MONO_PATCH_INFO_EXC, exc_name); \
+               ARM_BL_COND (code, (condcode), 0); \
        } while (0); 
 
 #define EMIT_COND_SYSTEM_EXCEPTION(cond,exc_name) EMIT_COND_SYSTEM_EXCEPTION_FLAGS(branch_cc_table [(cond)], (exc_name))