diff options
Diffstat (limited to 'device/lib/stm8/sqrtf.lst')
| -rw-r--r-- | device/lib/stm8/sqrtf.lst | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/device/lib/stm8/sqrtf.lst b/device/lib/stm8/sqrtf.lst deleted file mode 100644 index f4856d7..0000000 --- a/device/lib/stm8/sqrtf.lst +++ /dev/null @@ -1,229 +0,0 @@ - 1 ;-------------------------------------------------------- - 2 ; File Created by SDCC : free open source ANSI-C Compiler - 3 ; Version 3.9.3 #11345 (Linux) - 4 ;-------------------------------------------------------- - 5 .module sqrtf - 6 .optsdcc -mstm8 - 7 - 8 ;-------------------------------------------------------- - 9 ; Public variables in this module - 10 ;-------------------------------------------------------- - 11 .globl _ldexpf - 12 .globl _frexpf - 13 .globl _sqrtf - 14 ;-------------------------------------------------------- - 15 ; ram data - 16 ;-------------------------------------------------------- - 17 .area DATA - 18 ;-------------------------------------------------------- - 19 ; ram data - 20 ;-------------------------------------------------------- - 21 .area INITIALIZED - 22 ;-------------------------------------------------------- - 23 ; absolute external ram data - 24 ;-------------------------------------------------------- - 25 .area DABS (ABS) - 26 - 27 ; default segment ordering for linker - 28 .area HOME - 29 .area GSINIT - 30 .area GSFINAL - 31 .area CONST - 32 .area INITIALIZER - 33 .area CODE - 34 - 35 ;-------------------------------------------------------- - 36 ; global & static initialisations - 37 ;-------------------------------------------------------- - 38 .area HOME - 39 .area GSINIT - 40 .area GSFINAL - 41 .area GSINIT - 42 ;-------------------------------------------------------- - 43 ; Home - 44 ;-------------------------------------------------------- - 45 .area HOME - 46 .area HOME - 47 ;-------------------------------------------------------- - 48 ; code - 49 ;-------------------------------------------------------- - 50 .area CODE - 51 ; ../sqrtf.c: 37: float sqrtf(float x) _FLOAT_FUNC_REENTRANT - 52 ; ----------------------------------------- - 53 ; function sqrtf - 54 ; ----------------------------------------- - 000000 55 _sqrtf: - 000000 52 0A [ 2] 56 sub sp, #10 - 57 ; ../sqrtf.c: 42: if (x==0.0) return x; - 000002 1E 0F [ 2] 58 ldw x, (0x0f, sp) - 000004 26 0C [ 1] 59 jrne 00107$ - 000006 1E 0D [ 2] 60 ldw x, (0x0d, sp) - 000008 58 [ 2] 61 sllw x - 000009 26 07 [ 1] 62 jrne 00107$ - 00000B 1E 0F [ 2] 63 ldw x, (0x0f, sp) - 00000D 16 0D [ 2] 64 ldw y, (0x0d, sp) - 00000F CCr01r11 [ 2] 65 jp 00111$ - 000012 66 00107$: - 67 ; ../sqrtf.c: 43: else if (x==1.0) return 1.0; - 000012 5F [ 1] 68 clrw x - 000013 89 [ 2] 69 pushw x - 000014 4B 80 [ 1] 70 push #0x80 - 000016 4B 3F [ 1] 71 push #0x3f - 000018 1E 13 [ 2] 72 ldw x, (0x13, sp) - 00001A 89 [ 2] 73 pushw x - 00001B 1E 13 [ 2] 74 ldw x, (0x13, sp) - 00001D 89 [ 2] 75 pushw x - 00001E CDr00r00 [ 4] 76 call ___fseq - 000021 5B 08 [ 2] 77 addw sp, #8 - 000023 4D [ 1] 78 tnz a - 000024 27 08 [ 1] 79 jreq 00104$ - 000026 5F [ 1] 80 clrw x - 000027 90 AE 3F 80 [ 2] 81 ldw y, #0x3f80 - 00002B CCr01r11 [ 2] 82 jp 00111$ - 00002E 83 00104$: - 84 ; ../sqrtf.c: 44: else if (x<0.0) - 00002E 5F [ 1] 85 clrw x - 00002F 89 [ 2] 86 pushw x - 000030 5F [ 1] 87 clrw x - 000031 89 [ 2] 88 pushw x - 000032 1E 13 [ 2] 89 ldw x, (0x13, sp) - 000034 89 [ 2] 90 pushw x - 000035 1E 13 [ 2] 91 ldw x, (0x13, sp) - 000037 89 [ 2] 92 pushw x - 000038 CDr00r00 [ 4] 93 call ___fslt - 00003B 5B 08 [ 2] 94 addw sp, #8 - 00003D 4D [ 1] 95 tnz a - 00003E 27 0C [ 1] 96 jreq 00108$ - 97 ; ../sqrtf.c: 46: errno=EDOM; - 000040 AE 00 21 [ 2] 98 ldw x, #0x0021 - 000043 CFu00u00 [ 2] 99 ldw _errno+0, x - 100 ; ../sqrtf.c: 47: return 0.0; - 000046 5F [ 1] 101 clrw x - 000047 90 5F [ 1] 102 clrw y - 000049 CCr01r11 [ 2] 103 jp 00111$ - 00004C 104 00108$: - 105 ; ../sqrtf.c: 49: f=frexpf(x, &n); - 00004C 96 [ 1] 106 ldw x, sp - 00004D 5C [ 1] 107 incw x - 00004E 89 [ 2] 108 pushw x - 00004F 1E 11 [ 2] 109 ldw x, (0x11, sp) - 000051 89 [ 2] 110 pushw x - 000052 1E 11 [ 2] 111 ldw x, (0x11, sp) - 000054 89 [ 2] 112 pushw x - 000055 CDr00r00 [ 4] 113 call _frexpf - 000058 5B 06 [ 2] 114 addw sp, #6 - 00005A 1F 05 [ 2] 115 ldw (0x05, sp), x - 00005C 17 03 [ 2] 116 ldw (0x03, sp), y - 117 ; ../sqrtf.c: 50: y=0.41731+0.59016*f; /*Educated guess*/ - 00005E 1E 05 [ 2] 118 ldw x, (0x05, sp) - 000060 89 [ 2] 119 pushw x - 000061 1E 05 [ 2] 120 ldw x, (0x05, sp) - 000063 89 [ 2] 121 pushw x - 000064 4B BA [ 1] 122 push #0xba - 000066 4B 14 [ 1] 123 push #0x14 - 000068 4B 17 [ 1] 124 push #0x17 - 00006A 4B 3F [ 1] 125 push #0x3f - 00006C CDr00r00 [ 4] 126 call ___fsmul - 00006F 5B 08 [ 2] 127 addw sp, #8 - 000071 4B A8 [ 1] 128 push #0xa8 - 000073 4B A9 [ 1] 129 push #0xa9 - 000075 4B D5 [ 1] 130 push #0xd5 - 000077 4B 3E [ 1] 131 push #0x3e - 000079 89 [ 2] 132 pushw x - 00007A 90 89 [ 2] 133 pushw y - 00007C CDr00r00 [ 4] 134 call ___fsadd - 00007F 5B 08 [ 2] 135 addw sp, #8 - 000081 1F 09 [ 2] 136 ldw (0x09, sp), x - 000083 17 07 [ 2] 137 ldw (0x07, sp), y - 138 ; ../sqrtf.c: 52: y+=f/y; - 000085 1E 09 [ 2] 139 ldw x, (0x09, sp) - 000087 89 [ 2] 140 pushw x - 000088 1E 09 [ 2] 141 ldw x, (0x09, sp) - 00008A 89 [ 2] 142 pushw x - 00008B 1E 09 [ 2] 143 ldw x, (0x09, sp) - 00008D 89 [ 2] 144 pushw x - 00008E 1E 09 [ 2] 145 ldw x, (0x09, sp) - 000090 89 [ 2] 146 pushw x - 000091 CDr00r00 [ 4] 147 call ___fsdiv - 000094 5B 08 [ 2] 148 addw sp, #8 - 000096 89 [ 2] 149 pushw x - 000097 90 89 [ 2] 150 pushw y - 000099 1E 0D [ 2] 151 ldw x, (0x0d, sp) - 00009B 89 [ 2] 152 pushw x - 00009C 1E 0D [ 2] 153 ldw x, (0x0d, sp) - 00009E 89 [ 2] 154 pushw x - 00009F CDr00r00 [ 4] 155 call ___fsadd - 0000A2 5B 08 [ 2] 156 addw sp, #8 - 157 ; ../sqrtf.c: 53: y=ldexpf(y, -2) + f/y; /*Faster version of 0.25 * y + f/y*/ - 0000A4 89 [ 2] 158 pushw x - 0000A5 90 89 [ 2] 159 pushw y - 0000A7 4B FE [ 1] 160 push #0xfe - 0000A9 4B FF [ 1] 161 push #0xff - 0000AB 89 [ 2] 162 pushw x - 0000AC 90 89 [ 2] 163 pushw y - 0000AE CDr00r00 [ 4] 164 call _ldexpf - 0000B1 5B 06 [ 2] 165 addw sp, #6 - 0000B3 1F 0D [ 2] 166 ldw (0x0d, sp), x - 0000B5 17 0B [ 2] 167 ldw (0x0b, sp), y - 0000B7 90 85 [ 2] 168 popw y - 0000B9 90 89 [ 2] 169 pushw y - 0000BB 1E 09 [ 2] 170 ldw x, (0x09, sp) - 0000BD 89 [ 2] 171 pushw x - 0000BE 1E 09 [ 2] 172 ldw x, (0x09, sp) - 0000C0 89 [ 2] 173 pushw x - 0000C1 CDr00r00 [ 4] 174 call ___fsdiv - 0000C4 5B 08 [ 2] 175 addw sp, #8 - 0000C6 89 [ 2] 176 pushw x - 0000C7 90 89 [ 2] 177 pushw y - 0000C9 1E 0D [ 2] 178 ldw x, (0x0d, sp) - 0000CB 89 [ 2] 179 pushw x - 0000CC 1E 0D [ 2] 180 ldw x, (0x0d, sp) - 0000CE 89 [ 2] 181 pushw x - 0000CF CDr00r00 [ 4] 182 call ___fsadd - 0000D2 5B 08 [ 2] 183 addw sp, #8 - 0000D4 1F 09 [ 2] 184 ldw (0x09, sp), x - 0000D6 17 07 [ 2] 185 ldw (0x07, sp), y - 186 ; ../sqrtf.c: 55: if (n&1) - 0000D8 7B 02 [ 1] 187 ld a, (0x02, sp) - 0000DA 44 [ 1] 188 srl a - 0000DB 24 1C [ 1] 189 jrnc 00110$ - 190 ; ../sqrtf.c: 57: y*=0.7071067812; - 0000DD 1E 09 [ 2] 191 ldw x, (0x09, sp) - 0000DF 89 [ 2] 192 pushw x - 0000E0 1E 09 [ 2] 193 ldw x, (0x09, sp) - 0000E2 89 [ 2] 194 pushw x - 0000E3 4B F3 [ 1] 195 push #0xf3 - 0000E5 4B 04 [ 1] 196 push #0x04 - 0000E7 4B 35 [ 1] 197 push #0x35 - 0000E9 4B 3F [ 1] 198 push #0x3f - 0000EB CDr00r00 [ 4] 199 call ___fsmul - 0000EE 5B 08 [ 2] 200 addw sp, #8 - 0000F0 1F 09 [ 2] 201 ldw (0x09, sp), x - 0000F2 17 07 [ 2] 202 ldw (0x07, sp), y - 203 ; ../sqrtf.c: 58: ++n; - 0000F4 1E 01 [ 2] 204 ldw x, (0x01, sp) - 0000F6 5C [ 1] 205 incw x - 0000F7 1F 01 [ 2] 206 ldw (0x01, sp), x - 0000F9 207 00110$: - 208 ; ../sqrtf.c: 60: return ldexpf(y, n/2); - 0000F9 4B 02 [ 1] 209 push #0x02 - 0000FB 4B 00 [ 1] 210 push #0x00 - 0000FD 1E 03 [ 2] 211 ldw x, (0x03, sp) - 0000FF 89 [ 2] 212 pushw x - 000100 CDr00r00 [ 4] 213 call __divsint - 000103 5B 04 [ 2] 214 addw sp, #4 - 000105 89 [ 2] 215 pushw x - 000106 1E 0B [ 2] 216 ldw x, (0x0b, sp) - 000108 89 [ 2] 217 pushw x - 000109 1E 0B [ 2] 218 ldw x, (0x0b, sp) - 00010B 89 [ 2] 219 pushw x - 00010C CDr00r00 [ 4] 220 call _ldexpf - 00010F 5B 06 [ 2] 221 addw sp, #6 - 000111 222 00111$: - 223 ; ../sqrtf.c: 61: } - 000111 5B 0A [ 2] 224 addw sp, #10 - 000113 81 [ 4] 225 ret - 226 .area CODE - 227 .area CONST - 228 .area INITIALIZER - 229 .area CABS (ABS) |
