From: Mike Pall Date: Sun, 7 Oct 2012 15:12:28 +0000 (+0200) Subject: PPC: Fix string.sub() range check. X-Git-Tag: v2.0.0-beta11~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c681e009c0c5cba5622b863b914c19cfbf6cc147;p=thirdparty%2FLuaJIT.git PPC: Fix string.sub() range check. --- 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.