basename.lst 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. GAS LISTING /tmp/cctF4E3d.s page 1
  2. 1 .file "basename.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 .rodata.str1.1,"aMS",@progbits,1
  10. 9 .LC0:
  11. 10 0000 2E00 .string "."
  12. 11 .LC1:
  13. 12 0002 2F00 .string "/"
  14. 13 .section .text.basename,"ax",@progbits
  15. 14 .global basename
  16. 15 .type basename, @function
  17. 16 basename:
  18. 17 0000 0F93 push r16
  19. 18 0002 1F93 push r17
  20. 19 0004 CF93 push r28
  21. 20 0006 DF93 push r29
  22. 21 /* prologue: function */
  23. 22 /* frame size = 0 */
  24. 23 /* stack size = 4 */
  25. 24 .L__stack_usage = 4
  26. 25 0008 EC01 movw r28,r24
  27. 26 000a 0091 0000 lds r16,bname.2206
  28. 27 000e 1091 0000 lds r17,bname.2206+1
  29. 28 0012 0115 cp r16,__zero_reg__
  30. 29 0014 1105 cpc r17,__zero_reg__
  31. 30 0016 01F0 breq .L2
  32. 31 .L6:
  33. 32 0018 2097 sbiw r28,0
  34. 33 001a 01F4 brne .L26
  35. 34 001c 00C0 rjmp .L3
  36. 35 .L2:
  37. 36 001e 80E0 ldi r24,0
  38. 37 0020 91E0 ldi r25,lo8(1)
  39. 38 0022 0E94 0000 call malloc
  40. 39 0026 9093 0000 sts bname.2206+1,r25
  41. 40 002a 8093 0000 sts bname.2206,r24
  42. 41 002e 892B or r24,r25
  43. 42 0030 01F4 brne .L6
  44. 43 0032 00C0 rjmp .L18
  45. 44 .L26:
  46. 45 0034 8881 ld r24,Y
  47. 46 0036 8111 cpse r24,__zero_reg__
  48. 47 0038 00C0 rjmp .L7
  49. 48 .L3:
  50. 49 003a 0091 0000 lds r16,bname.2206
  51. 50 003e 1091 0000 lds r17,bname.2206+1
  52. 51 0042 60E0 ldi r22,lo8(.LC0)
  53. 52 0044 70E0 ldi r23,hi8(.LC0)
  54. 53 0046 00C0 rjmp .L27
  55. 54 .L7:
  56. 55 0048 FE01 movw r30,r28
  57. 56 0:
  58. 57 004a 0190 ld __tmp_reg__,Z+
  59. GAS LISTING /tmp/cctF4E3d.s page 2
  60. 58 004c 0020 tst __tmp_reg__
  61. 59 004e 01F4 brne 0b
  62. 60 0050 3297 sbiw r30,2
  63. 61 .L8:
  64. 62 0052 CE17 cp r28,r30
  65. 63 0054 DF07 cpc r29,r31
  66. 64 0056 00F4 brsh .L9
  67. 65 0058 8081 ld r24,Z
  68. 66 005a 8F32 cpi r24,lo8(47)
  69. 67 005c 01F4 brne .L12
  70. 68 005e 3197 sbiw r30,1
  71. 69 0060 00C0 rjmp .L8
  72. 70 .L9:
  73. 71 0062 EC17 cp r30,r28
  74. 72 0064 FD07 cpc r31,r29
  75. 73 0066 01F4 brne .L12
  76. 74 0068 8081 ld r24,Z
  77. 75 006a 8F32 cpi r24,lo8(47)
  78. 76 006c 01F4 brne .L16
  79. 77 006e 0091 0000 lds r16,bname.2206
  80. 78 0072 1091 0000 lds r17,bname.2206+1
  81. 79 0076 60E0 ldi r22,lo8(.LC1)
  82. 80 0078 70E0 ldi r23,hi8(.LC1)
  83. 81 .L27:
  84. 82 007a C801 movw r24,r16
  85. 83 007c 0E94 0000 call strcpy
  86. 84 0080 00C0 rjmp .L18
  87. 85 .L16:
  88. 86 0082 BF01 movw r22,r30
  89. 87 .L13:
  90. 88 0084 EF01 movw r28,r30
  91. 89 0086 C61B sub r28,r22
  92. 90 0088 D70B sbc r29,r23
  93. 91 008a CE3F cpi r28,-2
  94. 92 008c D105 cpc r29,__zero_reg__
  95. 93 008e 04F0 brlt .L15
  96. 94 0090 8FE3 ldi r24,lo8(63)
  97. 95 0092 90E0 ldi r25,0
  98. 96 0094 9093 0000 sts errno+1,r25
  99. 97 0098 8093 0000 sts errno,r24
  100. 98 009c 00E0 ldi r16,0
  101. 99 009e 10E0 ldi r17,0
  102. 100 00a0 00C0 rjmp .L18
  103. 101 .L15:
  104. 102 00a2 0091 0000 lds r16,bname.2206
  105. 103 00a6 1091 0000 lds r17,bname.2206+1
  106. 104 00aa C801 movw r24,r16
  107. 105 00ac 0E94 0000 call strcpy
  108. 106 00b0 F801 movw r30,r16
  109. 107 00b2 EC0F add r30,r28
  110. 108 00b4 FD1F adc r31,r29
  111. 109 00b6 1182 std Z+1,__zero_reg__
  112. 110 00b8 00C0 rjmp .L18
  113. 111 .L12:
  114. 112 00ba DF01 movw r26,r30
  115. 113 .L14:
  116. 114 00bc BD01 movw r22,r26
  117. GAS LISTING /tmp/cctF4E3d.s page 3
  118. 115 00be CA17 cp r28,r26
  119. 116 00c0 DB07 cpc r29,r27
  120. 117 00c2 00F4 brsh .L13
  121. 118 00c4 8E91 ld r24,-X
  122. 119 00c6 8F32 cpi r24,lo8(47)
  123. 120 00c8 01F4 brne .L14
  124. 121 00ca 00C0 rjmp .L13
  125. 122 .L18:
  126. 123 00cc C801 movw r24,r16
  127. 124 /* epilogue start */
  128. 125 00ce DF91 pop r29
  129. 126 00d0 CF91 pop r28
  130. 127 00d2 1F91 pop r17
  131. 128 00d4 0F91 pop r16
  132. 129 00d6 0895 ret
  133. 130 .size basename, .-basename
  134. 131 .local bname.2206
  135. 132 .comm bname.2206,2,1
  136. 133 .ident "GCC: (GNU) 5.3.0"
  137. 134 .global __do_copy_data
  138. 135 .global __do_clear_bss
  139. GAS LISTING /tmp/cctF4E3d.s page 4
  140. DEFINED SYMBOLS
  141. *ABS*:0000000000000000 basename.c
  142. /tmp/cctF4E3d.s:2 *ABS*:000000000000003e __SP_H__
  143. /tmp/cctF4E3d.s:3 *ABS*:000000000000003d __SP_L__
  144. /tmp/cctF4E3d.s:4 *ABS*:000000000000003f __SREG__
  145. /tmp/cctF4E3d.s:5 *ABS*:000000000000003b __RAMPZ__
  146. /tmp/cctF4E3d.s:6 *ABS*:0000000000000000 __tmp_reg__
  147. /tmp/cctF4E3d.s:7 *ABS*:0000000000000001 __zero_reg__
  148. /tmp/cctF4E3d.s:16 .text.basename:0000000000000000 basename
  149. .bss:0000000000000000 bname.2206
  150. UNDEFINED SYMBOLS
  151. malloc
  152. strcpy
  153. errno
  154. __do_copy_data
  155. __do_clear_bss