|
@@ -112,13 +112,12 @@ static TCGReg tcg_target_call_oarg_reg(TCGCallReturnKind kind, int slot)
|
|
return TCG_REG_A0 + slot;
|
|
return TCG_REG_A0 + slot;
|
|
}
|
|
}
|
|
|
|
|
|
-#define TCG_CT_CONST_ZERO 0x100
|
|
|
|
-#define TCG_CT_CONST_S12 0x200
|
|
|
|
-#define TCG_CT_CONST_N12 0x400
|
|
|
|
-#define TCG_CT_CONST_M12 0x800
|
|
|
|
-#define TCG_CT_CONST_J12 0x1000
|
|
|
|
-#define TCG_CT_CONST_S5 0x2000
|
|
|
|
-#define TCG_CT_CONST_CMP_VI 0x4000
|
|
|
|
|
|
+#define TCG_CT_CONST_S12 0x100
|
|
|
|
+#define TCG_CT_CONST_N12 0x200
|
|
|
|
+#define TCG_CT_CONST_M12 0x400
|
|
|
|
+#define TCG_CT_CONST_J12 0x800
|
|
|
|
+#define TCG_CT_CONST_S5 0x1000
|
|
|
|
+#define TCG_CT_CONST_CMP_VI 0x2000
|
|
|
|
|
|
#define ALL_GENERAL_REGS MAKE_64BIT_MASK(0, 32)
|
|
#define ALL_GENERAL_REGS MAKE_64BIT_MASK(0, 32)
|
|
#define ALL_VECTOR_REGS MAKE_64BIT_MASK(32, 32)
|
|
#define ALL_VECTOR_REGS MAKE_64BIT_MASK(32, 32)
|
|
@@ -391,9 +390,6 @@ static bool tcg_target_const_match(int64_t val, int ct,
|
|
if (ct & TCG_CT_CONST) {
|
|
if (ct & TCG_CT_CONST) {
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
- if ((ct & TCG_CT_CONST_ZERO) && val == 0) {
|
|
|
|
- return 1;
|
|
|
|
- }
|
|
|
|
if (type >= TCG_TYPE_V64) {
|
|
if (type >= TCG_TYPE_V64) {
|
|
/* Val is replicated by VECE; extract the highest element. */
|
|
/* Val is replicated by VECE; extract the highest element. */
|
|
val >>= (-8 << vece) & 63;
|
|
val >>= (-8 << vece) & 63;
|
|
@@ -2681,7 +2677,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags)
|
|
case INDEX_op_st16_i64:
|
|
case INDEX_op_st16_i64:
|
|
case INDEX_op_st32_i64:
|
|
case INDEX_op_st32_i64:
|
|
case INDEX_op_st_i64:
|
|
case INDEX_op_st_i64:
|
|
- return C_O0_I2(rZ, r);
|
|
|
|
|
|
+ return C_O0_I2(rz, r);
|
|
|
|
|
|
case INDEX_op_add_i32:
|
|
case INDEX_op_add_i32:
|
|
case INDEX_op_and_i32:
|
|
case INDEX_op_and_i32:
|
|
@@ -2707,7 +2703,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags)
|
|
|
|
|
|
case INDEX_op_sub_i32:
|
|
case INDEX_op_sub_i32:
|
|
case INDEX_op_sub_i64:
|
|
case INDEX_op_sub_i64:
|
|
- return C_O1_I2(r, rZ, rN);
|
|
|
|
|
|
+ return C_O1_I2(r, rz, rN);
|
|
|
|
|
|
case INDEX_op_mul_i32:
|
|
case INDEX_op_mul_i32:
|
|
case INDEX_op_mulsh_i32:
|
|
case INDEX_op_mulsh_i32:
|
|
@@ -2723,7 +2719,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags)
|
|
case INDEX_op_divu_i64:
|
|
case INDEX_op_divu_i64:
|
|
case INDEX_op_rem_i64:
|
|
case INDEX_op_rem_i64:
|
|
case INDEX_op_remu_i64:
|
|
case INDEX_op_remu_i64:
|
|
- return C_O1_I2(r, rZ, rZ);
|
|
|
|
|
|
+ return C_O1_I2(r, rz, rz);
|
|
|
|
|
|
case INDEX_op_shl_i32:
|
|
case INDEX_op_shl_i32:
|
|
case INDEX_op_shr_i32:
|
|
case INDEX_op_shr_i32:
|
|
@@ -2745,7 +2741,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags)
|
|
|
|
|
|
case INDEX_op_brcond_i32:
|
|
case INDEX_op_brcond_i32:
|
|
case INDEX_op_brcond_i64:
|
|
case INDEX_op_brcond_i64:
|
|
- return C_O0_I2(rZ, rZ);
|
|
|
|
|
|
+ return C_O0_I2(rz, rz);
|
|
|
|
|
|
case INDEX_op_movcond_i32:
|
|
case INDEX_op_movcond_i32:
|
|
case INDEX_op_movcond_i64:
|
|
case INDEX_op_movcond_i64:
|
|
@@ -2755,14 +2751,14 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigned flags)
|
|
case INDEX_op_add2_i64:
|
|
case INDEX_op_add2_i64:
|
|
case INDEX_op_sub2_i32:
|
|
case INDEX_op_sub2_i32:
|
|
case INDEX_op_sub2_i64:
|
|
case INDEX_op_sub2_i64:
|
|
- return C_O2_I4(r, r, rZ, rZ, rM, rM);
|
|
|
|
|
|
+ return C_O2_I4(r, r, rz, rz, rM, rM);
|
|
|
|
|
|
case INDEX_op_qemu_ld_i32:
|
|
case INDEX_op_qemu_ld_i32:
|
|
case INDEX_op_qemu_ld_i64:
|
|
case INDEX_op_qemu_ld_i64:
|
|
return C_O1_I1(r, r);
|
|
return C_O1_I1(r, r);
|
|
case INDEX_op_qemu_st_i32:
|
|
case INDEX_op_qemu_st_i32:
|
|
case INDEX_op_qemu_st_i64:
|
|
case INDEX_op_qemu_st_i64:
|
|
- return C_O0_I2(rZ, r);
|
|
|
|
|
|
+ return C_O0_I2(rz, r);
|
|
|
|
|
|
case INDEX_op_st_vec:
|
|
case INDEX_op_st_vec:
|
|
return C_O0_I2(v, r);
|
|
return C_O0_I2(v, r);
|