heap.lst 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691
  1. GAS LISTING /tmp/ccSphweu.s page 1
  2. 1 .file "heap.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.NutHeapRootAlloc,"ax",@progbits
  10. 9 .global NutHeapRootAlloc
  11. 10 .type NutHeapRootAlloc, @function
  12. 11 NutHeapRootAlloc:
  13. 12 0000 CF93 push r28
  14. 13 0002 DF93 push r29
  15. 14 /* prologue: function */
  16. 15 /* frame size = 0 */
  17. 16 /* stack size = 2 */
  18. 17 .L__stack_usage = 2
  19. 18 0004 EC01 movw r28,r24
  20. 19 0006 6E5F subi r22,-2
  21. 20 0008 7F4F sbci r23,-1
  22. 21 000a 6430 cpi r22,4
  23. 22 000c 7105 cpc r23,__zero_reg__
  24. 23 000e 00F4 brsh .L2
  25. 24 0010 64E0 ldi r22,lo8(4)
  26. 25 0012 70E0 ldi r23,0
  27. 26 .L2:
  28. 27 0014 6F5F subi r22,-1
  29. 28 0016 7F4F sbci r23,-1
  30. 29 0018 6E7F andi r22,254
  31. 30 001a E881 ld r30,Y
  32. 31 001c F981 ldd r31,Y+1
  33. 32 001e 30E0 ldi r19,0
  34. 33 0020 20E0 ldi r18,0
  35. 34 0022 A0E0 ldi r26,0
  36. 35 0024 B0E0 ldi r27,0
  37. 36 .L3:
  38. 37 0026 3097 sbiw r30,0
  39. 38 0028 01F0 breq .L18
  40. 39 002a 8081 ld r24,Z
  41. 40 002c 9181 ldd r25,Z+1
  42. 41 002e 8617 cp r24,r22
  43. 42 0030 9707 cpc r25,r23
  44. 43 0032 00F0 brlo .L4
  45. 44 0034 1097 sbiw r26,0
  46. 45 0036 01F0 breq .L5
  47. 46 0038 4D91 ld r20,X+
  48. 47 003a 5C91 ld r21,X
  49. 48 003c 1197 sbiw r26,1
  50. 49 003e 8417 cp r24,r20
  51. 50 0040 9507 cpc r25,r21
  52. 51 0042 00F4 brsh .L4
  53. 52 .L5:
  54. 53 0044 6817 cp r22,r24
  55. 54 0046 7907 cpc r23,r25
  56. 55 0048 01F0 breq .L6
  57. 56 004a 3C2F mov r19,r28
  58. 57 004c 2D2F mov r18,r29
  59. GAS LISTING /tmp/ccSphweu.s page 2
  60. 58 004e DF01 movw r26,r30
  61. 59 .L4:
  62. 60 0050 EF01 movw r28,r30
  63. 61 0052 2296 adiw r28,2
  64. 62 0054 0280 ldd __tmp_reg__,Z+2
  65. 63 0056 F381 ldd r31,Z+3
  66. 64 0058 E02D mov r30,__tmp_reg__
  67. 65 005a 00C0 rjmp .L3
  68. 66 .L18:
  69. 67 005c 1097 sbiw r26,0
  70. 68 005e 01F0 breq .L8
  71. 69 0060 C32F mov r28,r19
  72. 70 0062 D22F mov r29,r18
  73. 71 0064 FD01 movw r30,r26
  74. 72 .L6:
  75. 73 0066 8081 ld r24,Z
  76. 74 0068 9181 ldd r25,Z+1
  77. 75 006a 861B sub r24,r22
  78. 76 006c 970B sbc r25,r23
  79. 77 006e 2281 ldd r18,Z+2
  80. 78 0070 3381 ldd r19,Z+3
  81. 79 0072 8430 cpi r24,4
  82. 80 0074 9105 cpc r25,__zero_reg__
  83. 81 0076 00F0 brlo .L9
  84. 82 0078 DF01 movw r26,r30
  85. 83 007a A60F add r26,r22
  86. 84 007c B71F adc r27,r23
  87. 85 007e 1196 adiw r26,1
  88. 86 0080 9C93 st X,r25
  89. 87 0082 8E93 st -X,r24
  90. 88 0084 1396 adiw r26,2+1
  91. 89 0086 3C93 st X,r19
  92. 90 0088 2E93 st -X,r18
  93. 91 008a 1297 sbiw r26,2
  94. 92 008c 7183 std Z+1,r23
  95. 93 008e 6083 st Z,r22
  96. 94 0090 B983 std Y+1,r27
  97. 95 0092 A883 st Y,r26
  98. 96 0094 00C0 rjmp .L10
  99. 97 .L9:
  100. 98 0096 3983 std Y+1,r19
  101. 99 0098 2883 st Y,r18
  102. 100 .L10:
  103. 101 009a DF01 movw r26,r30
  104. 102 009c 1296 adiw r26,2
  105. 103 .L8:
  106. 104 009e CD01 movw r24,r26
  107. 105 /* epilogue start */
  108. 106 00a0 DF91 pop r29
  109. 107 00a2 CF91 pop r28
  110. 108 00a4 0895 ret
  111. 109 .size NutHeapRootAlloc, .-NutHeapRootAlloc
  112. 110 .section .text.NutHeapRootAllocClear,"ax",@progbits
  113. 111 .global NutHeapRootAllocClear
  114. 112 .type NutHeapRootAllocClear, @function
  115. 113 NutHeapRootAllocClear:
  116. 114 0000 0F93 push r16
  117. GAS LISTING /tmp/ccSphweu.s page 3
  118. 115 0002 1F93 push r17
  119. 116 0004 CF93 push r28
  120. 117 0006 DF93 push r29
  121. 118 /* prologue: function */
  122. 119 /* frame size = 0 */
  123. 120 /* stack size = 4 */
  124. 121 .L__stack_usage = 4
  125. 122 0008 8B01 movw r16,r22
  126. 123 000a 0E94 0000 call NutHeapRootAlloc
  127. 124 000e EC01 movw r28,r24
  128. 125 0010 0097 sbiw r24,0
  129. 126 0012 01F0 breq .L20
  130. 127 0014 A801 movw r20,r16
  131. 128 0016 60E0 ldi r22,0
  132. 129 0018 70E0 ldi r23,0
  133. 130 001a 0E94 0000 call memset
  134. 131 .L20:
  135. 132 001e CE01 movw r24,r28
  136. 133 /* epilogue start */
  137. 134 0020 DF91 pop r29
  138. 135 0022 CF91 pop r28
  139. 136 0024 1F91 pop r17
  140. 137 0026 0F91 pop r16
  141. 138 0028 0895 ret
  142. 139 .size NutHeapRootAllocClear, .-NutHeapRootAllocClear
  143. 140 .section .text.NutHeapRootFree,"ax",@progbits
  144. 141 .global NutHeapRootFree
  145. 142 .type NutHeapRootFree, @function
  146. 143 NutHeapRootFree:
  147. 144 0000 CF93 push r28
  148. 145 0002 DF93 push r29
  149. 146 /* prologue: function */
  150. 147 /* frame size = 0 */
  151. 148 /* stack size = 2 */
  152. 149 .L__stack_usage = 2
  153. 150 0004 EC01 movw r28,r24
  154. 151 0006 6115 cp r22,__zero_reg__
  155. 152 0008 7105 cpc r23,__zero_reg__
  156. 153 000a 01F4 brne .+2
  157. 154 000c 00C0 rjmp .L33
  158. 155 000e FB01 movw r30,r22
  159. 156 0010 3297 sbiw r30,2
  160. 157 0012 A881 ld r26,Y
  161. 158 0014 B981 ldd r27,Y+1
  162. 159 .L26:
  163. 160 0016 1097 sbiw r26,0
  164. 161 0018 01F4 brne .+2
  165. 162 001a 00C0 rjmp .L37
  166. 163 001c 8D91 ld r24,X+
  167. 164 001e 9C91 ld r25,X
  168. 165 0020 1197 sbiw r26,1
  169. 166 0022 9C01 movw r18,r24
  170. 167 0024 2A0F add r18,r26
  171. 168 0026 3B1F adc r19,r27
  172. 169 0028 E217 cp r30,r18
  173. 170 002a F307 cpc r31,r19
  174. 171 002c 01F4 brne .L27
  175. GAS LISTING /tmp/ccSphweu.s page 4
  176. 172 002e 2081 ld r18,Z
  177. 173 0030 3181 ldd r19,Z+1
  178. 174 0032 820F add r24,r18
  179. 175 0034 931F adc r25,r19
  180. 176 0036 1196 adiw r26,1
  181. 177 0038 9C93 st X,r25
  182. 178 003a 8E93 st -X,r24
  183. 179 003c 1296 adiw r26,2
  184. 180 003e ED91 ld r30,X+
  185. 181 0040 FC91 ld r31,X
  186. 182 0042 1397 sbiw r26,2+1
  187. 183 0044 9D01 movw r18,r26
  188. 184 0046 280F add r18,r24
  189. 185 0048 391F adc r19,r25
  190. 186 004a E217 cp r30,r18
  191. 187 004c F307 cpc r31,r19
  192. 188 004e 01F4 brne .L28
  193. 189 0050 2081 ld r18,Z
  194. 190 0052 3181 ldd r19,Z+1
  195. 191 0054 820F add r24,r18
  196. 192 0056 931F adc r25,r19
  197. 193 0058 1196 adiw r26,1
  198. 194 005a 9C93 st X,r25
  199. 195 005c 8E93 st -X,r24
  200. 196 005e 8281 ldd r24,Z+2
  201. 197 0060 9381 ldd r25,Z+3
  202. 198 0062 1396 adiw r26,2+1
  203. 199 0064 9C93 st X,r25
  204. 200 0066 8E93 st -X,r24
  205. 201 0068 1297 sbiw r26,2
  206. 202 006a 00C0 rjmp .L28
  207. 203 .L27:
  208. 204 006c EA17 cp r30,r26
  209. 205 006e FB07 cpc r31,r27
  210. 206 0070 00F4 brsh .L29
  211. 207 0072 F983 std Y+1,r31
  212. 208 0074 E883 st Y,r30
  213. 209 0076 2081 ld r18,Z
  214. 210 0078 3181 ldd r19,Z+1
  215. 211 007a AF01 movw r20,r30
  216. 212 007c 420F add r20,r18
  217. 213 007e 531F adc r21,r19
  218. 214 0080 A417 cp r26,r20
  219. 215 0082 B507 cpc r27,r21
  220. 216 0084 01F4 brne .L30
  221. 217 0086 280F add r18,r24
  222. 218 0088 391F adc r19,r25
  223. 219 008a 3183 std Z+1,r19
  224. 220 008c 2083 st Z,r18
  225. 221 008e 1296 adiw r26,2
  226. 222 0090 8D91 ld r24,X+
  227. 223 0092 9C91 ld r25,X
  228. 224 0094 1397 sbiw r26,2+1
  229. 225 0096 9383 std Z+3,r25
  230. 226 0098 8283 std Z+2,r24
  231. 227 009a 00C0 rjmp .L28
  232. 228 .L30:
  233. GAS LISTING /tmp/ccSphweu.s page 5
  234. 229 009c B383 std Z+3,r27
  235. 230 009e A283 std Z+2,r26
  236. 231 00a0 00C0 rjmp .L28
  237. 232 .L29:
  238. 233 00a2 E217 cp r30,r18
  239. 234 00a4 F307 cpc r31,r19
  240. 235 00a6 00F0 brlo .L34
  241. 236 00a8 ED01 movw r28,r26
  242. 237 00aa 2296 adiw r28,2
  243. 238 00ac 1296 adiw r26,2
  244. 239 00ae 0D90 ld __tmp_reg__,X+
  245. 240 00b0 BC91 ld r27,X
  246. 241 00b2 A02D mov r26,__tmp_reg__
  247. 242 00b4 00C0 rjmp .L26
  248. 243 .L33:
  249. 244 00b6 8DEF ldi r24,lo8(-3)
  250. 245 00b8 9FEF ldi r25,lo8(-1)
  251. 246 00ba 00C0 rjmp .L36
  252. 247 .L34:
  253. 248 00bc 8FEF ldi r24,lo8(-1)
  254. 249 00be 9FEF ldi r25,lo8(-1)
  255. 250 00c0 00C0 rjmp .L36
  256. 251 .L37:
  257. 252 00c2 1382 std Z+3,__zero_reg__
  258. 253 00c4 1282 std Z+2,__zero_reg__
  259. 254 00c6 F983 std Y+1,r31
  260. 255 00c8 E883 st Y,r30
  261. 256 .L28:
  262. 257 00ca 80E0 ldi r24,0
  263. 258 00cc 90E0 ldi r25,0
  264. 259 .L36:
  265. 260 /* epilogue start */
  266. 261 00ce DF91 pop r29
  267. 262 00d0 CF91 pop r28
  268. 263 00d2 0895 ret
  269. 264 .size NutHeapRootFree, .-NutHeapRootFree
  270. 265 .section .text.NutHeapRootAdd,"ax",@progbits
  271. 266 .global NutHeapRootAdd
  272. 267 .type NutHeapRootAdd, @function
  273. 268 NutHeapRootAdd:
  274. 269 /* prologue: function */
  275. 270 /* frame size = 0 */
  276. 271 /* stack size = 0 */
  277. 272 .L__stack_usage = 0
  278. 273 0000 FB01 movw r30,r22
  279. 274 0002 3196 adiw r30,1
  280. 275 0004 EE7F andi r30,254
  281. 276 0006 460F add r20,r22
  282. 277 0008 571F adc r21,r23
  283. 278 000a 4E1B sub r20,r30
  284. 279 000c 5F0B sbc r21,r31
  285. 280 000e 4E7F andi r20,254
  286. 281 0010 4193 st Z+,r20
  287. 282 0012 5193 st Z+,r21
  288. 283 0014 BF01 movw r22,r30
  289. 284 0016 0C94 0000 jmp NutHeapRootFree
  290. 285 .size NutHeapRootAdd, .-NutHeapRootAdd
  291. GAS LISTING /tmp/ccSphweu.s page 6
  292. 286 .section .text.NutHeapRootAvailable,"ax",@progbits
  293. 287 .global NutHeapRootAvailable
  294. 288 .type NutHeapRootAvailable, @function
  295. 289 NutHeapRootAvailable:
  296. 290 /* prologue: function */
  297. 291 /* frame size = 0 */
  298. 292 /* stack size = 0 */
  299. 293 .L__stack_usage = 0
  300. 294 0000 DC01 movw r26,r24
  301. 295 0002 ED91 ld r30,X+
  302. 296 0004 FC91 ld r31,X
  303. 297 0006 80E0 ldi r24,0
  304. 298 0008 90E0 ldi r25,0
  305. 299 .L40:
  306. 300 000a 3097 sbiw r30,0
  307. 301 000c 01F0 breq .L42
  308. 302 000e 2081 ld r18,Z
  309. 303 0010 3181 ldd r19,Z+1
  310. 304 0012 2250 subi r18,2
  311. 305 0014 3109 sbc r19,__zero_reg__
  312. 306 0016 820F add r24,r18
  313. 307 0018 931F adc r25,r19
  314. 308 001a 0280 ldd __tmp_reg__,Z+2
  315. 309 001c F381 ldd r31,Z+3
  316. 310 001e E02D mov r30,__tmp_reg__
  317. 311 0020 00C0 rjmp .L40
  318. 312 .L42:
  319. 313 /* epilogue start */
  320. 314 0022 0895 ret
  321. 315 .size NutHeapRootAvailable, .-NutHeapRootAvailable
  322. 316 .section .text.NutHeapRootRegionAvailable,"ax",@progbits
  323. 317 .global NutHeapRootRegionAvailable
  324. 318 .type NutHeapRootRegionAvailable, @function
  325. 319 NutHeapRootRegionAvailable:
  326. 320 /* prologue: function */
  327. 321 /* frame size = 0 */
  328. 322 /* stack size = 0 */
  329. 323 .L__stack_usage = 0
  330. 324 0000 DC01 movw r26,r24
  331. 325 0002 ED91 ld r30,X+
  332. 326 0004 FC91 ld r31,X
  333. 327 0006 80E0 ldi r24,0
  334. 328 0008 90E0 ldi r25,0
  335. 329 .L44:
  336. 330 000a 3097 sbiw r30,0
  337. 331 000c 01F0 breq .L47
  338. 332 000e 2081 ld r18,Z
  339. 333 0010 3181 ldd r19,Z+1
  340. 334 0012 8217 cp r24,r18
  341. 335 0014 9307 cpc r25,r19
  342. 336 0016 00F4 brsh .L45
  343. 337 0018 C901 movw r24,r18
  344. 338 .L45:
  345. 339 001a 0280 ldd __tmp_reg__,Z+2
  346. 340 001c F381 ldd r31,Z+3
  347. 341 001e E02D mov r30,__tmp_reg__
  348. 342 0020 00C0 rjmp .L44
  349. GAS LISTING /tmp/ccSphweu.s page 7
  350. 343 .L47:
  351. 344 0022 0297 sbiw r24,2
  352. 345 0024 0895 ret
  353. 346 .size NutHeapRootRegionAvailable, .-NutHeapRootRegionAvailable
  354. 347 .section .text.NutHeapRootRealloc,"ax",@progbits
  355. 348 .global NutHeapRootRealloc
  356. 349 .type NutHeapRootRealloc, @function
  357. 350 NutHeapRootRealloc:
  358. 351 0000 AF92 push r10
  359. 352 0002 BF92 push r11
  360. 353 0004 CF92 push r12
  361. 354 0006 DF92 push r13
  362. 355 0008 EF92 push r14
  363. 356 000a FF92 push r15
  364. 357 000c 0F93 push r16
  365. 358 000e 1F93 push r17
  366. 359 0010 CF93 push r28
  367. 360 0012 DF93 push r29
  368. 361 /* prologue: function */
  369. 362 /* frame size = 0 */
  370. 363 /* stack size = 10 */
  371. 364 .L__stack_usage = 10
  372. 365 0014 6C01 movw r12,r24
  373. 366 0016 8B01 movw r16,r22
  374. 367 0018 6115 cp r22,__zero_reg__
  375. 368 001a 7105 cpc r23,__zero_reg__
  376. 369 001c 01F4 brne .L49
  377. 370 001e BA01 movw r22,r20
  378. 371 /* epilogue start */
  379. 372 0020 DF91 pop r29
  380. 373 0022 CF91 pop r28
  381. 374 0024 1F91 pop r17
  382. 375 0026 0F91 pop r16
  383. 376 0028 FF90 pop r15
  384. 377 002a EF90 pop r14
  385. 378 002c DF90 pop r13
  386. 379 002e CF90 pop r12
  387. 380 0030 BF90 pop r11
  388. 381 0032 AF90 pop r10
  389. 382 0034 0C94 0000 jmp NutHeapRootAlloc
  390. 383 .L49:
  391. 384 0038 4115 cp r20,__zero_reg__
  392. 385 003a 5105 cpc r21,__zero_reg__
  393. 386 003c 01F4 brne .L50
  394. 387 003e 0E94 0000 call NutHeapRootFree
  395. 388 0042 892B or r24,r25
  396. 389 0044 01F4 brne .+2
  397. 390 0046 00C0 rjmp .L64
  398. 391 0048 00C0 rjmp .L60
  399. 392 .L50:
  400. 393 004a 7B01 movw r14,r22
  401. 394 004c 22E0 ldi r18,2
  402. 395 004e E21A sub r14,r18
  403. 396 0050 F108 sbc r15,__zero_reg__
  404. 397 0052 4E5F subi r20,-2
  405. 398 0054 5F4F sbci r21,-1
  406. 399 0056 4430 cpi r20,4
  407. GAS LISTING /tmp/ccSphweu.s page 8
  408. 400 0058 5105 cpc r21,__zero_reg__
  409. 401 005a 00F4 brsh .L52
  410. 402 005c 44E0 ldi r20,lo8(4)
  411. 403 005e 50E0 ldi r21,0
  412. 404 .L52:
  413. 405 0060 4F5F subi r20,-1
  414. 406 0062 5F4F sbci r21,-1
  415. 407 0064 EA01 movw r28,r20
  416. 408 0066 CE7F andi r28,254
  417. 409 0068 D701 movw r26,r14
  418. 410 006a 8D91 ld r24,X+
  419. 411 006c 9C91 ld r25,X
  420. 412 006e 8C17 cp r24,r28
  421. 413 0070 9D07 cpc r25,r29
  422. 414 0072 00F0 brlo .+2
  423. 415 0074 00C0 rjmp .L53
  424. 416 0076 AE01 movw r20,r28
  425. 417 0078 481B sub r20,r24
  426. 418 007a 590B sbc r21,r25
  427. 419 007c D601 movw r26,r12
  428. 420 007e ED91 ld r30,X+
  429. 421 0080 FC91 ld r31,X
  430. 422 0082 5601 movw r10,r12
  431. 423 .L54:
  432. 424 0084 3097 sbiw r30,0
  433. 425 0086 01F4 brne .+2
  434. 426 0088 00C0 rjmp .L55
  435. 427 008a EE15 cp r30,r14
  436. 428 008c FF05 cpc r31,r15
  437. 429 008e 00F4 brsh .L65
  438. 430 0090 5F01 movw r10,r30
  439. 431 0092 B2E0 ldi r27,2
  440. 432 0094 AB0E add r10,r27
  441. 433 0096 B11C adc r11,__zero_reg__
  442. 434 0098 0280 ldd __tmp_reg__,Z+2
  443. 435 009a F381 ldd r31,Z+3
  444. 436 009c E02D mov r30,__tmp_reg__
  445. 437 009e 00C0 rjmp .L54
  446. 438 .L65:
  447. 439 00a0 2081 ld r18,Z
  448. 440 00a2 3181 ldd r19,Z+1
  449. 441 00a4 2417 cp r18,r20
  450. 442 00a6 3507 cpc r19,r21
  451. 443 00a8 00F0 brlo .L55
  452. 444 00aa B701 movw r22,r14
  453. 445 00ac 680F add r22,r24
  454. 446 00ae 791F adc r23,r25
  455. 447 00b0 E617 cp r30,r22
  456. 448 00b2 F707 cpc r31,r23
  457. 449 00b4 01F4 brne .L55
  458. 450 00b6 B901 movw r22,r18
  459. 451 00b8 641B sub r22,r20
  460. 452 00ba 750B sbc r23,r21
  461. 453 00bc 6430 cpi r22,4
  462. 454 00be 7105 cpc r23,__zero_reg__
  463. 455 00c0 00F0 brlo .L57
  464. 456 00c2 D701 movw r26,r14
  465. GAS LISTING /tmp/ccSphweu.s page 9
  466. 457 00c4 CD93 st X+,r28
  467. 458 00c6 DC93 st X,r29
  468. 459 00c8 EA01 movw r28,r20
  469. 460 00ca CE0F add r28,r30
  470. 461 00cc DF1F adc r29,r31
  471. 462 00ce D501 movw r26,r10
  472. 463 00d0 1196 adiw r26,1
  473. 464 00d2 DC93 st X,r29
  474. 465 00d4 CE93 st -X,r28
  475. 466 00d6 8281 ldd r24,Z+2
  476. 467 00d8 9381 ldd r25,Z+3
  477. 468 00da 9B83 std Y+3,r25
  478. 469 00dc 8A83 std Y+2,r24
  479. 470 00de 0D90 ld __tmp_reg__,X+
  480. 471 00e0 BC91 ld r27,X
  481. 472 00e2 A02D mov r26,__tmp_reg__
  482. 473 00e4 8081 ld r24,Z
  483. 474 00e6 9181 ldd r25,Z+1
  484. 475 00e8 841B sub r24,r20
  485. 476 00ea 950B sbc r25,r21
  486. 477 00ec 8D93 st X+,r24
  487. 478 00ee 9C93 st X,r25
  488. 479 00f0 00C0 rjmp .L64
  489. 480 .L57:
  490. 481 00f2 820F add r24,r18
  491. 482 00f4 931F adc r25,r19
  492. 483 00f6 E701 movw r28,r14
  493. 484 00f8 9983 std Y+1,r25
  494. 485 00fa 8883 st Y,r24
  495. 486 00fc 8281 ldd r24,Z+2
  496. 487 00fe 9381 ldd r25,Z+3
  497. 488 0100 F501 movw r30,r10
  498. 489 0102 9183 std Z+1,r25
  499. 490 0104 8083 st Z,r24
  500. 491 0106 00C0 rjmp .L64
  501. 492 .L55:
  502. 493 0108 BE01 movw r22,r28
  503. 494 010a C601 movw r24,r12
  504. 495 010c 0E94 0000 call NutHeapRootAlloc
  505. 496 0110 EC01 movw r28,r24
  506. 497 0112 0097 sbiw r24,0
  507. 498 0114 01F0 breq .L60
  508. 499 0116 D701 movw r26,r14
  509. 500 0118 4D91 ld r20,X+
  510. 501 011a 5C91 ld r21,X
  511. 502 011c 4250 subi r20,2
  512. 503 011e 5109 sbc r21,__zero_reg__
  513. 504 0120 B801 movw r22,r16
  514. 505 0122 0E94 0000 call memcpy
  515. 506 0126 B801 movw r22,r16
  516. 507 0128 C601 movw r24,r12
  517. 508 012a 0E94 0000 call NutHeapRootFree
  518. 509 012e CE01 movw r24,r28
  519. 510 0130 00C0 rjmp .L51
  520. 511 .L53:
  521. 512 0132 9C01 movw r18,r24
  522. 513 0134 2450 subi r18,4
  523. GAS LISTING /tmp/ccSphweu.s page 10
  524. 514 0136 3109 sbc r19,__zero_reg__
  525. 515 0138 C217 cp r28,r18
  526. 516 013a D307 cpc r29,r19
  527. 517 013c 00F4 brsh .L64
  528. 518 013e 8C1B sub r24,r28
  529. 519 0140 9D0B sbc r25,r29
  530. 520 0142 B701 movw r22,r14
  531. 521 0144 6C0F add r22,r28
  532. 522 0146 7D1F adc r23,r29
  533. 523 0148 FB01 movw r30,r22
  534. 524 014a 8193 st Z+,r24
  535. 525 014c 9193 st Z+,r25
  536. 526 014e BF01 movw r22,r30
  537. 527 0150 C601 movw r24,r12
  538. 528 0152 0E94 0000 call NutHeapRootFree
  539. 529 0156 D701 movw r26,r14
  540. 530 0158 CD93 st X+,r28
  541. 531 015a DC93 st X,r29
  542. 532 .L64:
  543. 533 015c C801 movw r24,r16
  544. 534 015e 00C0 rjmp .L51
  545. 535 .L60:
  546. 536 0160 80E0 ldi r24,0
  547. 537 0162 90E0 ldi r25,0
  548. 538 .L51:
  549. 539 /* epilogue start */
  550. 540 0164 DF91 pop r29
  551. 541 0166 CF91 pop r28
  552. 542 0168 1F91 pop r17
  553. 543 016a 0F91 pop r16
  554. 544 016c FF90 pop r15
  555. 545 016e EF90 pop r14
  556. 546 0170 DF90 pop r13
  557. 547 0172 CF90 pop r12
  558. 548 0174 BF90 pop r11
  559. 549 0176 AF90 pop r10
  560. 550 0178 0895 ret
  561. 551 .size NutHeapRootRealloc, .-NutHeapRootRealloc
  562. 552 .section .text.NutHeapCheck,"ax",@progbits
  563. 553 .global NutHeapCheck
  564. 554 .type NutHeapCheck, @function
  565. 555 NutHeapCheck:
  566. 556 /* prologue: function */
  567. 557 /* frame size = 0 */
  568. 558 /* stack size = 0 */
  569. 559 .L__stack_usage = 0
  570. 560 0000 80E0 ldi r24,0
  571. 561 0002 90E0 ldi r25,0
  572. 562 0004 0895 ret
  573. 563 .size NutHeapCheck, .-NutHeapCheck
  574. 564 .section .rodata.str1.1,"aMS",@progbits,1
  575. 565 .LC0:
  576. 566 0000 2570 2825 .string "%p(%d)\n"
  577. 566 6429 0A00
  578. 567 .section .text.NutHeapDump,"ax",@progbits
  579. 568 .global NutHeapDump
  580. 569 .type NutHeapDump, @function
  581. GAS LISTING /tmp/ccSphweu.s page 11
  582. 570 NutHeapDump:
  583. 571 0000 EF92 push r14
  584. 572 0002 FF92 push r15
  585. 573 0004 0F93 push r16
  586. 574 0006 1F93 push r17
  587. 575 0008 CF93 push r28
  588. 576 000a DF93 push r29
  589. 577 /* prologue: function */
  590. 578 /* frame size = 0 */
  591. 579 /* stack size = 6 */
  592. 580 .L__stack_usage = 6
  593. 581 000c F82E mov r15,r24
  594. 582 000e E92E mov r14,r25
  595. 583 0010 C091 0000 lds r28,heapFreeList
  596. 584 0014 D091 0000 lds r29,heapFreeList+1
  597. 585 0018 00E0 ldi r16,lo8(.LC0)
  598. 586 001a 10E0 ldi r17,hi8(.LC0)
  599. 587 .L68:
  600. 588 001c 2097 sbiw r28,0
  601. 589 001e 01F0 breq .L70
  602. 590 0020 8981 ldd r24,Y+1
  603. 591 0022 8F93 push r24
  604. 592 0024 8881 ld r24,Y
  605. 593 0026 8F93 push r24
  606. 594 0028 DF93 push r29
  607. 595 002a CF93 push r28
  608. 596 002c 1F93 push r17
  609. 597 002e 0F93 push r16
  610. 598 0030 EF92 push r14
  611. 599 0032 FF92 push r15
  612. 600 0034 0E94 0000 call fprintf
  613. 601 0038 0A80 ldd __tmp_reg__,Y+2
  614. 602 003a DB81 ldd r29,Y+3
  615. 603 003c C02D mov r28,__tmp_reg__
  616. 604 003e 8DB7 in r24,__SP_L__
  617. 605 0040 9EB7 in r25,__SP_H__
  618. 606 0042 0896 adiw r24,8
  619. 607 0044 0FB6 in __tmp_reg__,__SREG__
  620. 608 0046 F894 cli
  621. 609 0048 9EBF out __SP_H__,r25
  622. 610 004a 0FBE out __SREG__,__tmp_reg__
  623. 611 004c 8DBF out __SP_L__,r24
  624. 612 004e 00C0 rjmp .L68
  625. 613 .L70:
  626. 614 /* epilogue start */
  627. 615 0050 DF91 pop r29
  628. 616 0052 CF91 pop r28
  629. 617 0054 1F91 pop r17
  630. 618 0056 0F91 pop r16
  631. 619 0058 FF90 pop r15
  632. 620 005a EF90 pop r14
  633. 621 005c 0895 ret
  634. 622 .size NutHeapDump, .-NutHeapDump
  635. 623 .comm heapFreeList,2,1
  636. 624 .ident "GCC: (GNU) 5.3.0"
  637. 625 .global __do_copy_data
  638. 626 .global __do_clear_bss
  639. GAS LISTING /tmp/ccSphweu.s page 12
  640. GAS LISTING /tmp/ccSphweu.s page 13
  641. DEFINED SYMBOLS
  642. *ABS*:0000000000000000 heap.c
  643. /tmp/ccSphweu.s:2 *ABS*:000000000000003e __SP_H__
  644. /tmp/ccSphweu.s:3 *ABS*:000000000000003d __SP_L__
  645. /tmp/ccSphweu.s:4 *ABS*:000000000000003f __SREG__
  646. /tmp/ccSphweu.s:5 *ABS*:000000000000003b __RAMPZ__
  647. /tmp/ccSphweu.s:6 *ABS*:0000000000000000 __tmp_reg__
  648. /tmp/ccSphweu.s:7 *ABS*:0000000000000001 __zero_reg__
  649. /tmp/ccSphweu.s:11 .text.NutHeapRootAlloc:0000000000000000 NutHeapRootAlloc
  650. /tmp/ccSphweu.s:113 .text.NutHeapRootAllocClear:0000000000000000 NutHeapRootAllocClear
  651. /tmp/ccSphweu.s:143 .text.NutHeapRootFree:0000000000000000 NutHeapRootFree
  652. /tmp/ccSphweu.s:268 .text.NutHeapRootAdd:0000000000000000 NutHeapRootAdd
  653. /tmp/ccSphweu.s:289 .text.NutHeapRootAvailable:0000000000000000 NutHeapRootAvailable
  654. /tmp/ccSphweu.s:319 .text.NutHeapRootRegionAvailable:0000000000000000 NutHeapRootRegionAvailable
  655. /tmp/ccSphweu.s:350 .text.NutHeapRootRealloc:0000000000000000 NutHeapRootRealloc
  656. /tmp/ccSphweu.s:555 .text.NutHeapCheck:0000000000000000 NutHeapCheck
  657. /tmp/ccSphweu.s:570 .text.NutHeapDump:0000000000000000 NutHeapDump
  658. *COM*:0000000000000002 heapFreeList
  659. UNDEFINED SYMBOLS
  660. memset
  661. memcpy
  662. fprintf
  663. __do_copy_data
  664. __do_clear_bss