| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- GAS LISTING /tmp/ccCY9GkT.s page 1
- 1 .file "context_gcc.c"
- 2 __SP_H__ = 0x3e
- 3 __SP_L__ = 0x3d
- 4 __SREG__ = 0x3f
- 5 __RAMPZ__ = 0x3b
- 6 __tmp_reg__ = 0
- 7 __zero_reg__ = 1
- 8 .section .text.NutThreadEntry,"ax",@progbits
- 9 .type NutThreadEntry, @function
- 10 NutThreadEntry:
- 11 /* prologue: naked */
- 12 /* frame size = 0 */
- 13 /* stack size = 0 */
- 14 .L__stack_usage = 0
- 15 /* #APP */
- 16 ; 138 "../../nut/arch/avr/os/context_gcc.c" 1
- 17 0000 9F91 pop r25
- 18 0002 8F91 pop r24
- 19 0004 0F90 pop __tmp_reg__
- 20 0006 0BBE out 59, __tmp_reg__
- 21 0008 0F90 pop __tmp_reg__
- 22 000a 0FBE out 63, __tmp_reg__
- 23 000c 1F90 pop __zero_reg__
- 24 000e 1895 reti
- 25
- 26 ; 0 "" 2
- 27 /* epilogue start */
- 28 /* #NOAPP */
- 29 .size NutThreadEntry, .-NutThreadEntry
- 30 .section .text.NutThreadSwitch,"ax",@progbits
- 31 .global NutThreadSwitch
- 32 .type NutThreadSwitch, @function
- 33 NutThreadSwitch:
- 34 /* prologue: naked */
- 35 /* frame size = 0 */
- 36 /* stack size = 0 */
- 37 .L__stack_usage = 0
- 38 0000 E091 0000 lds r30,runningThread
- 39 0004 F091 0000 lds r31,runningThread+1
- 40 /* #APP */
- 41 ; 156 "../../nut/arch/avr/os/context_gcc.c" 1
- 42 0008 2F92 push r2
- 43 000a 3F92 push r3
- 44 000c 4F92 push r4
- 45 000e 5F92 push r5
- 46 0010 6F92 push r6
- 47 0012 7F92 push r7
- 48 0014 8F92 push r8
- 49 0016 9F92 push r9
- 50 0018 AF92 push r10
- 51 001a BF92 push r11
- 52 001c CF92 push r12
- 53 001e DF92 push r13
- 54 0020 EF92 push r14
- 55 0022 FF92 push r15
- 56 0024 0F93 push r16
- 57 0026 1F93 push r17
- GAS LISTING /tmp/ccCY9GkT.s page 2
- 58 0028 CF93 push r28
- 59 002a DF93 push r29
- 60 002c 8DB7 in r24, 61
- 61 002e 9EB7 in r25, 62
- 62
- 63 ; 0 "" 2
- 64 /* #NOAPP */
- 65 0030 918B std Z+17,r25
- 66 0032 808B std Z+16,r24
- 67 /* #APP */
- 68 ; 185 "../../nut/arch/avr/os/context_gcc.c" 1
- 69 .global thread_start
- 70 thread_start:
- 71
- 72 ; 0 "" 2
- 73 /* #NOAPP */
- 74 0034 E091 0000 lds r30,runQueue
- 75 0038 F091 0000 lds r31,runQueue+1
- 76 003c F093 0000 sts runningThread+1,r31
- 77 0040 E093 0000 sts runningThread,r30
- 78 0044 81E0 ldi r24,lo8(1)
- 79 0046 8787 std Z+15,r24
- 80 0048 8089 ldd r24,Z+16
- 81 004a 9189 ldd r25,Z+17
- 82 /* #APP */
- 83 ; 193 "../../nut/arch/avr/os/context_gcc.c" 1
- 84 004c 8DBF out 61, r24
- 85 004e 9EBF out 62, r25
- 86 0050 DF91 pop r29
- 87 0052 CF91 pop r28
- 88 0054 1F91 pop r17
- 89 0056 0F91 pop r16
- 90 0058 FF90 pop r15
- 91 005a EF90 pop r14
- 92 005c DF90 pop r13
- 93 005e CF90 pop r12
- 94 0060 BF90 pop r11
- 95 0062 AF90 pop r10
- 96 0064 9F90 pop r9
- 97 0066 8F90 pop r8
- 98 0068 7F90 pop r7
- 99 006a 6F90 pop r6
- 100 006c 5F90 pop r5
- 101 006e 4F90 pop r4
- 102 0070 3F90 pop r3
- 103 0072 2F90 pop r2
- 104 0074 0895 ret
- 105
- 106 ; 0 "" 2
- 107 /* epilogue start */
- 108 /* #NOAPP */
- 109 .size NutThreadSwitch, .-NutThreadSwitch
- 110 .section .text.NutThreadCreate,"ax",@progbits
- 111 .global NutThreadCreate
- 112 .type NutThreadCreate, @function
- 113 NutThreadCreate:
- 114 0000 8F92 push r8
- GAS LISTING /tmp/ccCY9GkT.s page 3
- 115 0002 9F92 push r9
- 116 0004 BF92 push r11
- 117 0006 CF92 push r12
- 118 0008 DF92 push r13
- 119 000a EF92 push r14
- 120 000c FF92 push r15
- 121 000e 0F93 push r16
- 122 0010 1F93 push r17
- 123 0012 CF93 push r28
- 124 0014 DF93 push r29
- 125 0016 1F92 push __zero_reg__
- 126 0018 1F92 push __zero_reg__
- 127 001a CDB7 in r28,__SP_L__
- 128 001c DEB7 in r29,__SP_H__
- 129 /* prologue: function */
- 130 /* frame size = 2 */
- 131 /* stack size = 13 */
- 132 .L__stack_usage = 13
- 133 001e 7C01 movw r14,r24
- 134 0020 062F mov r16,r22
- 135 0022 B72E mov r11,r23
- 136 0024 4901 movw r8,r18
- 137 0026 B901 movw r22,r18
- 138 0028 675E subi r22,-25
- 139 002a 7F4F sbci r23,-1
- 140 002c 80E0 ldi r24,lo8(heapFreeList)
- 141 002e 90E0 ldi r25,hi8(heapFreeList)
- 142 0030 4983 std Y+1,r20
- 143 0032 5A83 std Y+2,r21
- 144 0034 0E94 0000 call NutHeapRootAlloc
- 145 0038 4981 ldd r20,Y+1
- 146 003a 5A81 ldd r21,Y+2
- 147 003c 0097 sbiw r24,0
- 148 003e 01F4 brne .+2
- 149 0040 00C0 rjmp .L6
- 150 0042 880E add r8,r24
- 151 0044 991E adc r9,r25
- 152 0046 9401 movw r18,r8
- 153 0048 2850 subi r18,8
- 154 004a 3109 sbc r19,__zero_reg__
- 155 004c B401 movw r22,r8
- 156 004e 6D51 subi r22,29
- 157 0050 7109 sbc r23,__zero_reg__
- 158 0052 D401 movw r26,r8
- 159 0054 1696 adiw r26,6
- 160 0056 18E0 ldi r17,lo8(8)
- 161 0058 F701 movw r30,r14
- 162 0:
- 163 005a 0190 ld r0,Z+
- 164 005c 0D92 st X+,r0
- 165 005e 1A95 dec r17
- 166 0060 01F4 brne 0b
- 167 0062 D401 movw r26,r8
- 168 0064 1E96 adiw r26,14
- 169 0066 1C92 st X,__zero_reg__
- 170 0068 1E97 sbiw r26,14
- 171 006a F401 movw r30,r8
- GAS LISTING /tmp/ccCY9GkT.s page 4
- 172 006c 7E97 sbiw r30,30
- 173 006e 5196 adiw r26,16+1
- 174 0070 FC93 st X,r31
- 175 0072 EE93 st -X,r30
- 176 0074 5097 sbiw r26,16
- 177 0076 5496 adiw r26,19+1
- 178 0078 9C93 st X,r25
- 179 007a 8E93 st -X,r24
- 180 007c 5397 sbiw r26,19
- 181 007e EFEE ldi r30,lo8(-17)
- 182 0080 CE2E mov r12,r30
- 183 0082 EEEB ldi r30,lo8(-66)
- 184 0084 DE2E mov r13,r30
- 185 0086 EDEA ldi r30,lo8(-83)
- 186 0088 EE2E mov r14,r30
- 187 008a EEED ldi r30,lo8(-34)
- 188 008c FE2E mov r15,r30
- 189 008e FC01 movw r30,r24
- 190 0090 C082 st Z,r12
- 191 0092 D182 std Z+1,r13
- 192 0094 E282 std Z+2,r14
- 193 0096 F382 std Z+3,r15
- 194 0098 C482 std Z+4,r12
- 195 009a D582 std Z+5,r13
- 196 009c E682 std Z+6,r14
- 197 009e F782 std Z+7,r15
- 198 00a0 C086 std Z+8,r12
- 199 00a2 D186 std Z+9,r13
- 200 00a4 E286 std Z+10,r14
- 201 00a6 F386 std Z+11,r15
- 202 00a8 C486 std Z+12,r12
- 203 00aa D586 std Z+13,r13
- 204 00ac E686 std Z+14,r14
- 205 00ae F786 std Z+15,r15
- 206 00b0 80E4 ldi r24,lo8(64)
- 207 00b2 F401 movw r30,r8
- 208 00b4 828B std Z+18,r24
- 209 00b6 D901 movw r26,r18
- 210 00b8 1596 adiw r26,5
- 211 00ba 1C92 st X,__zero_reg__
- 212 00bc 1597 sbiw r26,5
- 213 00be 1696 adiw r26,6
- 214 00c0 BC92 st X,r11
- 215 00c2 1697 sbiw r26,6
- 216 00c4 1796 adiw r26,7
- 217 00c6 0C93 st X,r16
- 218 00c8 1797 sbiw r26,7
- 219 00ca 80E8 ldi r24,lo8(-128)
- 220 00cc 1396 adiw r26,3
- 221 00ce 8C93 st X,r24
- 222 00d0 1397 sbiw r26,3
- 223 00d2 1296 adiw r26,2
- 224 00d4 1C92 st X,__zero_reg__
- 225 00d6 1297 sbiw r26,2
- 226 00d8 1496 adiw r26,4
- 227 00da 1C92 st X,__zero_reg__
- 228 00dc 1497 sbiw r26,4
- GAS LISTING /tmp/ccCY9GkT.s page 5
- 229 00de 1196 adiw r26,1
- 230 00e0 4C93 st X,r20
- 231 00e2 1197 sbiw r26,1
- 232 00e4 5C93 st X,r21
- 233 00e6 FB01 movw r30,r22
- 234 00e8 128A std Z+18,__zero_reg__
- 235 00ea 80E0 ldi r24,lo8(gs(NutThreadEntry))
- 236 00ec 90E0 ldi r25,hi8(gs(NutThreadEntry))
- 237 00ee 938B std Z+19,r25
- 238 00f0 848B std Z+20,r24
- 239 00f2 8091 0000 lds r24,nutThreadList
- 240 00f6 9091 0000 lds r25,nutThreadList+1
- 241 00fa D401 movw r26,r8
- 242 00fc 1196 adiw r26,1
- 243 00fe 9C93 st X,r25
- 244 0100 8E93 st -X,r24
- 245 0102 9092 0000 sts nutThreadList+1,r9
- 246 0106 8092 0000 sts nutThreadList,r8
- 247 010a 82E0 ldi r24,lo8(2)
- 248 010c 1F96 adiw r26,15
- 249 010e 8C93 st X,r24
- 250 0110 1F97 sbiw r26,15
- 251 0112 5696 adiw r26,21+1
- 252 0114 1C92 st X,__zero_reg__
- 253 0116 1E92 st -X,__zero_reg__
- 254 0118 5597 sbiw r26,21
- 255 011a 5896 adiw r26,23+1
- 256 011c 1C92 st X,__zero_reg__
- 257 011e 1E92 st -X,__zero_reg__
- 258 0120 5797 sbiw r26,23
- 259 0122 60E0 ldi r22,lo8(runQueue)
- 260 0124 70E0 ldi r23,hi8(runQueue)
- 261 0126 C401 movw r24,r8
- 262 0128 0E94 0000 call NutThreadAddPriQueue
- 263 012c E091 0000 lds r30,runningThread
- 264 0130 F091 0000 lds r31,runningThread+1
- 265 0134 3097 sbiw r30,0
- 266 0136 01F4 brne .L5
- 267 /* #APP */
- 268 ; 314 "../../nut/arch/avr/os/context_gcc.c" 1
- 269 0138 0FB6 in __tmp_reg__, __SREG__
- 270 013a F894 cli
- 271 013c 0F92 push __tmp_reg__
- 272
- 273 ; 0 "" 2
- 274 ; 315 "../../nut/arch/avr/os/context_gcc.c" 1
- 275 013e 00C0 rjmp thread_start
- 276
- 277 ; 0 "" 2
- 278 /* #NOAPP */
- 279 .L5:
- 280 0140 8091 0000 lds r24,runQueue
- 281 0144 9091 0000 lds r25,runQueue+1
- 282 0148 E817 cp r30,r24
- 283 014a F907 cpc r31,r25
- 284 014c 01F0 breq .L7
- 285 014e 82E0 ldi r24,lo8(2)
- GAS LISTING /tmp/ccCY9GkT.s page 6
- 286 0150 8787 std Z+15,r24
- 287 /* #APP */
- 288 ; 330 "../../nut/arch/avr/os/context_gcc.c" 1
- 289 0152 0FB6 in __tmp_reg__, __SREG__
- 290 0154 F894 cli
- 291 0156 0F92 push __tmp_reg__
- 292
- 293 ; 0 "" 2
- 294 /* #NOAPP */
- 295 0158 0E94 0000 call NutThreadSwitch
- 296 /* #APP */
- 297 ; 332 "../../nut/arch/avr/os/context_gcc.c" 1
- 298 015c 0F90 pop __tmp_reg__
- 299 015e 0FBE out __SREG__, __tmp_reg__
- 300
- 301 ; 0 "" 2
- 302 /* #NOAPP */
- 303 0160 00C0 rjmp .L7
- 304 .L6:
- 305 0162 80E0 ldi r24,0
- 306 0164 90E0 ldi r25,0
- 307 0166 00C0 rjmp .L4
- 308 .L7:
- 309 0168 C401 movw r24,r8
- 310 .L4:
- 311 /* epilogue start */
- 312 016a 0F90 pop __tmp_reg__
- 313 016c 0F90 pop __tmp_reg__
- 314 016e DF91 pop r29
- 315 0170 CF91 pop r28
- 316 0172 1F91 pop r17
- 317 0174 0F91 pop r16
- 318 0176 FF90 pop r15
- 319 0178 EF90 pop r14
- 320 017a DF90 pop r13
- 321 017c CF90 pop r12
- 322 017e BF90 pop r11
- 323 0180 9F90 pop r9
- 324 0182 8F90 pop r8
- 325 0184 0895 ret
- 326 .size NutThreadCreate, .-NutThreadCreate
- 327 .ident "GCC: (GNU) 5.3.0"
- GAS LISTING /tmp/ccCY9GkT.s page 7
- DEFINED SYMBOLS
- *ABS*:0000000000000000 context_gcc.c
- /tmp/ccCY9GkT.s:2 *ABS*:000000000000003e __SP_H__
- /tmp/ccCY9GkT.s:3 *ABS*:000000000000003d __SP_L__
- /tmp/ccCY9GkT.s:4 *ABS*:000000000000003f __SREG__
- /tmp/ccCY9GkT.s:5 *ABS*:000000000000003b __RAMPZ__
- /tmp/ccCY9GkT.s:6 *ABS*:0000000000000000 __tmp_reg__
- /tmp/ccCY9GkT.s:7 *ABS*:0000000000000001 __zero_reg__
- /tmp/ccCY9GkT.s:10 .text.NutThreadEntry:0000000000000000 NutThreadEntry
- /tmp/ccCY9GkT.s:33 .text.NutThreadSwitch:0000000000000000 NutThreadSwitch
- /tmp/ccCY9GkT.s:70 .text.NutThreadSwitch:0000000000000034 thread_start
- /tmp/ccCY9GkT.s:113 .text.NutThreadCreate:0000000000000000 NutThreadCreate
- UNDEFINED SYMBOLS
- runningThread
- runQueue
- heapFreeList
- NutHeapRootAlloc
- nutThreadList
- NutThreadAddPriQueue
|