diff options
Diffstat (limited to 'src/vm_ppc.dasc')
-rw-r--r-- | src/vm_ppc.dasc | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/src/vm_ppc.dasc b/src/vm_ppc.dasc index 19211825..733eeb8f 100644 --- a/src/vm_ppc.dasc +++ b/src/vm_ppc.dasc | |||
@@ -2177,49 +2177,6 @@ static void build_subroutines(BuildCtx *ctx) | |||
2177 | | addi TMP1, TMP1, 1 // start = 1 + (start ? start+len : 0) | 2177 | | addi TMP1, TMP1, 1 // start = 1 + (start ? start+len : 0) |
2178 | | b <3 | 2178 | | b <3 |
2179 | | | 2179 | | |
2180 | |.ffunc string_rep // Only handle the 1-char case inline. | ||
2181 | | ffgccheck | ||
2182 | | cmplwi NARGS8:RC, 16 | ||
2183 | | lwz TMP0, 0(BASE) | ||
2184 | | lwz STR:CARG1, 4(BASE) | ||
2185 | | lwz CARG4, 8(BASE) | ||
2186 | |.if DUALNUM | ||
2187 | | lwz CARG3, 12(BASE) | ||
2188 | |.else | ||
2189 | | lfd FARG2, 8(BASE) | ||
2190 | |.endif | ||
2191 | | bne ->fff_fallback // Exactly 2 arguments. | ||
2192 | | checkstr TMP0; bne ->fff_fallback | ||
2193 | |.if DUALNUM | ||
2194 | | checknum CARG4; bne ->fff_fallback | ||
2195 | |.else | ||
2196 | | checknum CARG4; bge ->fff_fallback | ||
2197 | | toint CARG3, FARG2 | ||
2198 | |.endif | ||
2199 | | lwz TMP0, STR:CARG1->len | ||
2200 | | cmpwi CARG3, 0 | ||
2201 | | lwz TMP1, DISPATCH_GL(tmpbuf.e)(DISPATCH) | ||
2202 | | lwz CARG2, DISPATCH_GL(tmpbuf.b)(DISPATCH) | ||
2203 | | ble >2 // Count <= 0? (or non-int) | ||
2204 | | cmplwi TMP0, 1 | ||
2205 | | add TMP3, CARG2, CARG3 | ||
2206 | | subi TMP2, CARG3, 1 | ||
2207 | | blt >2 // Zero length string? | ||
2208 | | cmplw cr1, TMP1, TMP3 | ||
2209 | | bne ->fff_fallback // Fallback for > 1-char strings. | ||
2210 | | lbz TMP0, STR:CARG1[1] | ||
2211 | | blt cr1, ->fff_fallback | ||
2212 | |1: // Fill buffer with char. Yes, this is suboptimal code (do you care?). | ||
2213 | | cmplwi TMP2, 0 | ||
2214 | | stbx TMP0, CARG2, TMP2 | ||
2215 | | subi TMP2, TMP2, 1 | ||
2216 | | bne <1 | ||
2217 | | b ->fff_newstr | ||
2218 | |2: // Return empty string. | ||
2219 | | la STR:CARG1, DISPATCH_GL(strempty)(DISPATCH) | ||
2220 | | li CARG3, LJ_TSTR | ||
2221 | | b ->fff_restv | ||
2222 | | | ||
2223 | |.macro ffstring_op, name | 2180 | |.macro ffstring_op, name |
2224 | | .ffunc string_ .. name | 2181 | | .ffunc string_ .. name |
2225 | | ffgccheck | 2182 | | ffgccheck |