Skip to main content

luaur_code_gen/methods/
assembly_builder_x_64_vucomisd.rs

1use crate::records::assembly_builder_x_64::AssemblyBuilderX64;
2use crate::records::operand_x_64::OperandX64;
3
4impl AssemblyBuilderX64 {
5    pub fn vucomisd(&mut self, src1: OperandX64, src2: OperandX64) {
6        // C++: placeAvx("vucomisd", src1, src2, 0x2e, false, AVX_0F, AVX_66);
7        // 2-operand overload — there is no vvvv source, so VEX.vvvv must be 1111
8        // (placeVex with src1 = noreg). Using the 3-operand overload here wrongly
9        // encoded src1 into vvvv.
10        self.place_avx_c_char_operand_x_64_operand_x_64_u8_bool_u8_u8(
11            c"vucomisd".as_ptr(),
12            src1,
13            src2,
14            0x2e,
15            false,
16            0x0F, // AVX_0F
17            0x66, // AVX_66
18        );
19    }
20}