Skip to content

Commit b6825f0

Browse files
Wuerfel21totalspectrum
authored andcommitted
Fix more MULS/GETWORD related issues
1 parent 0fc7127 commit b6825f0

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

backends/asm/optimize_ir.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3968,7 +3968,7 @@ OptimizePeepholes(IRList *irl)
39683968
} else if (previr && isMaskingOp(previr,&tmp) && (tmp&0xFFFF)==0xFFFF) {
39693969
DeleteIR(irl,previr);
39703970
changed = 1;
3971-
} else if (previr && previr->opc == OPC_GETWORD) {
3971+
} else if (previr && previr->opc == OPC_GETWORD && previr->src2->kind == IMM_INT && previr->src2->val == 0) {
39723972
ReplaceOpcode(previr,OPC_MOV);
39733973
previr->src2 = NULL;
39743974
changed = 1;
@@ -3982,8 +3982,9 @@ OptimizePeepholes(IRList *irl)
39823982
} else if (previr && isMaskingOp(previr,&tmp) && (tmp&0xFFFF)==0xFFFF) {
39833983
DeleteIR(irl,previr);
39843984
changed = 1;
3985-
} else if (previr && previr->opc == OPC_GETWORD) {
3985+
} else if (previr && previr->opc == OPC_GETWORD && previr->src2->kind == IMM_INT && previr->src2->val == 0) {
39863986
ReplaceOpcode(previr,OPC_MOV);
3987+
previr->src2 = NULL;
39873988
changed = 1;
39883989
}
39893990
}

0 commit comments

Comments
 (0)