[JIT] Add V128 ADD/SUB (fixes #1095)
This commit is contained in:
parent
1c1fdb4ccd
commit
157c7780af
|
@ -3674,8 +3674,16 @@ struct ADD_F64 : Sequence<ADD_F64, I<OPCODE_ADD, F64Op, F64Op, F64Op>> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
struct ADD_V128 : Sequence<ADD_V128, I<OPCODE_ADD, V128Op, V128Op, V128Op>> {
|
||||||
|
static void Emit(X64Emitter& e, const EmitArgType& i) {
|
||||||
|
EmitCommutativeBinaryXmmOp(e, i,
|
||||||
|
[](X64Emitter& e, Xmm dest, Xmm src1, Xmm src2) {
|
||||||
|
e.vaddps(dest, src1, src2);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
EMITTER_OPCODE_TABLE(OPCODE_ADD, ADD_I8, ADD_I16, ADD_I32, ADD_I64, ADD_F32,
|
EMITTER_OPCODE_TABLE(OPCODE_ADD, ADD_I8, ADD_I16, ADD_I32, ADD_I64, ADD_F32,
|
||||||
ADD_F64);
|
ADD_F64, ADD_V128);
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// OPCODE_ADD_CARRY
|
// OPCODE_ADD_CARRY
|
||||||
|
@ -3882,8 +3890,17 @@ struct SUB_F64 : Sequence<SUB_F64, I<OPCODE_SUB, F64Op, F64Op, F64Op>> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
struct SUB_V128 : Sequence<SUB_V128, I<OPCODE_SUB, V128Op, V128Op, V128Op>> {
|
||||||
|
static void Emit(X64Emitter& e, const EmitArgType& i) {
|
||||||
|
assert_true(!i.instr->flags);
|
||||||
|
EmitAssociativeBinaryXmmOp(e, i,
|
||||||
|
[](X64Emitter& e, Xmm dest, Xmm src1, Xmm src2) {
|
||||||
|
e.vsubps(dest, src1, src2);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
EMITTER_OPCODE_TABLE(OPCODE_SUB, SUB_I8, SUB_I16, SUB_I32, SUB_I64, SUB_F32,
|
EMITTER_OPCODE_TABLE(OPCODE_SUB, SUB_I8, SUB_I16, SUB_I32, SUB_I64, SUB_F32,
|
||||||
SUB_F64);
|
SUB_F64, SUB_V128);
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// OPCODE_VECTOR_SUB
|
// OPCODE_VECTOR_SUB
|
||||||
|
|
Loading…
Reference in New Issue