fixing, temporarily disabled the register gc

This commit is contained in:
afonya2 2025-06-08 22:53:40 +02:00
parent 91f02bb7ab
commit 1addc28463
Signed by: afonya
GPG key ID: EBB9C4CAFAAFB2DC

View file

@ -119,13 +119,14 @@ fn allocate_register(registers: &Vec<RegisterState>) -> AllocateResult {
}; };
} }
fn garbage_collect_registers(registers: &mut Vec<RegisterState>) { fn garbage_collect_registers(_registers: &mut Vec<RegisterState>) {
for register in registers { return;
/*for register in registers {
if register.used && register.variable == 0 { if register.used && register.variable == 0 {
register.used = false; register.used = false;
register.last_used = 0; register.last_used = 0;
} }
} }*/
} }
fn get_variable_by_name(variables: &Vec<Variable>, name: &str, position: usize) -> Option<Variable> { fn get_variable_by_name(variables: &Vec<Variable>, name: &str, position: usize) -> Option<Variable> {
@ -232,6 +233,7 @@ fn do_ast_op(ast_op: ASTPart, op_count: &mut usize, ops: &mut Vec<Operation>, va
ops.push(Operation { opcode: 8, arg1: Some(ret_reg.register), arg2: None, arg3: None, pos: call.pos as u32 }); ops.push(Operation { opcode: 8, arg1: Some(ret_reg.register), arg2: None, arg3: None, pos: call.pos as u32 });
} }
ops.push(Operation { opcode: 27, arg1: Some(func), arg2: Some(ret_reg.register as i64), arg3: None, pos: call.pos as u32 }); ops.push(Operation { opcode: 27, arg1: Some(func), arg2: Some(ret_reg.register as i64), arg3: None, pos: call.pos as u32 });
set_register(registers, RegisterState { id: ret_reg.register, used: true, variable: 0, last_used: *op_count });
return ret_reg.register; return ret_reg.register;
}, },
ASTPart::If(if_part) => { ASTPart::If(if_part) => {