Implements f64x2.convert_low_i32x4_u for x64
This commit is contained in:
@@ -635,6 +635,7 @@ pub enum SseOpcode {
|
||||
Subsd,
|
||||
Ucomiss,
|
||||
Ucomisd,
|
||||
Unpcklps,
|
||||
Xorps,
|
||||
Xorpd,
|
||||
}
|
||||
@@ -675,6 +676,7 @@ impl SseOpcode {
|
||||
| SseOpcode::Subps
|
||||
| SseOpcode::Subss
|
||||
| SseOpcode::Ucomiss
|
||||
| SseOpcode::Unpcklps
|
||||
| SseOpcode::Xorps => SSE,
|
||||
|
||||
SseOpcode::Addpd
|
||||
@@ -993,6 +995,7 @@ impl fmt::Debug for SseOpcode {
|
||||
SseOpcode::Subsd => "subsd",
|
||||
SseOpcode::Ucomiss => "ucomiss",
|
||||
SseOpcode::Ucomisd => "ucomisd",
|
||||
SseOpcode::Unpcklps => "unpcklps",
|
||||
SseOpcode::Xorps => "xorps",
|
||||
SseOpcode::Xorpd => "xorpd",
|
||||
};
|
||||
|
||||
@@ -1529,6 +1529,7 @@ pub(crate) fn emit(
|
||||
SseOpcode::Subpd => (LegacyPrefixes::_66, 0x0F5C, 2),
|
||||
SseOpcode::Subss => (LegacyPrefixes::_F3, 0x0F5C, 2),
|
||||
SseOpcode::Subsd => (LegacyPrefixes::_F2, 0x0F5C, 2),
|
||||
SseOpcode::Unpcklps => (LegacyPrefixes::None, 0x0F14, 2),
|
||||
SseOpcode::Xorps => (LegacyPrefixes::None, 0x0F57, 2),
|
||||
SseOpcode::Xorpd => (LegacyPrefixes::_66, 0x0F57, 2),
|
||||
_ => unimplemented!("Opcode {:?} not implemented", op),
|
||||
|
||||
@@ -3717,6 +3717,12 @@ fn test_x64_emit() {
|
||||
"punpcklbw %xmm1, %xmm8",
|
||||
));
|
||||
|
||||
insns.push((
|
||||
Inst::xmm_rm_r(SseOpcode::Unpcklps, RegMem::reg(xmm11), w_xmm2),
|
||||
"410F14D3",
|
||||
"unpcklps %xmm11, %xmm2",
|
||||
));
|
||||
|
||||
// ========================================================
|
||||
// XMM_RM_R: Integer Conversion
|
||||
insns.push((
|
||||
|
||||
Reference in New Issue
Block a user