luaur_code_gen/methods/
assembly_builder_a_64_bif.rs1use crate::records::assembly_builder_a_64::AssemblyBuilderA64;
2use crate::records::register_a_64::RegisterA64;
3
4impl AssemblyBuilderA64 {
5 pub fn bif(&mut self, dst: RegisterA64, src: RegisterA64, mask: RegisterA64) {
6 if self.log_text {
7 self.log_append(format_args!(
8 " {:<12}v{}.16b,v{}.16b,v{}.16b\n",
9 "bif",
10 dst.index(),
11 src.index(),
12 mask.index()
13 ));
14 }
15
16 let op: u32 = 0b0_1_1_01110111_00000_000111_00000_00000;
17
18 self.place(
19 (dst.index() as u32) | ((src.index() as u32) << 5) | ((mask.index() as u32) << 16) | op,
20 );
21
22 self.commit();
23 }
24}