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