dirname.lst 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. GAS LISTING /tmp/ccKrwvXe.s page 1
  2. 1 .file "dirname.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 2F00 .string "/"
  12. 11 .LC1:
  13. 12 0002 2E00 .string "."
  14. 13 .section .text.dirname,"ax",@progbits
  15. 14 .global dirname
  16. 15 .type dirname, @function
  17. 16 dirname:
  18. 17 0000 EF92 push r14
  19. 18 0002 FF92 push r15
  20. 19 0004 0F93 push r16
  21. 20 0006 1F93 push r17
  22. 21 0008 CF93 push r28
  23. 22 000a DF93 push r29
  24. 23 /* prologue: function */
  25. 24 /* frame size = 0 */
  26. 25 /* stack size = 6 */
  27. 26 .L__stack_usage = 6
  28. 27 000c 7C01 movw r14,r24
  29. 28 000e 0091 0000 lds r16,bname.2206
  30. 29 0012 1091 0000 lds r17,bname.2206+1
  31. 30 0016 0115 cp r16,__zero_reg__
  32. 31 0018 1105 cpc r17,__zero_reg__
  33. 32 001a 01F0 breq .L2
  34. 33 .L6:
  35. 34 001c E114 cp r14,__zero_reg__
  36. 35 001e F104 cpc r15,__zero_reg__
  37. 36 0020 01F4 brne .L34
  38. 37 0022 00C0 rjmp .L3
  39. 38 .L2:
  40. 39 0024 80E0 ldi r24,0
  41. 40 0026 91E0 ldi r25,lo8(1)
  42. 41 0028 0E94 0000 call malloc
  43. 42 002c 9093 0000 sts bname.2206+1,r25
  44. 43 0030 8093 0000 sts bname.2206,r24
  45. 44 0034 892B or r24,r25
  46. 45 0036 01F4 brne .L6
  47. 46 0038 00C0 rjmp .L27
  48. 47 .L34:
  49. 48 003a F701 movw r30,r14
  50. 49 003c 8081 ld r24,Z
  51. 50 003e 8111 cpse r24,__zero_reg__
  52. 51 0040 00C0 rjmp .L7
  53. 52 .L3:
  54. 53 0042 0091 0000 lds r16,bname.2206
  55. 54 0046 1091 0000 lds r17,bname.2206+1
  56. 55 004a 40E0 ldi r20,0
  57. 56 004c 51E0 ldi r21,lo8(1)
  58. 57 004e 60E0 ldi r22,lo8(.LC1)
  59. GAS LISTING /tmp/ccKrwvXe.s page 2
  60. 58 0050 70E0 ldi r23,hi8(.LC1)
  61. 59 0052 00C0 rjmp .L37
  62. 60 .L7:
  63. 61 0054 F701 movw r30,r14
  64. 62 0:
  65. 63 0056 0190 ld __tmp_reg__,Z+
  66. 64 0058 0020 tst __tmp_reg__
  67. 65 005a 01F4 brne 0b
  68. 66 005c 3297 sbiw r30,2
  69. 67 .L8:
  70. 68 005e EE16 cp r14,r30
  71. 69 0060 FF06 cpc r15,r31
  72. 70 0062 00F4 brsh .L9
  73. 71 0064 9081 ld r25,Z
  74. 72 0066 9F32 cpi r25,lo8(47)
  75. 73 0068 01F4 brne .L12
  76. 74 006a 3197 sbiw r30,1
  77. 75 006c 00C0 rjmp .L8
  78. 76 .L13:
  79. 77 006e 3197 sbiw r30,1
  80. 78 0070 EE16 cp r14,r30
  81. 79 0072 FF06 cpc r15,r31
  82. 80 0074 00F4 brsh .L9
  83. 81 .L12:
  84. 82 0076 9081 ld r25,Z
  85. 83 0078 9F32 cpi r25,lo8(47)
  86. 84 007a 01F4 brne .L13
  87. 85 007c 00C0 rjmp .L39
  88. 86 .L9:
  89. 87 007e EE16 cp r14,r30
  90. 88 0080 FF06 cpc r15,r31
  91. 89 0082 01F4 brne .L20
  92. 90 0084 8F32 cpi r24,lo8(47)
  93. 91 0086 01F0 breq .L23
  94. 92 0088 60E0 ldi r22,lo8(.LC1)
  95. 93 008a 70E0 ldi r23,hi8(.LC1)
  96. 94 008c 00C0 rjmp .L16
  97. 95 .L39:
  98. 96 008e EE16 cp r14,r30
  99. 97 0090 FF06 cpc r15,r31
  100. 98 0092 01F4 brne .L20
  101. 99 .L23:
  102. 100 0094 60E0 ldi r22,lo8(.LC0)
  103. 101 0096 70E0 ldi r23,hi8(.LC0)
  104. 102 .L16:
  105. 103 0098 0091 0000 lds r16,bname.2206
  106. 104 009c 1091 0000 lds r17,bname.2206+1
  107. 105 00a0 40E0 ldi r20,0
  108. 106 00a2 51E0 ldi r21,lo8(1)
  109. 107 .L37:
  110. 108 00a4 C801 movw r24,r16
  111. 109 00a6 0E94 0000 call strncpy
  112. 110 00aa 00C0 rjmp .L27
  113. 111 .L17:
  114. 112 00ac 8081 ld r24,Z
  115. 113 00ae 8F32 cpi r24,lo8(47)
  116. 114 00b0 01F4 brne .L21
  117. GAS LISTING /tmp/ccKrwvXe.s page 3
  118. 115 .L20:
  119. 116 00b2 3197 sbiw r30,1
  120. 117 00b4 EE16 cp r14,r30
  121. 118 00b6 FF06 cpc r15,r31
  122. 119 00b8 00F0 brlo .L17
  123. 120 .L21:
  124. 121 00ba EF01 movw r28,r30
  125. 122 00bc CE19 sub r28,r14
  126. 123 00be DF09 sbc r29,r15
  127. 124 00c0 CF3F cpi r28,-1
  128. 125 00c2 D105 cpc r29,__zero_reg__
  129. 126 00c4 04F0 brlt .L36
  130. 127 00c6 8FE3 ldi r24,lo8(63)
  131. 128 00c8 90E0 ldi r25,0
  132. 129 00ca 9093 0000 sts errno+1,r25
  133. 130 00ce 8093 0000 sts errno,r24
  134. 131 00d2 00E0 ldi r16,0
  135. 132 00d4 10E0 ldi r17,0
  136. 133 00d6 00C0 rjmp .L27
  137. 134 .L36:
  138. 135 00d8 0091 0000 lds r16,bname.2206
  139. 136 00dc 1091 0000 lds r17,bname.2206+1
  140. 137 00e0 B701 movw r22,r14
  141. 138 00e2 C801 movw r24,r16
  142. 139 00e4 0E94 0000 call strcpy
  143. 140 00e8 F801 movw r30,r16
  144. 141 00ea EC0F add r30,r28
  145. 142 00ec FD1F adc r31,r29
  146. 143 00ee 1182 std Z+1,__zero_reg__
  147. 144 .L27:
  148. 145 00f0 C801 movw r24,r16
  149. 146 /* epilogue start */
  150. 147 00f2 DF91 pop r29
  151. 148 00f4 CF91 pop r28
  152. 149 00f6 1F91 pop r17
  153. 150 00f8 0F91 pop r16
  154. 151 00fa FF90 pop r15
  155. 152 00fc EF90 pop r14
  156. 153 00fe 0895 ret
  157. 154 .size dirname, .-dirname
  158. 155 .local bname.2206
  159. 156 .comm bname.2206,2,1
  160. 157 .ident "GCC: (GNU) 5.3.0"
  161. 158 .global __do_copy_data
  162. 159 .global __do_clear_bss
  163. GAS LISTING /tmp/ccKrwvXe.s page 4
  164. DEFINED SYMBOLS
  165. *ABS*:0000000000000000 dirname.c
  166. /tmp/ccKrwvXe.s:2 *ABS*:000000000000003e __SP_H__
  167. /tmp/ccKrwvXe.s:3 *ABS*:000000000000003d __SP_L__
  168. /tmp/ccKrwvXe.s:4 *ABS*:000000000000003f __SREG__
  169. /tmp/ccKrwvXe.s:5 *ABS*:000000000000003b __RAMPZ__
  170. /tmp/ccKrwvXe.s:6 *ABS*:0000000000000000 __tmp_reg__
  171. /tmp/ccKrwvXe.s:7 *ABS*:0000000000000001 __zero_reg__
  172. /tmp/ccKrwvXe.s:16 .text.dirname:0000000000000000 dirname
  173. .bss:0000000000000000 bname.2206
  174. UNDEFINED SYMBOLS
  175. malloc
  176. strncpy
  177. errno
  178. strcpy
  179. __do_copy_data
  180. __do_clear_bss