fixing struct regurns

This commit is contained in:
mlokr 2024-05-13 09:55:09 +02:00
parent 0aec47e985
commit 2226a47aaa

View file

@ -965,14 +965,14 @@ impl<'a> Codegen<'a> {
16..=u64::MAX => {
let (rhs, roff) = self.loc_to_ptr(right.loc);
let (lhs, loff) = self.loc_to_ptr(left.loc);
let cp = self.gpa.allocate();
for offset in (0..size).step_by(8) {
self.code.encode(instrs::ld(cp.0, lhs.0, offset + loff, 8));
self.code.encode(instrs::st(cp.0, rhs.0, offset + roff, 8));
}
self.code.encode(instrs::addi64(rhs.0, rhs.0, roff));
self.code.encode(instrs::addi64(lhs.0, lhs.0, loff));
self.code
.encode(instrs::bmc(lhs.0, rhs.0, size.try_into().unwrap()));
self.gpa.free(rhs);
self.gpa.free(lhs);
self.gpa.free(cp);
}
s => unimplemented!("size: {}", s),
}