use crate::enums::size_x_64::SizeX64;
use crate::macros::codegen_assert::CODEGEN_ASSERT;
use crate::records::ir_data::k_invalid_inst_idx;
use crate::records::ir_reg_alloc_x_64::IrRegAllocX64;
use crate::records::register_x_64::RegisterX64;
impl IrRegAllocX64 {
pub fn free_reg(&mut self, reg: RegisterX64) {
if reg.size() == SizeX64::xmmword {
CODEGEN_ASSERT!(!self.free_xmm_map[reg.index() as usize]);
self.free_xmm_map[reg.index() as usize] = true;
self.xmm_inst_users[reg.index() as usize] = k_invalid_inst_idx;
} else {
CODEGEN_ASSERT!(!self.free_gpr_map[reg.index() as usize]);
self.free_gpr_map[reg.index() as usize] = true;
self.gpr_inst_users[reg.index() as usize] = k_invalid_inst_idx;
}
}
}