Match resource masks instead of resource names

This commit is contained in:
Mid 2025-09-19 19:04:20 +03:00
parent 1708faf14d
commit 8d8d1cf067

View File

@ -640,13 +640,15 @@ static void callee_saved(AST *tlc, struct CalleeSavedState *state) {
bool ebxused = false, ediused = false, esiused = false;
for(size_t v = 0; v < tlc->chunk.varCount; v++) {
if(is_reg_b(tlc->chunk.vars[v]->data.var.registerClass, tlc->chunk.vars[v]->data.var.color)) {
size_t resource = REG_CLASSES[tlc->chunk.vars[v]->data.var.registerClass].rs[tlc->chunk.vars[v]->data.var.color];
if(resource & HWR_EBX) {
ebxused = true;
}
if(is_reg_di(tlc->chunk.vars[v]->data.var.registerClass, tlc->chunk.vars[v]->data.var.color)) {
if(resource & HWR_EDI) {
ediused = true;
}
if(is_reg_si(tlc->chunk.vars[v]->data.var.registerClass, tlc->chunk.vars[v]->data.var.color)) {
if(resource & HWR_ESI) {
esiused = true;
}
}