Adds support for signed packed integer conversion to float
f32x4.convert_i32x4_s
This commit is contained in:
@@ -364,6 +364,7 @@ pub enum SseOpcode {
|
||||
Cmppd,
|
||||
Cmpss,
|
||||
Cmpsd,
|
||||
Cvtdq2ps,
|
||||
Cvtsd2ss,
|
||||
Cvtsd2si,
|
||||
Cvtsi2ss,
|
||||
@@ -529,6 +530,7 @@ impl SseOpcode {
|
||||
| SseOpcode::Cmppd
|
||||
| SseOpcode::Cmpsd
|
||||
| SseOpcode::Comisd
|
||||
| SseOpcode::Cvtdq2ps
|
||||
| SseOpcode::Cvtsd2ss
|
||||
| SseOpcode::Cvtsd2si
|
||||
| SseOpcode::Cvtsi2sd
|
||||
@@ -653,6 +655,7 @@ impl fmt::Debug for SseOpcode {
|
||||
SseOpcode::Cmpsd => "cmpsd",
|
||||
SseOpcode::Comiss => "comiss",
|
||||
SseOpcode::Comisd => "comisd",
|
||||
SseOpcode::Cvtdq2ps => "cvtdq2ps",
|
||||
SseOpcode::Cvtsd2ss => "cvtsd2ss",
|
||||
SseOpcode::Cvtsd2si => "cvtsd2si",
|
||||
SseOpcode::Cvtsi2ss => "cvtsi2ss",
|
||||
|
||||
@@ -1739,6 +1739,7 @@ pub(crate) fn emit(
|
||||
SseOpcode::Andpd => (LegacyPrefixes::_66, 0x0F54, 2),
|
||||
SseOpcode::Andnps => (LegacyPrefixes::None, 0x0F55, 2),
|
||||
SseOpcode::Andnpd => (LegacyPrefixes::_66, 0x0F55, 2),
|
||||
SseOpcode::Cvtdq2ps => (LegacyPrefixes::None, 0x0F5B, 2),
|
||||
SseOpcode::Divps => (LegacyPrefixes::None, 0x0F5E, 2),
|
||||
SseOpcode::Divpd => (LegacyPrefixes::_66, 0x0F5E, 2),
|
||||
SseOpcode::Divss => (LegacyPrefixes::_F3, 0x0F5E, 2),
|
||||
|
||||
@@ -3290,6 +3290,14 @@ fn test_x64_emit() {
|
||||
"pshufb %xmm11, %xmm2",
|
||||
));
|
||||
|
||||
// ========================================================
|
||||
// XMM_RM_R: Integer Conversion
|
||||
insns.push((
|
||||
Inst::xmm_rm_r(SseOpcode::Cvtdq2ps, RegMem::reg(xmm1), w_xmm8),
|
||||
"440F5BC1",
|
||||
"cvtdq2ps %xmm1, %xmm8",
|
||||
));
|
||||
|
||||
// XMM_Mov_R_M: float stores
|
||||
insns.push((
|
||||
Inst::xmm_mov_r_m(SseOpcode::Movss, xmm15, Amode::imm_reg(128, r12), None),
|
||||
|
||||
Reference in New Issue
Block a user