diff options
| author | Mike Pall <mike> | 2012-10-07 17:12:28 +0200 |
|---|---|---|
| committer | Mike Pall <mike> | 2012-10-07 17:12:28 +0200 |
| commit | c681e009c0c5cba5622b863b914c19cfbf6cc147 (patch) | |
| tree | 17f15cd5a4ff0997234f777b389d0fa1663a1aff /src | |
| parent | 2f5ed5d0df518a08a52fc125473b17d3a46c2267 (diff) | |
| download | luajit-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.dasc | 8 |
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. |
