diff --git a/src/xenia/cpu/backend/a64/a64_op.h b/src/xenia/cpu/backend/a64/a64_op.h index 2b2f58932..371f1a034 100644 --- a/src/xenia/cpu/backend/a64/a64_op.h +++ b/src/xenia/cpu/backend/a64/a64_op.h @@ -36,13 +36,20 @@ enum KeyType { KEY_TYPE_L = OPCODE_SIG_TYPE_L, KEY_TYPE_O = OPCODE_SIG_TYPE_O, KEY_TYPE_S = OPCODE_SIG_TYPE_S, - KEY_TYPE_V_I8 = OPCODE_SIG_TYPE_V + INT8_TYPE, - KEY_TYPE_V_I16 = OPCODE_SIG_TYPE_V + INT16_TYPE, - KEY_TYPE_V_I32 = OPCODE_SIG_TYPE_V + INT32_TYPE, - KEY_TYPE_V_I64 = OPCODE_SIG_TYPE_V + INT64_TYPE, - KEY_TYPE_V_F32 = OPCODE_SIG_TYPE_V + FLOAT32_TYPE, - KEY_TYPE_V_F64 = OPCODE_SIG_TYPE_V + FLOAT64_TYPE, - KEY_TYPE_V_V128 = OPCODE_SIG_TYPE_V + VEC128_TYPE, + KEY_TYPE_V_I8 = + static_cast(OPCODE_SIG_TYPE_V) + static_cast(INT8_TYPE), + KEY_TYPE_V_I16 = + static_cast(OPCODE_SIG_TYPE_V) + static_cast(INT16_TYPE), + KEY_TYPE_V_I32 = + static_cast(OPCODE_SIG_TYPE_V) + static_cast(INT32_TYPE), + KEY_TYPE_V_I64 = + static_cast(OPCODE_SIG_TYPE_V) + static_cast(INT64_TYPE), + KEY_TYPE_V_F32 = + static_cast(OPCODE_SIG_TYPE_V) + static_cast(FLOAT32_TYPE), + KEY_TYPE_V_F64 = + static_cast(OPCODE_SIG_TYPE_V) + static_cast(FLOAT64_TYPE), + KEY_TYPE_V_V128 = + static_cast(OPCODE_SIG_TYPE_V) + static_cast(VEC128_TYPE), }; #pragma pack(push, 1) @@ -64,19 +71,20 @@ union InstrKey { InstrKey(const Instr* i) : value(0) { opcode = i->opcode->num; uint32_t sig = i->opcode->signature; - dest = - GET_OPCODE_SIG_TYPE_DEST(sig) ? OPCODE_SIG_TYPE_V + i->dest->type : 0; + dest = GET_OPCODE_SIG_TYPE_DEST(sig) ? static_cast(OPCODE_SIG_TYPE_V) + + static_cast(i->dest->type) + : 0; src1 = GET_OPCODE_SIG_TYPE_SRC1(sig); if (src1 == OPCODE_SIG_TYPE_V) { - src1 += i->src1.value->type; + src1 += static_cast(i->src1.value->type); } src2 = GET_OPCODE_SIG_TYPE_SRC2(sig); if (src2 == OPCODE_SIG_TYPE_V) { - src2 += i->src2.value->type; + src2 += static_cast(i->src2.value->type); } src3 = GET_OPCODE_SIG_TYPE_SRC3(sig); if (src3 == OPCODE_SIG_TYPE_V) { - src3 += i->src3.value->type; + src3 += static_cast(i->src3.value->type); } }