diff options
Diffstat (limited to '')
-rw-r--r-- | src/vm_arm.dasc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/vm_arm.dasc b/src/vm_arm.dasc index 6928e03b..1d4b60f4 100644 --- a/src/vm_arm.dasc +++ b/src/vm_arm.dasc | |||
@@ -1801,10 +1801,11 @@ static void build_subroutines(BuildCtx *ctx) | |||
1801 | | cmp CARG2, #1 | 1801 | | cmp CARG2, #1 |
1802 | | blo ->fff_emptystr // Zero-length string? | 1802 | | blo ->fff_emptystr // Zero-length string? |
1803 | | bne ->fff_fallback // Fallback for > 1-char strings. | 1803 | | bne ->fff_fallback // Fallback for > 1-char strings. |
1804 | | ldr RB, [DISPATCH, #DISPATCH_GL(tmpbuf.sz)] | 1804 | | ldr CARG2, [DISPATCH, #DISPATCH_GL(tmpbuf.b)] |
1805 | | ldr CARG2, [DISPATCH, #DISPATCH_GL(tmpbuf.buf)] | 1805 | | ldr RB, [DISPATCH, #DISPATCH_GL(tmpbuf.e)] |
1806 | | ldr CARG1, STR:CARG1[1] | 1806 | | ldr CARG1, STR:CARG1[1] |
1807 | | cmp RB, CARG3 | 1807 | | add INS, CARG2, CARG3 |
1808 | | cmp RB, INS | ||
1808 | | blo ->fff_fallback | 1809 | | blo ->fff_fallback |
1809 | |1: // Fill buffer with char. | 1810 | |1: // Fill buffer with char. |
1810 | | strb CARG1, [CARG2, CARG4] | 1811 | | strb CARG1, [CARG2, CARG4] |
@@ -1819,11 +1820,12 @@ static void build_subroutines(BuildCtx *ctx) | |||
1819 | | blo ->fff_fallback | 1820 | | blo ->fff_fallback |
1820 | | checkstr CARG2, ->fff_fallback | 1821 | | checkstr CARG2, ->fff_fallback |
1821 | | ldr CARG3, STR:CARG1->len | 1822 | | ldr CARG3, STR:CARG1->len |
1822 | | ldr RB, [DISPATCH, #DISPATCH_GL(tmpbuf.sz)] | 1823 | | ldr CARG2, [DISPATCH, #DISPATCH_GL(tmpbuf.b)] |
1823 | | ldr CARG2, [DISPATCH, #DISPATCH_GL(tmpbuf.buf)] | 1824 | | ldr RB, [DISPATCH, #DISPATCH_GL(tmpbuf.e)] |
1824 | | mov CARG4, CARG3 | 1825 | | mov CARG4, CARG3 |
1825 | | add CARG1, STR:CARG1, #sizeof(GCstr) | 1826 | | add CARG1, STR:CARG1, #sizeof(GCstr) |
1826 | | cmp RB, CARG3 | 1827 | | add INS, CARG2, CARG3 |
1828 | | cmp RB, INS | ||
1827 | | blo ->fff_fallback | 1829 | | blo ->fff_fallback |
1828 | |1: // Reverse string copy. | 1830 | |1: // Reverse string copy. |
1829 | | ldrb RB, [CARG1], #1 | 1831 | | ldrb RB, [CARG1], #1 |
@@ -1840,11 +1842,12 @@ static void build_subroutines(BuildCtx *ctx) | |||
1840 | | blo ->fff_fallback | 1842 | | blo ->fff_fallback |
1841 | | checkstr CARG2, ->fff_fallback | 1843 | | checkstr CARG2, ->fff_fallback |
1842 | | ldr CARG3, STR:CARG1->len | 1844 | | ldr CARG3, STR:CARG1->len |
1843 | | ldr RB, [DISPATCH, #DISPATCH_GL(tmpbuf.sz)] | 1845 | | ldr CARG2, [DISPATCH, #DISPATCH_GL(tmpbuf.b)] |
1844 | | ldr CARG2, [DISPATCH, #DISPATCH_GL(tmpbuf.buf)] | 1846 | | ldr RB, [DISPATCH, #DISPATCH_GL(tmpbuf.e)] |
1845 | | mov CARG4, #0 | 1847 | | mov CARG4, #0 |
1846 | | add CARG1, STR:CARG1, #sizeof(GCstr) | 1848 | | add CARG1, STR:CARG1, #sizeof(GCstr) |
1847 | | cmp RB, CARG3 | 1849 | | add INS, CARG2, CARG3 |
1850 | | cmp RB, INS | ||
1848 | | blo ->fff_fallback | 1851 | | blo ->fff_fallback |
1849 | |1: // ASCII case conversion. | 1852 | |1: // ASCII case conversion. |
1850 | | ldrb RB, [CARG1, CARG4] | 1853 | | ldrb RB, [CARG1, CARG4] |