From c681e009c0c5cba5622b863b914c19cfbf6cc147 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sun, 7 Oct 2012 17:12:28 +0200 Subject: PPC: Fix string.sub() range check. --- src/vm_ppc.dasc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/vm_ppc.dasc b/src/vm_ppc.dasc index 7eafebe1..5a6737ae 100644 --- a/src/vm_ppc.dasc +++ b/src/vm_ppc.dasc @@ -2100,10 +2100,10 @@ static void build_subroutines(BuildCtx *ctx) | b ->fff_newstr | |5: // Negative end or overflow. - | sub CARG2, TMP0, TMP2 - | srawi CARG2, CARG2, 31 - | andc TMP3, TMP3, CARG2 // end = end > len ? len : end+len+1 - | add TMP2, TMP0, TMP3 + | cmpw TMP0, TMP2 // len >= end? (signed compare) + | add TMP2, TMP0, TMP3 // Negative end: end = end+len+1. + | bge <2 + | mr TMP2, TMP0 // Overflow: end = len. | b <2 | |7: // Negative start or underflow. -- cgit v1.2.3-55-g6feb