summaryrefslogtreecommitdiff
path: root/device/lib/stm8/free.lst
diff options
context:
space:
mode:
Diffstat (limited to 'device/lib/stm8/free.lst')
-rw-r--r--device/lib/stm8/free.lst144
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)