Skip to content

Commit 541c99e

Browse files
committed
feat: (llvm-bridge) added unsmemcopy to bridge
1 parent 0fb816f commit 541c99e

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

compiler/llvm_ir_bridge/src/insts.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,21 @@ pub fn bridge_llvm_instruction(instruction: MIRBlockHeldInstruction, func: usize
578578
let func = bridge.functions[func].clone().inner;
579579

580580
func.get_nth_param(ind as u32)
581+
},
582+
583+
MIRInstruction::MemoryCopy { src, dest, sz } => {
584+
let src: BaseMIRValue = src.into();
585+
let dest: BaseMIRValue = dest.into();
586+
587+
let llvm_src = bridge.values[&src.get_ssa_index()].clone();
588+
let llvm_dest = bridge.values[&dest.get_ssa_index()].clone();
589+
590+
let sz_type = bridge.types.convert_raw(RawType::Integer(32, false)).into_int_type();
591+
let sz = sz_type.const_int(sz as u64, false);
592+
593+
llvm_to_base_returnless!(bridge.builder.build_memcpy(llvm_dest.inner.into_pointer_value(), 1, llvm_src.into_pointer_value(), 1, sz));
594+
595+
None
581596
}
582597

583598
_ => None

0 commit comments

Comments
 (0)