diff options
Diffstat (limited to 'device/lib/stm8/free.lst')
| -rw-r--r-- | device/lib/stm8/free.lst | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/device/lib/stm8/free.lst b/device/lib/stm8/free.lst deleted file mode 100644 index 07fcd6c..0000000 --- a/device/lib/stm8/free.lst +++ /dev/null @@ -1,144 +0,0 @@ - 1 ;-------------------------------------------------------- - 2 ; File Created by SDCC : free open source ANSI-C Compiler - 3 ; Version 3.9.3 #11345 (Linux) - 4 ;-------------------------------------------------------- - 5 .module free - 6 .optsdcc -mstm8 - 7 - 8 ;-------------------------------------------------------- - 9 ; Public variables in this module - 10 ;-------------------------------------------------------- - 11 .globl _free - 12 ;-------------------------------------------------------- - 13 ; ram data - 14 ;-------------------------------------------------------- - 15 .area DATA - 16 ;-------------------------------------------------------- - 17 ; ram data - 18 ;-------------------------------------------------------- - 19 .area INITIALIZED - 20 ;-------------------------------------------------------- - 21 ; absolute external ram data - 22 ;-------------------------------------------------------- - 23 .area DABS (ABS) - 24 - 25 ; default segment ordering for linker - 26 .area HOME - 27 .area GSINIT - 28 .area GSFINAL - 29 .area CONST - 30 .area INITIALIZER - 31 .area CODE - 32 - 33 ;-------------------------------------------------------- - 34 ; global & static initialisations - 35 ;-------------------------------------------------------- - 36 .area HOME - 37 .area GSINIT - 38 .area GSFINAL - 39 .area GSINIT - 40 ;-------------------------------------------------------- - 41 ; Home - 42 ;-------------------------------------------------------- - 43 .area HOME - 44 .area HOME - 45 ;-------------------------------------------------------- - 46 ; code - 47 ;-------------------------------------------------------- - 48 .area CODE - 49 ; ../free.c: 50: void free(void *ptr) - 50 ; ----------------------------------------- - 51 ; function free - 52 ; ----------------------------------------- - 000000 53 _free: - 000000 52 0A [ 2] 54 sub sp, #10 - 55 ; ../free.c: 55: if(!ptr) - 000002 1E 0D [ 2] 56 ldw x, (0x0d, sp) - 57 ; ../free.c: 56: return; - 000004 27 6E [ 1] 58 jreq 00113$ - 59 ; ../free.c: 58: prev_free = 0; - 000006 5F [ 1] 60 clrw x - 000007 1F 01 [ 2] 61 ldw (0x01, sp), x - 62 ; ../free.c: 59: for(h = __sdcc_heap_free, f = &__sdcc_heap_free; h && h < ptr; prev_free = h, f = &(h->next_free), h = h->next_free); // Find adjacent blocks in free list - 000009 CEu00u00 [ 2] 63 ldw x, ___sdcc_heap_free+0 - 00000C 1F 09 [ 2] 64 ldw (0x09, sp), x - 00000E AEr00r00 [ 2] 65 ldw x, #(___sdcc_heap_free + 0) - 000011 1F 03 [ 2] 66 ldw (0x03, sp), x - 000013 67 00111$: - 000013 1E 09 [ 2] 68 ldw x, (0x09, sp) - 000015 27 19 [ 1] 69 jreq 00103$ - 000017 16 0D [ 2] 70 ldw y, (0x0d, sp) - 000019 17 07 [ 2] 71 ldw (0x07, sp), y - 00001B 1E 09 [ 2] 72 ldw x, (0x09, sp) - 00001D 13 07 [ 2] 73 cpw x, (0x07, sp) - 00001F 24 0F [ 1] 74 jrnc 00103$ - 000021 16 09 [ 2] 75 ldw y, (0x09, sp) - 000023 17 01 [ 2] 76 ldw (0x01, sp), y - 000025 1E 09 [ 2] 77 ldw x, (0x09, sp) - 000027 5C [ 1] 78 incw x - 000028 5C [ 1] 79 incw x - 000029 1F 03 [ 2] 80 ldw (0x03, sp), x - 00002B FE [ 2] 81 ldw x, (x) - 00002C 1F 09 [ 2] 82 ldw (0x09, sp), x - 00002E 20 E3 [ 2] 83 jra 00111$ - 000030 84 00103$: - 85 ; ../free.c: 60: next_free = h; - 000030 16 09 [ 2] 86 ldw y, (0x09, sp) - 000032 17 05 [ 2] 87 ldw (0x05, sp), y - 88 ; ../free.c: 62: h = (void HEAPSPACE *)((char HEAPSPACE *)(ptr) - offsetof(struct header, next_free)); - 000034 1E 0D [ 2] 89 ldw x, (0x0d, sp) - 000036 5A [ 2] 90 decw x - 000037 5A [ 2] 91 decw x - 92 ; ../free.c: 65: h->next_free = next_free; - 000038 1F 07 [ 2] 93 ldw (0x07, sp), x - 00003A 5C [ 1] 94 incw x - 00003B 5C [ 1] 95 incw x - 00003C 1F 09 [ 2] 96 ldw (0x09, sp), x - 00003E 16 05 [ 2] 97 ldw y, (0x05, sp) - 000040 FF [ 2] 98 ldw (x), y - 99 ; ../free.c: 66: *f = h; - 000041 1E 03 [ 2] 100 ldw x, (0x03, sp) - 000043 16 07 [ 2] 101 ldw y, (0x07, sp) - 000045 FF [ 2] 102 ldw (x), y - 103 ; ../free.c: 68: if(next_free == h->next) // Merge with next block - 000046 1E 07 [ 2] 104 ldw x, (0x07, sp) - 000048 FE [ 2] 105 ldw x, (x) - 000049 13 05 [ 2] 106 cpw x, (0x05, sp) - 00004B 26 0E [ 1] 107 jrne 00105$ - 108 ; ../free.c: 70: h->next_free = h->next->next_free; - 00004D EE 02 [ 2] 109 ldw x, (0x2, x) - 00004F 16 09 [ 2] 110 ldw y, (0x09, sp) - 000051 90 FF [ 2] 111 ldw (y), x - 112 ; ../free.c: 71: h->next = h->next->next; - 000053 1E 07 [ 2] 113 ldw x, (0x07, sp) - 000055 FE [ 2] 114 ldw x, (x) - 000056 FE [ 2] 115 ldw x, (x) - 000057 16 07 [ 2] 116 ldw y, (0x07, sp) - 000059 90 FF [ 2] 117 ldw (y), x - 00005B 118 00105$: - 119 ; ../free.c: 74: if (prev_free && prev_free->next == h) // Merge with previous block - 00005B 1E 01 [ 2] 120 ldw x, (0x01, sp) - 00005D 27 15 [ 1] 121 jreq 00113$ - 00005F FE [ 2] 122 ldw x, (x) - 000060 13 07 [ 2] 123 cpw x, (0x07, sp) - 000062 26 10 [ 1] 124 jrne 00113$ - 125 ; ../free.c: 76: prev_free->next = h->next; - 000064 1E 07 [ 2] 126 ldw x, (0x07, sp) - 000066 FE [ 2] 127 ldw x, (x) - 000067 16 01 [ 2] 128 ldw y, (0x01, sp) - 000069 90 FF [ 2] 129 ldw (y), x - 130 ; ../free.c: 77: prev_free->next_free = h->next_free; - 00006B 1E 01 [ 2] 131 ldw x, (0x01, sp) - 00006D 5C [ 1] 132 incw x - 00006E 5C [ 1] 133 incw x - 00006F 16 09 [ 2] 134 ldw y, (0x09, sp) - 000071 90 FE [ 2] 135 ldw y, (y) - 000073 FF [ 2] 136 ldw (x), y - 000074 137 00113$: - 138 ; ../free.c: 79: } - 000074 5B 0A [ 2] 139 addw sp, #10 - 000076 81 [ 4] 140 ret - 141 .area CODE - 142 .area CONST - 143 .area INITIALIZER - 144 .area CABS (ABS) |
