diff options
author | Mike Pall <mike> | 2013-02-27 21:17:27 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2013-02-27 21:28:28 +0100 |
commit | 116cdd7e9a578efffa5a9ca38167d059d12296d7 (patch) | |
tree | cc78e44c4b7a2175f2b16bc5f8898597a72bb228 /src/vm_ppc.dasc | |
parent | 28cfcf77445e144335961a020e3e08d84cf0091f (diff) | |
download | luajit-116cdd7e9a578efffa5a9ca38167d059d12296d7.tar.gz luajit-116cdd7e9a578efffa5a9ca38167d059d12296d7.tar.bz2 luajit-116cdd7e9a578efffa5a9ca38167d059d12296d7.zip |
String buffer refactoring, part 2.
Switch to pointers for start/pos/end of buffer.
Abstract out some buffer writers.
Diffstat (limited to 'src/vm_ppc.dasc')
-rw-r--r-- | src/vm_ppc.dasc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/vm_ppc.dasc b/src/vm_ppc.dasc index bff50c59..514bd231 100644 --- a/src/vm_ppc.dasc +++ b/src/vm_ppc.dasc | |||
@@ -2201,15 +2201,16 @@ static void build_subroutines(BuildCtx *ctx) | |||
2201 | |.endif | 2201 | |.endif |
2202 | | lwz TMP0, STR:CARG1->len | 2202 | | lwz TMP0, STR:CARG1->len |
2203 | | cmpwi CARG3, 0 | 2203 | | cmpwi CARG3, 0 |
2204 | | lwz TMP1, DISPATCH_GL(tmpbuf.sz)(DISPATCH) | 2204 | | lwz TMP1, DISPATCH_GL(tmpbuf.e)(DISPATCH) |
2205 | | lwz CARG2, DISPATCH_GL(tmpbuf.b)(DISPATCH) | ||
2205 | | ble >2 // Count <= 0? (or non-int) | 2206 | | ble >2 // Count <= 0? (or non-int) |
2206 | | cmplwi TMP0, 1 | 2207 | | cmplwi TMP0, 1 |
2208 | | add TMP3, CARG2, CARG3 | ||
2207 | | subi TMP2, CARG3, 1 | 2209 | | subi TMP2, CARG3, 1 |
2208 | | blt >2 // Zero length string? | 2210 | | blt >2 // Zero length string? |
2209 | | cmplw cr1, TMP1, CARG3 | 2211 | | cmplw cr1, TMP1, TMP3 |
2210 | | bne ->fff_fallback // Fallback for > 1-char strings. | 2212 | | bne ->fff_fallback // Fallback for > 1-char strings. |
2211 | | lbz TMP0, STR:CARG1[1] | 2213 | | lbz TMP0, STR:CARG1[1] |
2212 | | lp CARG2, DISPATCH_GL(tmpbuf.buf)(DISPATCH) | ||
2213 | | blt cr1, ->fff_fallback | 2214 | | blt cr1, ->fff_fallback |
2214 | |1: // Fill buffer with char. Yes, this is suboptimal code (do you care?). | 2215 | |1: // Fill buffer with char. Yes, this is suboptimal code (do you care?). |
2215 | | cmplwi TMP2, 0 | 2216 | | cmplwi TMP2, 0 |
@@ -2229,13 +2230,14 @@ static void build_subroutines(BuildCtx *ctx) | |||
2229 | | lwz STR:CARG1, 4(BASE) | 2230 | | lwz STR:CARG1, 4(BASE) |
2230 | | blt ->fff_fallback | 2231 | | blt ->fff_fallback |
2231 | | checkstr CARG3 | 2232 | | checkstr CARG3 |
2232 | | lwz TMP1, DISPATCH_GL(tmpbuf.sz)(DISPATCH) | 2233 | | lwz CARG2, DISPATCH_GL(tmpbuf.b)(DISPATCH) |
2234 | | lwz TMP1, DISPATCH_GL(tmpbuf.e)(DISPATCH) | ||
2233 | | bne ->fff_fallback | 2235 | | bne ->fff_fallback |
2234 | | lwz CARG3, STR:CARG1->len | 2236 | | lwz CARG3, STR:CARG1->len |
2235 | | la CARG1, #STR(STR:CARG1) | 2237 | | la CARG1, #STR(STR:CARG1) |
2236 | | lp CARG2, DISPATCH_GL(tmpbuf.buf)(DISPATCH) | ||
2237 | | li TMP2, 0 | 2238 | | li TMP2, 0 |
2238 | | cmplw TMP1, CARG3 | 2239 | | add TMP3, CARG2, CARG3 |
2240 | | cmplw TMP1, TMP3 | ||
2239 | | subi TMP3, CARG3, 1 | 2241 | | subi TMP3, CARG3, 1 |
2240 | | blt ->fff_fallback | 2242 | | blt ->fff_fallback |
2241 | |1: // Reverse string copy. | 2243 | |1: // Reverse string copy. |
@@ -2255,13 +2257,14 @@ static void build_subroutines(BuildCtx *ctx) | |||
2255 | | lwz STR:CARG1, 4(BASE) | 2257 | | lwz STR:CARG1, 4(BASE) |
2256 | | blt ->fff_fallback | 2258 | | blt ->fff_fallback |
2257 | | checkstr CARG3 | 2259 | | checkstr CARG3 |
2258 | | lwz TMP1, DISPATCH_GL(tmpbuf.sz)(DISPATCH) | 2260 | | lwz CARG2, DISPATCH_GL(tmpbuf.b)(DISPATCH) |
2261 | | lwz TMP1, DISPATCH_GL(tmpbuf.e)(DISPATCH) | ||
2259 | | bne ->fff_fallback | 2262 | | bne ->fff_fallback |
2260 | | lwz CARG3, STR:CARG1->len | 2263 | | lwz CARG3, STR:CARG1->len |
2261 | | la CARG1, #STR(STR:CARG1) | 2264 | | la CARG1, #STR(STR:CARG1) |
2262 | | lp CARG2, DISPATCH_GL(tmpbuf.buf)(DISPATCH) | ||
2263 | | cmplw TMP1, CARG3 | ||
2264 | | li TMP2, 0 | 2265 | | li TMP2, 0 |
2266 | | add TMP3, CARG2, CARG3 | ||
2267 | | cmplw TMP1, TMP3 | ||
2265 | | blt ->fff_fallback | 2268 | | blt ->fff_fallback |
2266 | |1: // ASCII case conversion. | 2269 | |1: // ASCII case conversion. |
2267 | | cmplw TMP2, CARG3 | 2270 | | cmplw TMP2, CARG3 |