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