From 028f80c599b558787b1b7098405690b20140d25e Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Thu, 16 Sep 2010 02:06:20 +0200 Subject: [PATCH] PPC: Avoid comparison with NaN in BC_ISEQN/BC_ISNEN. --- src/buildvm_ppc.dasc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc index 28258e5e..699056f6 100644 --- a/src/buildvm_ppc.dasc +++ b/src/buildvm_ppc.dasc @@ -1313,15 +1313,26 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | evlddx TMP1, KBASE, RD | addis TMP3, PC, -(BCBIAS_J*4 >> 16) | lwz INS, -4(PC) - | efdcmpeq TMP0, TMP1 // NYI: avoid comparison with NaN. + | checknum TMP0 + | checkfail >5 + | efdcmpeq TMP0, TMP1 + |1: | decode_RD4 TMP2, INS | add TMP2, TMP2, TMP3 if (vk) { | iselgt PC, TMP2, PC + |5: } else { | iselgt PC, PC, TMP2 } + |3: | ins_next + if (!vk) { + |5: + | decode_RD4 TMP2, INS + | add PC, TMP2, TMP3 + | b <3 + } break; case BC_ISEQP: case BC_ISNEP: