aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_ppc.dasc13
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: