diff options
author | Mike Pall <mike> | 2010-09-16 02:06:20 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2010-09-16 02:06:20 +0200 |
commit | 028f80c599b558787b1b7098405690b20140d25e (patch) | |
tree | aea43fca8b2cb3e3569978d59a7faa3afcabdafa /src | |
parent | 3f32f4ac99c9ec9f8d58c021a7b623ee1d2467bc (diff) | |
download | luajit-028f80c599b558787b1b7098405690b20140d25e.tar.gz luajit-028f80c599b558787b1b7098405690b20140d25e.tar.bz2 luajit-028f80c599b558787b1b7098405690b20140d25e.zip |
PPC: Avoid comparison with NaN in BC_ISEQN/BC_ISNEN.
Diffstat (limited to 'src')
-rw-r--r-- | src/buildvm_ppc.dasc | 13 |
1 files changed, 12 insertions, 1 deletions
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) | |||
1313 | | evlddx TMP1, KBASE, RD | 1313 | | evlddx TMP1, KBASE, RD |
1314 | | addis TMP3, PC, -(BCBIAS_J*4 >> 16) | 1314 | | addis TMP3, PC, -(BCBIAS_J*4 >> 16) |
1315 | | lwz INS, -4(PC) | 1315 | | lwz INS, -4(PC) |
1316 | | efdcmpeq TMP0, TMP1 // NYI: avoid comparison with NaN. | 1316 | | checknum TMP0 |
1317 | | checkfail >5 | ||
1318 | | efdcmpeq TMP0, TMP1 | ||
1319 | |1: | ||
1317 | | decode_RD4 TMP2, INS | 1320 | | decode_RD4 TMP2, INS |
1318 | | add TMP2, TMP2, TMP3 | 1321 | | add TMP2, TMP2, TMP3 |
1319 | if (vk) { | 1322 | if (vk) { |
1320 | | iselgt PC, TMP2, PC | 1323 | | iselgt PC, TMP2, PC |
1324 | |5: | ||
1321 | } else { | 1325 | } else { |
1322 | | iselgt PC, PC, TMP2 | 1326 | | iselgt PC, PC, TMP2 |
1323 | } | 1327 | } |
1328 | |3: | ||
1324 | | ins_next | 1329 | | ins_next |
1330 | if (!vk) { | ||
1331 | |5: | ||
1332 | | decode_RD4 TMP2, INS | ||
1333 | | add PC, TMP2, TMP3 | ||
1334 | | b <3 | ||
1335 | } | ||
1325 | break; | 1336 | break; |
1326 | 1337 | ||
1327 | case BC_ISEQP: case BC_ISNEP: | 1338 | case BC_ISEQP: case BC_ISNEP: |