shash.lst 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682
  1. GAS LISTING /tmp/ccDEce1r.s page 1
  2. 1 .file "shash.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.StrToHash,"ax",@progbits
  10. 9 .type StrToHash, @function
  11. 10 StrToHash:
  12. 11 0000 0F93 push r16
  13. 12 0002 1F93 push r17
  14. 13 /* prologue: function */
  15. 14 /* frame size = 0 */
  16. 15 /* stack size = 2 */
  17. 16 .L__stack_usage = 2
  18. 17 0004 FC01 movw r30,r24
  19. 18 0006 60E0 ldi r22,0
  20. 19 0008 70E0 ldi r23,0
  21. 20 000a CB01 movw r24,r22
  22. 21 .L2:
  23. 22 000c 2191 ld r18,Z+
  24. 23 000e 2223 tst r18
  25. 24 0010 01F0 breq .L9
  26. 25 0012 AB01 movw r20,r22
  27. 26 0014 BC01 movw r22,r24
  28. 27 0016 94E0 ldi r25,4
  29. 28 1:
  30. 29 0018 440F lsl r20
  31. 30 001a 551F rol r21
  32. 31 001c 661F rol r22
  33. 32 001e 771F rol r23
  34. 33 0020 9A95 dec r25
  35. 34 0022 01F4 brne 1b
  36. 35 0024 420F add r20,r18
  37. 36 0026 511D adc r21,__zero_reg__
  38. 37 0028 611D adc r22,__zero_reg__
  39. 38 002a 711D adc r23,__zero_reg__
  40. 39 002c 8A01 movw r16,r20
  41. 40 002e 9B01 movw r18,r22
  42. 41 0030 0027 clr r16
  43. 42 0032 1127 clr r17
  44. 43 0034 2227 clr r18
  45. 44 0036 307F andi r19,240
  46. 45 0038 0115 cp r16,__zero_reg__
  47. 46 003a 1105 cpc r17,__zero_reg__
  48. 47 003c 2105 cpc r18,__zero_reg__
  49. 48 003e 3105 cpc r19,__zero_reg__
  50. 49 0040 01F0 breq .L3
  51. 50 0042 832F mov r24,r19
  52. 51 0044 9927 clr r25
  53. 52 0046 AA27 clr r26
  54. 53 0048 BB27 clr r27
  55. 54 004a 4827 eor r20,r24
  56. 55 004c 5927 eor r21,r25
  57. 56 004e 6A27 eor r22,r26
  58. 57 0050 7B27 eor r23,r27
  59. GAS LISTING /tmp/ccDEce1r.s page 2
  60. 58 .L3:
  61. 59 0052 0095 com r16
  62. 60 0054 1095 com r17
  63. 61 0056 2095 com r18
  64. 62 0058 3095 com r19
  65. 63 005a CB01 movw r24,r22
  66. 64 005c BA01 movw r22,r20
  67. 65 005e 6023 and r22,r16
  68. 66 0060 7123 and r23,r17
  69. 67 0062 8223 and r24,r18
  70. 68 0064 9323 and r25,r19
  71. 69 0066 00C0 rjmp .L2
  72. 70 .L9:
  73. 71 /* epilogue start */
  74. 72 0068 1F91 pop r17
  75. 73 006a 0F91 pop r16
  76. 74 006c 0895 ret
  77. 75 .size StrToHash, .-StrToHash
  78. 76 .section .text.SHashFindNode,"ax",@progbits
  79. 77 .type SHashFindNode, @function
  80. 78 SHashFindNode:
  81. 79 0000 0F93 push r16
  82. 80 0002 1F93 push r17
  83. 81 0004 CF93 push r28
  84. 82 0006 DF93 push r29
  85. 83 /* prologue: function */
  86. 84 /* frame size = 0 */
  87. 85 /* stack size = 4 */
  88. 86 .L__stack_usage = 4
  89. 87 0008 EC01 movw r28,r24
  90. 88 000a 8B01 movw r16,r22
  91. 89 .L11:
  92. 90 000c 2097 sbiw r28,0
  93. 91 000e 01F0 breq .L19
  94. 92 0010 6B81 ldd r22,Y+3
  95. 93 0012 7C81 ldd r23,Y+4
  96. 94 0014 6115 cp r22,__zero_reg__
  97. 95 0016 7105 cpc r23,__zero_reg__
  98. 96 0018 01F0 breq .L12
  99. 97 001a C801 movw r24,r16
  100. 98 001c 0E94 0000 call strcmp
  101. 99 0020 892B or r24,r25
  102. 100 0022 01F0 breq .L15
  103. 101 .L12:
  104. 102 0024 0980 ldd __tmp_reg__,Y+1
  105. 103 0026 DA81 ldd r29,Y+2
  106. 104 0028 C02D mov r28,__tmp_reg__
  107. 105 002a 00C0 rjmp .L11
  108. 106 .L19:
  109. 107 002c 80E0 ldi r24,0
  110. 108 002e 90E0 ldi r25,0
  111. 109 0030 00C0 rjmp .L13
  112. 110 .L15:
  113. 111 0032 CE01 movw r24,r28
  114. 112 .L13:
  115. 113 /* epilogue start */
  116. 114 0034 DF91 pop r29
  117. GAS LISTING /tmp/ccDEce1r.s page 3
  118. 115 0036 CF91 pop r28
  119. 116 0038 1F91 pop r17
  120. 117 003a 0F91 pop r16
  121. 118 003c 0895 ret
  122. 119 .size SHashFindNode, .-SHashFindNode
  123. 120 .section .text.SHashDoSet,"ax",@progbits
  124. 121 .type SHashDoSet, @function
  125. 122 SHashDoSet:
  126. 123 0000 BF92 push r11
  127. 124 0002 CF92 push r12
  128. 125 0004 DF92 push r13
  129. 126 0006 EF92 push r14
  130. 127 0008 FF92 push r15
  131. 128 000a 0F93 push r16
  132. 129 000c 1F93 push r17
  133. 130 000e CF93 push r28
  134. 131 0010 DF93 push r29
  135. 132 /* prologue: function */
  136. 133 /* frame size = 0 */
  137. 134 /* stack size = 9 */
  138. 135 .L__stack_usage = 9
  139. 136 0012 EC01 movw r28,r24
  140. 137 0014 7B01 movw r14,r22
  141. 138 0016 6A01 movw r12,r20
  142. 139 0018 B22E mov r11,r18
  143. 140 001a CB01 movw r24,r22
  144. 141 001c 0E94 0000 call StrToHash
  145. 142 0020 2881 ld r18,Y
  146. 143 0022 3981 ldd r19,Y+1
  147. 144 0024 032E mov __tmp_reg__,r19
  148. 145 0026 000C lsl r0
  149. 146 0028 440B sbc r20,r20
  150. 147 002a 550B sbc r21,r21
  151. 148 002c 0E94 0000 call __divmodsi4
  152. 149 0030 27E0 ldi r18,lo8(7)
  153. 150 0032 269F mul r18,r22
  154. 151 0034 A001 movw r20,r0
  155. 152 0036 279F mul r18,r23
  156. 153 0038 500D add r21,r0
  157. 154 003a 1124 clr __zero_reg__
  158. 155 003c 0A81 ldd r16,Y+2
  159. 156 003e 1B81 ldd r17,Y+3
  160. 157 0040 040F add r16,r20
  161. 158 0042 151F adc r17,r21
  162. 159 0044 B701 movw r22,r14
  163. 160 0046 C801 movw r24,r16
  164. 161 0048 0E94 0000 call SHashFindNode
  165. 162 004c EC01 movw r28,r24
  166. 163 004e 892B or r24,r25
  167. 164 0050 01F4 brne .L26
  168. 165 0052 E801 movw r28,r16
  169. 166 .L22:
  170. 167 0054 2097 sbiw r28,0
  171. 168 0056 01F0 breq .L35
  172. 169 0058 8D81 ldd r24,Y+5
  173. 170 005a 9E81 ldd r25,Y+6
  174. 171 005c 892B or r24,r25
  175. GAS LISTING /tmp/ccDEce1r.s page 4
  176. 172 005e 01F0 breq .L26
  177. 173 0060 0980 ldd __tmp_reg__,Y+1
  178. 174 0062 DA81 ldd r29,Y+2
  179. 175 0064 C02D mov r28,__tmp_reg__
  180. 176 0066 00C0 rjmp .L22
  181. 177 .L35:
  182. 178 0068 87E0 ldi r24,lo8(7)
  183. 179 006a 90E0 ldi r25,0
  184. 180 006c 0E94 0000 call malloc
  185. 181 0070 EC01 movw r28,r24
  186. 182 0072 F801 movw r30,r16
  187. 183 0074 8181 ldd r24,Z+1
  188. 184 0076 9281 ldd r25,Z+2
  189. 185 0078 9A83 std Y+2,r25
  190. 186 007a 8983 std Y+1,r24
  191. 187 007c D283 std Z+2,r29
  192. 188 007e C183 std Z+1,r28
  193. 189 .L26:
  194. 190 0080 8881 ld r24,Y
  195. 191 0082 8823 tst r24
  196. 192 0084 01F0 breq .L25
  197. 193 0086 8B81 ldd r24,Y+3
  198. 194 0088 9C81 ldd r25,Y+4
  199. 195 008a 0E94 0000 call free
  200. 196 008e 8D81 ldd r24,Y+5
  201. 197 0090 9E81 ldd r25,Y+6
  202. 198 0092 0E94 0000 call free
  203. 199 .L25:
  204. 200 0096 B882 st Y,r11
  205. 201 0098 FC82 std Y+4,r15
  206. 202 009a EB82 std Y+3,r14
  207. 203 009c DE82 std Y+6,r13
  208. 204 009e CD82 std Y+5,r12
  209. 205 /* epilogue start */
  210. 206 00a0 DF91 pop r29
  211. 207 00a2 CF91 pop r28
  212. 208 00a4 1F91 pop r17
  213. 209 00a6 0F91 pop r16
  214. 210 00a8 FF90 pop r15
  215. 211 00aa EF90 pop r14
  216. 212 00ac DF90 pop r13
  217. 213 00ae CF90 pop r12
  218. 214 00b0 BF90 pop r11
  219. 215 00b2 0895 ret
  220. 216 .size SHashDoSet, .-SHashDoSet
  221. 217 .section .text.SHashInit,"ax",@progbits
  222. 218 .global SHashInit
  223. 219 .type SHashInit, @function
  224. 220 SHashInit:
  225. 221 0000 EF92 push r14
  226. 222 0002 FF92 push r15
  227. 223 0004 0F93 push r16
  228. 224 0006 1F93 push r17
  229. 225 0008 CF93 push r28
  230. 226 000a DF93 push r29
  231. 227 /* prologue: function */
  232. 228 /* frame size = 0 */
  233. GAS LISTING /tmp/ccDEce1r.s page 5
  234. 229 /* stack size = 6 */
  235. 230 .L__stack_usage = 6
  236. 231 000c 7C01 movw r14,r24
  237. 232 000e 84E0 ldi r24,lo8(4)
  238. 233 0010 90E0 ldi r25,0
  239. 234 0012 0E94 0000 call malloc
  240. 235 0016 EC01 movw r28,r24
  241. 236 0018 F982 std Y+1,r15
  242. 237 001a E882 st Y,r14
  243. 238 001c 87E0 ldi r24,lo8(7)
  244. 239 001e 8E9D mul r24,r14
  245. 240 0020 8001 movw r16,r0
  246. 241 0022 8F9D mul r24,r15
  247. 242 0024 100D add r17,r0
  248. 243 0026 1124 clr __zero_reg__
  249. 244 0028 C801 movw r24,r16
  250. 245 002a 0E94 0000 call malloc
  251. 246 002e 9B83 std Y+3,r25
  252. 247 0030 8A83 std Y+2,r24
  253. 248 0032 A801 movw r20,r16
  254. 249 0034 60E0 ldi r22,0
  255. 250 0036 70E0 ldi r23,0
  256. 251 0038 0E94 0000 call memset
  257. 252 003c CE01 movw r24,r28
  258. 253 /* epilogue start */
  259. 254 003e DF91 pop r29
  260. 255 0040 CF91 pop r28
  261. 256 0042 1F91 pop r17
  262. 257 0044 0F91 pop r16
  263. 258 0046 FF90 pop r15
  264. 259 0048 EF90 pop r14
  265. 260 004a 0895 ret
  266. 261 .size SHashInit, .-SHashInit
  267. 262 .section .text.SHashSet,"ax",@progbits
  268. 263 .global SHashSet
  269. 264 .type SHashSet, @function
  270. 265 SHashSet:
  271. 266 /* prologue: function */
  272. 267 /* frame size = 0 */
  273. 268 /* stack size = 0 */
  274. 269 .L__stack_usage = 0
  275. 270 0000 0097 sbiw r24,0
  276. 271 0002 01F0 breq .L37
  277. 272 0004 6115 cp r22,__zero_reg__
  278. 273 0006 7105 cpc r23,__zero_reg__
  279. 274 0008 01F0 breq .L37
  280. 275 000a 20E0 ldi r18,0
  281. 276 000c 0C94 0000 jmp SHashDoSet
  282. 277 .L37:
  283. 278 0010 0895 ret
  284. 279 .size SHashSet, .-SHashSet
  285. 280 .section .text.SHashStore,"ax",@progbits
  286. 281 .global SHashStore
  287. 282 .type SHashStore, @function
  288. 283 SHashStore:
  289. 284 0000 8F92 push r8
  290. 285 0002 9F92 push r9
  291. GAS LISTING /tmp/ccDEce1r.s page 6
  292. 286 0004 AF92 push r10
  293. 287 0006 BF92 push r11
  294. 288 0008 CF92 push r12
  295. 289 000a DF92 push r13
  296. 290 000c EF92 push r14
  297. 291 000e FF92 push r15
  298. 292 0010 0F93 push r16
  299. 293 0012 1F93 push r17
  300. 294 0014 CF93 push r28
  301. 295 0016 DF93 push r29
  302. 296 0018 1F92 push __zero_reg__
  303. 297 001a 1F92 push __zero_reg__
  304. 298 001c CDB7 in r28,__SP_L__
  305. 299 001e DEB7 in r29,__SP_H__
  306. 300 /* prologue: function */
  307. 301 /* frame size = 2 */
  308. 302 /* stack size = 14 */
  309. 303 .L__stack_usage = 14
  310. 304 0020 7C01 movw r14,r24
  311. 305 0022 4A01 movw r8,r20
  312. 306 0024 5901 movw r10,r18
  313. 307 0026 892B or r24,r25
  314. 308 0028 01F0 breq .L45
  315. 309 002a 6115 cp r22,__zero_reg__
  316. 310 002c 7105 cpc r23,__zero_reg__
  317. 311 002e 01F0 breq .L45
  318. 312 0030 4115 cp r20,__zero_reg__
  319. 313 0032 5105 cpc r21,__zero_reg__
  320. 314 0034 01F0 breq .L45
  321. 315 0036 CA01 movw r24,r20
  322. 316 0038 0196 adiw r24,1
  323. 317 003a 6983 std Y+1,r22
  324. 318 003c 7A83 std Y+2,r23
  325. 319 003e 0E94 0000 call malloc
  326. 320 0042 6C01 movw r12,r24
  327. 321 0044 A401 movw r20,r8
  328. 322 0046 6981 ldd r22,Y+1
  329. 323 0048 7A81 ldd r23,Y+2
  330. 324 004a 0E94 0000 call memcpy
  331. 325 004e F401 movw r30,r8
  332. 326 0050 EC0D add r30,r12
  333. 327 0052 FD1D adc r31,r13
  334. 328 0054 1082 st Z,__zero_reg__
  335. 329 0056 C801 movw r24,r16
  336. 330 0058 0196 adiw r24,1
  337. 331 005a 0E94 0000 call malloc
  338. 332 005e 4C01 movw r8,r24
  339. 333 0060 A801 movw r20,r16
  340. 334 0062 B501 movw r22,r10
  341. 335 0064 0E94 0000 call memcpy
  342. 336 0068 F401 movw r30,r8
  343. 337 006a E00F add r30,r16
  344. 338 006c F11F adc r31,r17
  345. 339 006e 1082 st Z,__zero_reg__
  346. 340 0070 21E0 ldi r18,lo8(1)
  347. 341 0072 A401 movw r20,r8
  348. 342 0074 B601 movw r22,r12
  349. GAS LISTING /tmp/ccDEce1r.s page 7
  350. 343 0076 C701 movw r24,r14
  351. 344 /* epilogue start */
  352. 345 0078 0F90 pop __tmp_reg__
  353. 346 007a 0F90 pop __tmp_reg__
  354. 347 007c DF91 pop r29
  355. 348 007e CF91 pop r28
  356. 349 0080 1F91 pop r17
  357. 350 0082 0F91 pop r16
  358. 351 0084 FF90 pop r15
  359. 352 0086 EF90 pop r14
  360. 353 0088 DF90 pop r13
  361. 354 008a CF90 pop r12
  362. 355 008c BF90 pop r11
  363. 356 008e AF90 pop r10
  364. 357 0090 9F90 pop r9
  365. 358 0092 8F90 pop r8
  366. 359 0094 0C94 0000 jmp SHashDoSet
  367. 360 .L45:
  368. 361 /* epilogue start */
  369. 362 0098 0F90 pop __tmp_reg__
  370. 363 009a 0F90 pop __tmp_reg__
  371. 364 009c DF91 pop r29
  372. 365 009e CF91 pop r28
  373. 366 00a0 1F91 pop r17
  374. 367 00a2 0F91 pop r16
  375. 368 00a4 FF90 pop r15
  376. 369 00a6 EF90 pop r14
  377. 370 00a8 DF90 pop r13
  378. 371 00aa CF90 pop r12
  379. 372 00ac BF90 pop r11
  380. 373 00ae AF90 pop r10
  381. 374 00b0 9F90 pop r9
  382. 375 00b2 8F90 pop r8
  383. 376 00b4 0895 ret
  384. 377 .size SHashStore, .-SHashStore
  385. 378 .section .text.SHashGet,"ax",@progbits
  386. 379 .global SHashGet
  387. 380 .type SHashGet, @function
  388. 381 SHashGet:
  389. 382 0000 0F93 push r16
  390. 383 0002 1F93 push r17
  391. 384 0004 CF93 push r28
  392. 385 0006 DF93 push r29
  393. 386 /* prologue: function */
  394. 387 /* frame size = 0 */
  395. 388 /* stack size = 4 */
  396. 389 .L__stack_usage = 4
  397. 390 0008 8C01 movw r16,r24
  398. 391 000a EB01 movw r28,r22
  399. 392 000c 892B or r24,r25
  400. 393 000e 01F0 breq .L60
  401. 394 0010 2097 sbiw r28,0
  402. 395 0012 01F0 breq .L60
  403. 396 0014 CB01 movw r24,r22
  404. 397 0016 0E94 0000 call StrToHash
  405. 398 001a F801 movw r30,r16
  406. 399 001c 2081 ld r18,Z
  407. GAS LISTING /tmp/ccDEce1r.s page 8
  408. 400 001e 3181 ldd r19,Z+1
  409. 401 0020 032E mov __tmp_reg__,r19
  410. 402 0022 000C lsl r0
  411. 403 0024 440B sbc r20,r20
  412. 404 0026 550B sbc r21,r21
  413. 405 0028 0E94 0000 call __divmodsi4
  414. 406 002c 27E0 ldi r18,lo8(7)
  415. 407 002e 269F mul r18,r22
  416. 408 0030 A001 movw r20,r0
  417. 409 0032 279F mul r18,r23
  418. 410 0034 500D add r21,r0
  419. 411 0036 1124 clr __zero_reg__
  420. 412 0038 F801 movw r30,r16
  421. 413 003a 2281 ldd r18,Z+2
  422. 414 003c 3381 ldd r19,Z+3
  423. 415 003e BE01 movw r22,r28
  424. 416 0040 C901 movw r24,r18
  425. 417 0042 840F add r24,r20
  426. 418 0044 951F adc r25,r21
  427. 419 0046 0E94 0000 call SHashFindNode
  428. 420 004a 0097 sbiw r24,0
  429. 421 004c 01F0 breq .L60
  430. 422 004e FC01 movw r30,r24
  431. 423 0050 8581 ldd r24,Z+5
  432. 424 0052 9681 ldd r25,Z+6
  433. 425 0054 00C0 rjmp .L57
  434. 426 .L60:
  435. 427 0056 80E0 ldi r24,0
  436. 428 0058 90E0 ldi r25,0
  437. 429 .L57:
  438. 430 /* epilogue start */
  439. 431 005a DF91 pop r29
  440. 432 005c CF91 pop r28
  441. 433 005e 1F91 pop r17
  442. 434 0060 0F91 pop r16
  443. 435 0062 0895 ret
  444. 436 .size SHashGet, .-SHashGet
  445. 437 .section .text.SHashFree,"ax",@progbits
  446. 438 .global SHashFree
  447. 439 .type SHashFree, @function
  448. 440 SHashFree:
  449. 441 0000 AF92 push r10
  450. 442 0002 BF92 push r11
  451. 443 0004 CF92 push r12
  452. 444 0006 DF92 push r13
  453. 445 0008 EF92 push r14
  454. 446 000a FF92 push r15
  455. 447 000c 0F93 push r16
  456. 448 000e 1F93 push r17
  457. 449 0010 CF93 push r28
  458. 450 0012 DF93 push r29
  459. 451 /* prologue: function */
  460. 452 /* frame size = 0 */
  461. 453 /* stack size = 10 */
  462. 454 .L__stack_usage = 10
  463. 455 0014 8C01 movw r16,r24
  464. 456 0016 892B or r24,r25
  465. GAS LISTING /tmp/ccDEce1r.s page 9
  466. 457 0018 01F0 breq .L61
  467. 458 001a C12C mov r12,__zero_reg__
  468. 459 001c D12C mov r13,__zero_reg__
  469. 460 001e E12C mov r14,__zero_reg__
  470. 461 0020 F12C mov r15,__zero_reg__
  471. 462 .L63:
  472. 463 0022 F801 movw r30,r16
  473. 464 0024 2081 ld r18,Z
  474. 465 0026 3181 ldd r19,Z+1
  475. 466 0028 8281 ldd r24,Z+2
  476. 467 002a 9381 ldd r25,Z+3
  477. 468 002c E216 cp r14,r18
  478. 469 002e F306 cpc r15,r19
  479. 470 0030 04F4 brge .L71
  480. 471 0032 FC01 movw r30,r24
  481. 472 0034 EC0D add r30,r12
  482. 473 0036 FD1D adc r31,r13
  483. 474 0038 C181 ldd r28,Z+1
  484. 475 003a D281 ldd r29,Z+2
  485. 476 .L64:
  486. 477 003c 2097 sbiw r28,0
  487. 478 003e 01F0 breq .L72
  488. 479 0040 A980 ldd r10,Y+1
  489. 480 0042 BA80 ldd r11,Y+2
  490. 481 0044 8881 ld r24,Y
  491. 482 0046 8823 tst r24
  492. 483 0048 01F0 breq .L65
  493. 484 004a 8B81 ldd r24,Y+3
  494. 485 004c 9C81 ldd r25,Y+4
  495. 486 004e 0E94 0000 call free
  496. 487 0052 8D81 ldd r24,Y+5
  497. 488 0054 9E81 ldd r25,Y+6
  498. 489 0056 0E94 0000 call free
  499. 490 .L65:
  500. 491 005a CE01 movw r24,r28
  501. 492 005c 0E94 0000 call free
  502. 493 0060 E501 movw r28,r10
  503. 494 0062 00C0 rjmp .L64
  504. 495 .L72:
  505. 496 0064 8FEF ldi r24,-1
  506. 497 0066 E81A sub r14,r24
  507. 498 0068 F80A sbc r15,r24
  508. 499 006a E7E0 ldi r30,7
  509. 500 006c CE0E add r12,r30
  510. 501 006e D11C adc r13,__zero_reg__
  511. 502 0070 00C0 rjmp .L63
  512. 503 .L71:
  513. 504 0072 0E94 0000 call free
  514. 505 0076 C801 movw r24,r16
  515. 506 /* epilogue start */
  516. 507 0078 DF91 pop r29
  517. 508 007a CF91 pop r28
  518. 509 007c 1F91 pop r17
  519. 510 007e 0F91 pop r16
  520. 511 0080 FF90 pop r15
  521. 512 0082 EF90 pop r14
  522. 513 0084 DF90 pop r13
  523. GAS LISTING /tmp/ccDEce1r.s page 10
  524. 514 0086 CF90 pop r12
  525. 515 0088 BF90 pop r11
  526. 516 008a AF90 pop r10
  527. 517 008c 0C94 0000 jmp free
  528. 518 .L61:
  529. 519 /* epilogue start */
  530. 520 0090 DF91 pop r29
  531. 521 0092 CF91 pop r28
  532. 522 0094 1F91 pop r17
  533. 523 0096 0F91 pop r16
  534. 524 0098 FF90 pop r15
  535. 525 009a EF90 pop r14
  536. 526 009c DF90 pop r13
  537. 527 009e CF90 pop r12
  538. 528 00a0 BF90 pop r11
  539. 529 00a2 AF90 pop r10
  540. 530 00a4 0895 ret
  541. 531 .size SHashFree, .-SHashFree
  542. 532 .section .text.SHashForEach,"ax",@progbits
  543. 533 .global SHashForEach
  544. 534 .type SHashForEach, @function
  545. 535 SHashForEach:
  546. 536 0000 8F92 push r8
  547. 537 0002 9F92 push r9
  548. 538 0004 AF92 push r10
  549. 539 0006 BF92 push r11
  550. 540 0008 CF92 push r12
  551. 541 000a DF92 push r13
  552. 542 000c EF92 push r14
  553. 543 000e FF92 push r15
  554. 544 0010 0F93 push r16
  555. 545 0012 1F93 push r17
  556. 546 0014 CF93 push r28
  557. 547 0016 DF93 push r29
  558. 548 /* prologue: function */
  559. 549 /* frame size = 0 */
  560. 550 /* stack size = 12 */
  561. 551 .L__stack_usage = 12
  562. 552 0018 8C01 movw r16,r24
  563. 553 001a 5B01 movw r10,r22
  564. 554 001c 4A01 movw r8,r20
  565. 555 001e 892B or r24,r25
  566. 556 0020 01F0 breq .L73
  567. 557 0022 672B or r22,r23
  568. 558 0024 01F0 breq .L73
  569. 559 0026 C12C mov r12,__zero_reg__
  570. 560 0028 D12C mov r13,__zero_reg__
  571. 561 002a E12C mov r14,__zero_reg__
  572. 562 002c F12C mov r15,__zero_reg__
  573. 563 .L76:
  574. 564 002e F801 movw r30,r16
  575. 565 0030 8081 ld r24,Z
  576. 566 0032 9181 ldd r25,Z+1
  577. 567 0034 E816 cp r14,r24
  578. 568 0036 F906 cpc r15,r25
  579. 569 0038 04F4 brge .L73
  580. 570 003a F801 movw r30,r16
  581. GAS LISTING /tmp/ccDEce1r.s page 11
  582. 571 003c C281 ldd r28,Z+2
  583. 572 003e D381 ldd r29,Z+3
  584. 573 0040 CC0D add r28,r12
  585. 574 0042 DD1D adc r29,r13
  586. 575 .L77:
  587. 576 0044 2097 sbiw r28,0
  588. 577 0046 01F0 breq .L90
  589. 578 0048 6B81 ldd r22,Y+3
  590. 579 004a 7C81 ldd r23,Y+4
  591. 580 004c 6115 cp r22,__zero_reg__
  592. 581 004e 7105 cpc r23,__zero_reg__
  593. 582 0050 01F0 breq .L78
  594. 583 0052 4D81 ldd r20,Y+5
  595. 584 0054 5E81 ldd r21,Y+6
  596. 585 0056 4115 cp r20,__zero_reg__
  597. 586 0058 5105 cpc r21,__zero_reg__
  598. 587 005a 01F0 breq .L78
  599. 588 005c 9401 movw r18,r8
  600. 589 005e C801 movw r24,r16
  601. 590 0060 F501 movw r30,r10
  602. 591 0062 1995 eicall
  603. 592 .L78:
  604. 593 0064 0980 ldd __tmp_reg__,Y+1
  605. 594 0066 DA81 ldd r29,Y+2
  606. 595 0068 C02D mov r28,__tmp_reg__
  607. 596 006a 00C0 rjmp .L77
  608. 597 .L90:
  609. 598 006c FFEF ldi r31,-1
  610. 599 006e EF1A sub r14,r31
  611. 600 0070 FF0A sbc r15,r31
  612. 601 0072 87E0 ldi r24,7
  613. 602 0074 C80E add r12,r24
  614. 603 0076 D11C adc r13,__zero_reg__
  615. 604 0078 00C0 rjmp .L76
  616. 605 .L73:
  617. 606 /* epilogue start */
  618. 607 007a DF91 pop r29
  619. 608 007c CF91 pop r28
  620. 609 007e 1F91 pop r17
  621. 610 0080 0F91 pop r16
  622. 611 0082 FF90 pop r15
  623. 612 0084 EF90 pop r14
  624. 613 0086 DF90 pop r13
  625. 614 0088 CF90 pop r12
  626. 615 008a BF90 pop r11
  627. 616 008c AF90 pop r10
  628. 617 008e 9F90 pop r9
  629. 618 0090 8F90 pop r8
  630. 619 0092 0895 ret
  631. 620 .size SHashForEach, .-SHashForEach
  632. 621 .ident "GCC: (GNU) 5.3.0"
  633. GAS LISTING /tmp/ccDEce1r.s page 12
  634. DEFINED SYMBOLS
  635. *ABS*:0000000000000000 shash.c
  636. /tmp/ccDEce1r.s:2 *ABS*:000000000000003e __SP_H__
  637. /tmp/ccDEce1r.s:3 *ABS*:000000000000003d __SP_L__
  638. /tmp/ccDEce1r.s:4 *ABS*:000000000000003f __SREG__
  639. /tmp/ccDEce1r.s:5 *ABS*:000000000000003b __RAMPZ__
  640. /tmp/ccDEce1r.s:6 *ABS*:0000000000000000 __tmp_reg__
  641. /tmp/ccDEce1r.s:7 *ABS*:0000000000000001 __zero_reg__
  642. /tmp/ccDEce1r.s:10 .text.StrToHash:0000000000000000 StrToHash
  643. /tmp/ccDEce1r.s:78 .text.SHashFindNode:0000000000000000 SHashFindNode
  644. /tmp/ccDEce1r.s:122 .text.SHashDoSet:0000000000000000 SHashDoSet
  645. /tmp/ccDEce1r.s:220 .text.SHashInit:0000000000000000 SHashInit
  646. /tmp/ccDEce1r.s:265 .text.SHashSet:0000000000000000 SHashSet
  647. /tmp/ccDEce1r.s:283 .text.SHashStore:0000000000000000 SHashStore
  648. /tmp/ccDEce1r.s:381 .text.SHashGet:0000000000000000 SHashGet
  649. /tmp/ccDEce1r.s:440 .text.SHashFree:0000000000000000 SHashFree
  650. /tmp/ccDEce1r.s:535 .text.SHashForEach:0000000000000000 SHashForEach
  651. UNDEFINED SYMBOLS
  652. strcmp
  653. __divmodsi4
  654. malloc
  655. free
  656. memset
  657. memcpy