x64: Lower tlsvalue, sqmul_round_sat, and uunarrow in ISLE (#4793)
Lower tlsvalue, sqmul_round_sat, and uunarrow in ISLE.
This commit is contained in:
@@ -95,6 +95,24 @@ impl Inst {
|
||||
let dst = WritableGpr::from_writable_reg(dst).unwrap();
|
||||
Inst::Setcc { cc, dst }
|
||||
}
|
||||
|
||||
fn xmm_rm_r_imm(
|
||||
op: SseOpcode,
|
||||
src: RegMem,
|
||||
dst: Writable<Reg>,
|
||||
imm: u8,
|
||||
size: OperandSize,
|
||||
) -> Inst {
|
||||
debug_assert!(size.is_one_of(&[OperandSize::Size32, OperandSize::Size64]));
|
||||
Inst::XmmRmRImm {
|
||||
op,
|
||||
src1: dst.to_reg(),
|
||||
src2: src,
|
||||
dst,
|
||||
imm,
|
||||
size,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -4738,6 +4756,7 @@ fn test_x64_emit() {
|
||||
insns.push((
|
||||
Inst::ElfTlsGetAddr {
|
||||
symbol: ExternalName::User(UserExternalNameRef::new(0)),
|
||||
dst: WritableGpr::from_writable_reg(w_rax).unwrap(),
|
||||
},
|
||||
"66488D3D00000000666648E800000000",
|
||||
"%rax = elf_tls_get_addr User(userextname0)",
|
||||
@@ -4746,6 +4765,7 @@ fn test_x64_emit() {
|
||||
insns.push((
|
||||
Inst::MachOTlsGetAddr {
|
||||
symbol: ExternalName::User(UserExternalNameRef::new(0)),
|
||||
dst: WritableGpr::from_writable_reg(w_rax).unwrap(),
|
||||
},
|
||||
"488B3D00000000FF17",
|
||||
"%rax = macho_tls_get_addr User(userextname0)",
|
||||
@@ -4754,6 +4774,7 @@ fn test_x64_emit() {
|
||||
insns.push((
|
||||
Inst::CoffTlsGetAddr {
|
||||
symbol: ExternalName::User(UserExternalNameRef::new(0)),
|
||||
dst: WritableGpr::from_writable_reg(w_rax).unwrap(),
|
||||
},
|
||||
"8B050000000065488B0C2558000000488B04C1488D8000000000",
|
||||
"%rax = coff_tls_get_addr User(userextname0)",
|
||||
|
||||
Reference in New Issue
Block a user