stage0 新增内存复制指令 重构vm交互
This commit is contained in:
1 parent
0b8f649818
commit
40cffa9cb5
22 files changed
+626
-158
No files matched your search
+2
-4
@@ -638,6 +638,7 @@ fn cg_const(cg: *Cgen, ref: usize, n: *IrEntry) {
|
||||
}
|
||||
},
|
||||
.Int(x) => { imm = const_usize(n); },
|
||||
.Any => { imm = const_usize(n); },
|
||||
.Float => {
|
||||
var fv: f64 = 0.0;
|
||||
match n.body {
|
||||
@@ -915,10 +916,7 @@ fn cg_control(cg: *Cgen, ref: usize, n: *IrEntry) {
|
||||
cg_load(cg, .Ptr);
|
||||
cg_load_slot(cg, r.val, .Ptr);
|
||||
cg_push(cg, .U64, sz);
|
||||
var nat = Mcode.get_or_add_native(&ctx.prog, ByteView.from_slice("vm_memcpy"));
|
||||
cg_push(cg, .U64, nat as usize);
|
||||
emit(cg, .Ncall, .Void, 3);
|
||||
emit(cg, .Drop, .Void, 0);
|
||||
emit(cg, .Memcpy, .Void, 0);
|
||||
}
|
||||
emit(cg, .Ret, .Void, 0);
|
||||
} else {
|
||||
|
||||
Reference in new issue
Block a user