From 707c12bf00dafdfd3899b1a6c36435dbbf6c7022 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Fri, 9 Jan 2026 18:46:32 +0100 Subject: DUALNUM: Improve/fix edge cases of unary minus. Thanks to Sergey Kaplun. #1422 #1418 --- src/vm_ppc.dasc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/vm_ppc.dasc') diff --git a/src/vm_ppc.dasc b/src/vm_ppc.dasc index 37be772d..440bf1c4 100644 --- a/src/vm_ppc.dasc +++ b/src/vm_ppc.dasc @@ -3962,11 +3962,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | bne >5 |.if GPR64 | lus TMP2, 0x8000 - | neg TMP0, TMP0 + | neg. TMP0, TMP0 + | beq >8 | cmplw TMP0, TMP2 | beq >4 |.else | nego. TMP0, TMP0 + | beq >8 | bso >4 |1: |.endif @@ -3993,6 +3995,9 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | stw TMP0, 4(RA) |.if DUALNUM | b <3 + |8: + | lus TMP1, 0x8000 // -0. + | b <7 |.else | ins_next2 |.endif -- cgit v1.2.3-55-g6feb