luaur_code_gen/methods/
assembly_builder_x_64_vmovq.rs1use 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 vmovq(&mut self, dst: OperandX64, src: OperandX64) {
9 if dst.base.size() == SizeX64::xmmword {
10 if !(dst.cat == CategoryX64::reg) {
11 luaur_common::LUAU_DEBUGBREAK!();
12 }
13 if !(src.base.size() == SizeX64::qword) {
14 luaur_common::LUAU_DEBUGBREAK!();
15 }
16 self.place_avx_c_char_operand_x_64_operand_x_64_u8_bool_u8_u8(
17 c"vmovq".as_ptr(),
18 dst,
19 src,
20 0x6e,
21 true,
22 0b0001,
23 0b01,
24 );
25 } else if dst.base.size() == SizeX64::qword {
26 if !(src.cat == CategoryX64::reg) {
27 luaur_common::LUAU_DEBUGBREAK!();
28 }
29 if !(src.base.size() == SizeX64::xmmword) {
30 luaur_common::LUAU_DEBUGBREAK!();
31 }
32 self.place_avx_c_char_operand_x_64_operand_x_64_u8_bool_u8_u8(
33 c"vmovq".as_ptr(),
34 src,
35 dst,
36 0x7e,
37 true,
38 0b0001,
39 0b01,
40 );
41 } else {
42 luaur_common::LUAU_DEBUGBREAK!();
43 }
44 }
45}