diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-23 03:38:32 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-23 03:38:32 +0200 |
| commit | 2cece67cb5af0339e4ab1f18b0bce2f0b4e6ebdd (patch) | |
| tree | b2fbf4e99f194213527304c9189abe65c163ac0b /device/lib/stm8/malloc.asm | |
| parent | ed26eb00026800d1d2ff6289627216c7d1f0d459 (diff) | |
| download | sdcc-gas-2cece67cb5af0339e4ab1f18b0bce2f0b4e6ebdd.tar.gz | |
Removed intermediate files
Diffstat (limited to 'device/lib/stm8/malloc.asm')
| -rw-r--r-- | device/lib/stm8/malloc.asm | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/device/lib/stm8/malloc.asm b/device/lib/stm8/malloc.asm deleted file mode 100644 index 42a73a5..0000000 --- a/device/lib/stm8/malloc.asm +++ /dev/null @@ -1,182 +0,0 @@ -;-------------------------------------------------------- -; File Created by SDCC : free open source ANSI-C Compiler -; Version 3.9.3 #11345 (Linux) -;-------------------------------------------------------- - .module malloc - .optsdcc -mstm8 - -;-------------------------------------------------------- -; Public variables in this module -;-------------------------------------------------------- - .globl ___sdcc_heap_init - .globl ___sdcc_heap_free - .globl _malloc -;-------------------------------------------------------- -; ram data -;-------------------------------------------------------- - .area DATA -___sdcc_heap_free:: - .ds 2 -;-------------------------------------------------------- -; 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 -; ../malloc.c: 65: void __sdcc_heap_init(void) -; ----------------------------------------- -; function __sdcc_heap_init -; ----------------------------------------- -___sdcc_heap_init: -; ../malloc.c: 67: __sdcc_heap_free = HEAP_START; - ldw x, #(___sdcc_heap + 0) - ldw ___sdcc_heap_free+0, x -; ../malloc.c: 68: __sdcc_heap_free->next = HEAP_END; - ldw x, #___sdcc_heap_end+0 - ldw [___sdcc_heap_free+0], x -; ../malloc.c: 69: __sdcc_heap_free->next_free = 0; - ldw x, ___sdcc_heap_free+0 - incw x - incw x - clr (0x1, x) - clr (x) -; ../malloc.c: 70: } - ret -; ../malloc.c: 75: void *malloc(size_t size) -; ----------------------------------------- -; function malloc -; ----------------------------------------- -_malloc: - sub sp, #12 -; ../malloc.c: 86: if(!size || size + offsetof(struct header, next_free) < size) - ldw x, (0x0f, sp) - jreq 00101$ - incw x - incw x - cpw x, (0x0f, sp) - jrnc 00102$ -00101$: -; ../malloc.c: 87: return(0); - clrw x - jra 00115$ -00102$: -; ../malloc.c: 88: size += offsetof(struct header, next_free); -; ../malloc.c: 89: if(size < sizeof(struct header)) // Requiring a minimum size makes it easier to implement free(), and avoid memory leaks. - ldw (0x0f, sp), x - cpw x, #0x0004 - jrnc 00105$ -; ../malloc.c: 90: size = sizeof(struct header); - ldw x, #0x0004 - ldw (0x0f, sp), x -00105$: -; ../malloc.c: 92: for(h = __sdcc_heap_free, f = &__sdcc_heap_free; h; f = &(h->next_free), h = h->next_free) - ldw x, ___sdcc_heap_free+0 - ldw (0x01, sp), x - ldw x, #(___sdcc_heap_free + 0) - ldw (0x03, sp), x -00113$: -; ../malloc.c: 94: size_t blocksize = (char HEAPSPACE *)(h->next) - (char HEAPSPACE *)h; - ldw x, (0x01, sp) - jreq 00111$ - ldw x, (x) - ldw (0x05, sp), x - ldw y, x - ldw x, (0x01, sp) - ldw (0x07, sp), x - subw y, (0x07, sp) -; ../malloc.c: 101: newheader->next_free = h->next_free; - ldw x, (0x01, sp) - incw x - incw x - ldw (0x09, sp), x -; ../malloc.c: 95: if(blocksize >= size) // Found free block of sufficient size. - exgw x, y - cpw x, (0x0f, sp) - exgw x, y - jrc 00114$ -; ../malloc.c: 97: if(blocksize >= size + sizeof(struct header)) // It is worth creating a new free block - ldw x, (0x0f, sp) - addw x, #0x0004 - ldw (0x0b, sp), x - ldw x, y - cpw x, (0x0b, sp) - jrc 00107$ -; ../malloc.c: 99: header_t *const newheader = (header_t *const)((char HEAPSPACE *)h + size); - ldw x, (0x07, sp) - addw x, (0x0f, sp) -; ../malloc.c: 100: newheader->next = h->next; - ldw (0x0b, sp), x - ldw y, (0x05, sp) - ldw (x), y -; ../malloc.c: 101: newheader->next_free = h->next_free; - ldw x, (0x0b, sp) - incw x - incw x - ldw y, (0x09, sp) - ldw y, (y) - ldw (x), y -; ../malloc.c: 102: *f = newheader; - ldw x, (0x03, sp) - ldw y, (0x0b, sp) - ldw (x), y -; ../malloc.c: 103: h->next = newheader; - ldw x, (0x01, sp) - ldw y, (0x0b, sp) - ldw (x), y - jra 00108$ -00107$: -; ../malloc.c: 106: *f = h->next_free; - ldw x, (0x09, sp) - ldw x, (x) - ldw y, (0x03, sp) - ldw (y), x -00108$: -; ../malloc.c: 108: return(&(h->next_free)); - ldw x, (0x09, sp) - jra 00115$ -00114$: -; ../malloc.c: 92: for(h = __sdcc_heap_free, f = &__sdcc_heap_free; h; f = &(h->next_free), h = h->next_free) - ldw y, (0x09, sp) - ldw (0x03, sp), y - ldw x, (0x09, sp) - ldw x, (x) - ldw (0x01, sp), x - jra 00113$ -00111$: -; ../malloc.c: 112: return(0); - clrw x -00115$: -; ../malloc.c: 113: } - addw sp, #12 - ret - .area CODE - .area CONST - .area INITIALIZER - .area CABS (ABS) |
