|
@@ -464,7 +464,7 @@ static void ra_evictk(ASMState *as)
|
|
while (work) {
|
|
while (work) {
|
|
Reg r = rset_pickbot(work);
|
|
Reg r = rset_pickbot(work);
|
|
IRRef ref = regcost_ref(as->cost[r]);
|
|
IRRef ref = regcost_ref(as->cost[r]);
|
|
- if (irref_isk(ref)) {
|
|
|
|
|
|
+ if (emit_canremat(ref) && irref_isk(ref)) {
|
|
ra_rematk(as, ref);
|
|
ra_rematk(as, ref);
|
|
checkmclim(as);
|
|
checkmclim(as);
|
|
}
|
|
}
|