aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2012-10-07 17:12:28 +0200
committerMike Pall <mike>2012-10-07 17:12:28 +0200
commitc681e009c0c5cba5622b863b914c19cfbf6cc147 (patch)
tree17f15cd5a4ff0997234f777b389d0fa1663a1aff /src
parent2f5ed5d0df518a08a52fc125473b17d3a46c2267 (diff)
downloadluajit-c681e009c0c5cba5622b863b914c19cfbf6cc147.tar.gz
luajit-c681e009c0c5cba5622b863b914c19cfbf6cc147.tar.bz2
luajit-c681e009c0c5cba5622b863b914c19cfbf6cc147.zip
PPC: Fix string.sub() range check.
Diffstat (limited to 'src')
-rw-r--r--src/vm_ppc.dasc8
1 files changed, 4 insertions, 4 deletions
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)
2100 | b ->fff_newstr 2100 | b ->fff_newstr
2101 | 2101 |
2102 |5: // Negative end or overflow. 2102 |5: // Negative end or overflow.
2103 | sub CARG2, TMP0, TMP2 2103 | cmpw TMP0, TMP2 // len >= end? (signed compare)
2104 | srawi CARG2, CARG2, 31 2104 | add TMP2, TMP0, TMP3 // Negative end: end = end+len+1.
2105 | andc TMP3, TMP3, CARG2 // end = end > len ? len : end+len+1 2105 | bge <2
2106 | add TMP2, TMP0, TMP3 2106 | mr TMP2, TMP0 // Overflow: end = len.
2107 | b <2 2107 | b <2
2108 | 2108 |
2109 |7: // Negative start or underflow. 2109 |7: // Negative start or underflow.