fixing, temporarily disabled the register gc
This commit is contained in:
parent
91f02bb7ab
commit
1addc28463
1 changed files with 5 additions and 3 deletions
|
@ -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) => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue