Skip to main content

luaur_code_gen/methods/
assembly_builder_a_64_rem.rs

1use crate::records::assembly_builder_a_64::AssemblyBuilderA64;
2use crate::records::register_a_64::RegisterA64;
3
4impl AssemblyBuilderA64 {
5    pub fn rem(&mut self, dst: RegisterA64, src1: RegisterA64, src2: RegisterA64) {
6        // dst must hold the quotient from a preceding sdiv/udiv.
7        // dst != src1 because mul clobbers dst before sub reads src1.
8        assert!(dst.index() != src1.index());
9
10        // dst = src1 - (dst * src2);
11        self.msub(dst, dst, src2, src1);
12    }
13}