PPC: Avoid comparison with NaN in BC_ISEQN/BC_ISNEN.

This commit is contained in:
Mike Pall 2010-09-16 02:06:20 +02:00
parent 3f32f4ac99
commit 028f80c599

View File

@ -1313,15 +1313,26 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
| evlddx TMP1, KBASE, RD | evlddx TMP1, KBASE, RD
| addis TMP3, PC, -(BCBIAS_J*4 >> 16) | addis TMP3, PC, -(BCBIAS_J*4 >> 16)
| lwz INS, -4(PC) | lwz INS, -4(PC)
| efdcmpeq TMP0, TMP1 // NYI: avoid comparison with NaN. | checknum TMP0
| checkfail >5
| efdcmpeq TMP0, TMP1
|1:
| decode_RD4 TMP2, INS | decode_RD4 TMP2, INS
| add TMP2, TMP2, TMP3 | add TMP2, TMP2, TMP3
if (vk) { if (vk) {
| iselgt PC, TMP2, PC | iselgt PC, TMP2, PC
|5:
} else { } else {
| iselgt PC, PC, TMP2 | iselgt PC, PC, TMP2
} }
|3:
| ins_next | ins_next
if (!vk) {
|5:
| decode_RD4 TMP2, INS
| add PC, TMP2, TMP3
| b <3
}
break; break;
case BC_ISEQP: case BC_ISNEP: case BC_ISEQP: case BC_ISNEP: