Skip to main content

luaur_code_gen/methods/
assembly_builder_x_64_vcvtss_2_sd.rs

1use crate::enums::category_x_64::CategoryX64;
2use crate::enums::size_x_64::SizeX64;
3use crate::macros::codegen_assert::CODEGEN_ASSERT;
4use crate::records::assembly_builder_x_64::AssemblyBuilderX64;
5use crate::records::operand_x_64::OperandX64;
6
7impl AssemblyBuilderX64 {
8    pub fn vcvtss2sd(&mut self, dst: OperandX64, src1: OperandX64, src2: OperandX64) {
9        if src2.cat == CategoryX64::reg {
10            CODEGEN_ASSERT!(src2.base.size() == SizeX64::xmmword);
11        } else {
12            CODEGEN_ASSERT!(src2.memSize == SizeX64::dword);
13        }
14
15        self.place_avx_c_char_operand_x_64_operand_x_64_operand_x_64_u8_bool_u8_u8(
16            c"vcvtss2sd".as_ptr(),
17            dst,
18            src1,
19            src2,
20            0x5a,
21            false,
22            0b0001,
23            0b10,
24        );
25    }
26}