summaryrefslogtreecommitdiff
path: root/device/lib/stm8/mbstoc16s.asm
diff options
context:
space:
mode:
Diffstat (limited to 'device/lib/stm8/mbstoc16s.asm')
-rw-r--r--device/lib/stm8/mbstoc16s.asm196
1 files changed, 0 insertions, 196 deletions
diff --git a/device/lib/stm8/mbstoc16s.asm b/device/lib/stm8/mbstoc16s.asm
deleted file mode 100644
index 3019c43..0000000
--- a/device/lib/stm8/mbstoc16s.asm
+++ /dev/null
@@ -1,196 +0,0 @@
-;--------------------------------------------------------
-; File Created by SDCC : free open source ANSI-C Compiler
-; Version 3.9.3 #11345 (Linux)
-;--------------------------------------------------------
- .module mbstoc16s
- .optsdcc -mstm8
-
-;--------------------------------------------------------
-; Public variables in this module
-;--------------------------------------------------------
- .globl _mbtowc
- .globl ___mbstoc16s
-;--------------------------------------------------------
-; ram data
-;--------------------------------------------------------
- .area DATA
-;--------------------------------------------------------
-; ram data
-;--------------------------------------------------------
- .area INITIALIZED
-;--------------------------------------------------------
-; absolute external ram data
-;--------------------------------------------------------
- .area DABS (ABS)
-
-; default segment ordering for linker
- .area HOME
- .area GSINIT
- .area GSFINAL
- .area CONST
- .area INITIALIZER
- .area CODE
-
-;--------------------------------------------------------
-; global & static initialisations
-;--------------------------------------------------------
- .area HOME
- .area GSINIT
- .area GSFINAL
- .area GSINIT
-;--------------------------------------------------------
-; Home
-;--------------------------------------------------------
- .area HOME
- .area HOME
-;--------------------------------------------------------
-; code
-;--------------------------------------------------------
- .area CODE
-; ../mbstoc16s.c: 44: size_t __mbstoc16s(char16_t *restrict c16s, const char *restrict s, size_t n)
-; -----------------------------------------
-; function __mbstoc16s
-; -----------------------------------------
-___mbstoc16s:
- sub sp, #17
-; ../mbstoc16s.c: 46: size_t m = 0;
- clrw x
- ldw (0x09, sp), x
-; ../mbstoc16s.c: 85: return(m);
-00116$:
-; ../mbstoc16s.c: 53: l = mbtowc(&codepoint, s, MB_LEN_MAX);
- ldw x, sp
- addw x, #5
- push #0x04
- push #0x00
- ldw y, (0x18, sp)
- pushw y
- pushw x
- call _mbtowc
- addw sp, #6
- ldw (0x0b, sp), x
-; ../mbstoc16s.c: 55: if(l < 0)
- tnz (0x0b, sp)
- jrpl 00106$
-; ../mbstoc16s.c: 56: return(-1);
- clrw x
- decw x
- jp 00118$
-00106$:
-; ../mbstoc16s.c: 59: if(m < n)
- ldw x, (0x09, sp)
- cpw x, (0x18, sp)
- clr a
- rlc a
- ld (0x0d, sp), a
-; ../mbstoc16s.c: 60: *c16s = 0;
- ldw y, (0x14, sp)
-; ../mbstoc16s.c: 57: else if(!l)
- ldw x, (0x0b, sp)
- jrne 00107$
-; ../mbstoc16s.c: 59: if(m < n)
- tnz (0x0d, sp)
- jrne 00157$
- jp 00115$
-00157$:
-; ../mbstoc16s.c: 60: *c16s = 0;
- ldw x, y
- clr (0x1, x)
- clr (x)
-; ../mbstoc16s.c: 61: break;
- jp 00115$
-00107$:
-; ../mbstoc16s.c: 70: m++;
- ldw x, (0x09, sp)
- incw x
- ldw (0x0e, sp), x
-; ../mbstoc16s.c: 69: *c16s++ = codepoint;
- ldw x, y
- incw x
- incw x
- ldw (0x10, sp), x
-; ../mbstoc16s.c: 64: if (codepoint <= 0xffff) // Basic multilingual plane
- ldw x, (0x05, sp)
- jrne 00113$
-; ../mbstoc16s.c: 66: if (m >= n)
- ld a, (0x0d, sp)
- jreq 00115$
-; ../mbstoc16s.c: 69: *c16s++ = codepoint;
- ldw x, (0x07, sp)
- ldw (0x09, sp), x
- ldw x, y
- ldw y, (0x09, sp)
- ldw (x), y
- ldw y, (0x10, sp)
- ldw (0x14, sp), y
-; ../mbstoc16s.c: 70: m++;
- ldw y, (0x0e, sp)
- ldw (0x09, sp), y
- jra 00114$
-00113$:
-; ../mbstoc16s.c: 74: if (m + 1 >= n)
- ldw x, (0x0e, sp)
- cpw x, (0x18, sp)
- jrnc 00115$
-; ../mbstoc16s.c: 77: codepoint -= 0x100000;
- ld a, (0x08, sp)
- ld (0x04, sp), a
- ld a, (0x07, sp)
- ldw x, (0x05, sp)
- subw x, #0x0010
- ld (0x07, sp), a
- ldw (0x05, sp), x
- ld a, (0x04, sp)
- ld (0x08, sp), a
-; ../mbstoc16s.c: 78: *c16s++ = ((codepoint >> 10) & 0x3ff) + 0xd800;
- ldw x, (0x06, sp)
- ldw (0x03, sp), x
- ld a, (0x05, sp)
- ld (0x02, sp), a
- clr (0x01, sp)
- srl (0x02, sp)
- rrc (0x03, sp)
- rrc (0x04, sp)
- srl (0x02, sp)
- rrc (0x03, sp)
- rrc (0x04, sp)
- ld a, (0x04, sp)
- ld xl, a
- ld a, (0x03, sp)
- and a, #0x03
- ld xh, a
- addw x, #0xd800
- ldw (y), x
- ldw y, (0x10, sp)
-; ../mbstoc16s.c: 79: *c16s++ = (codepoint & 0x3ff) + 0xdc00;
- ldw (0x14, sp), y
- ldw x, (0x07, sp)
- ld a, xh
- and a, #0x03
- ld xh, a
- addw x, #0xdc00
- ldw (y), x
- addw y, #0x0002
- ldw (0x14, sp), y
-; ../mbstoc16s.c: 80: m += 2;
- ldw x, (0x09, sp)
- incw x
- incw x
- ldw (0x09, sp), x
-00114$:
-; ../mbstoc16s.c: 82: s += l;
- ldw x, (0x16, sp)
- addw x, (0x0b, sp)
- ldw (0x16, sp), x
- jp 00116$
-00115$:
-; ../mbstoc16s.c: 85: return(m);
- ldw x, (0x09, sp)
-00118$:
-; ../mbstoc16s.c: 86: }
- addw sp, #17
- ret
- .area CODE
- .area CONST
- .area INITIALIZER
- .area CABS (ABS)