context_gcc.lst 13 KB

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