uri.lst 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. GAS LISTING /tmp/ccqYxKj5.s page 1
  2. 1 .file "uri.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.UriSchemeRelease,"ax",@progbits
  10. 9 .global UriSchemeRelease
  11. 10 .type UriSchemeRelease, @function
  12. 11 UriSchemeRelease:
  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 8881 ld r24,Y
  21. 20 0008 9981 ldd r25,Y+1
  22. 21 000a 0E94 0000 call free
  23. 22 000e CE01 movw r24,r28
  24. 23 /* epilogue start */
  25. 24 0010 DF91 pop r29
  26. 25 0012 CF91 pop r28
  27. 26 0014 0C94 0000 jmp free
  28. 27 .size UriSchemeRelease, .-UriSchemeRelease
  29. 28 .section .text.UriSchemeSplit,"ax",@progbits
  30. 29 .global UriSchemeSplit
  31. 30 .type UriSchemeSplit, @function
  32. 31 UriSchemeSplit:
  33. 32 0000 AF92 push r10
  34. 33 0002 BF92 push r11
  35. 34 0004 CF92 push r12
  36. 35 0006 DF92 push r13
  37. 36 0008 EF92 push r14
  38. 37 000a FF92 push r15
  39. 38 000c 0F93 push r16
  40. 39 000e 1F93 push r17
  41. 40 0010 CF93 push r28
  42. 41 0012 DF93 push r29
  43. 42 /* prologue: function */
  44. 43 /* frame size = 0 */
  45. 44 /* stack size = 10 */
  46. 45 .L__stack_usage = 10
  47. 46 0014 7C01 movw r14,r24
  48. 47 0016 0097 sbiw r24,0
  49. 48 0018 01F4 brne .+2
  50. 49 001a 00C0 rjmp .L17
  51. 50 001c FC01 movw r30,r24
  52. 51 001e 8081 ld r24,Z
  53. 52 0020 8823 tst r24
  54. 53 0022 01F4 brne .+2
  55. 54 0024 00C0 rjmp .L17
  56. 55 0026 60E1 ldi r22,lo8(16)
  57. 56 0028 70E0 ldi r23,0
  58. 57 002a 81E0 ldi r24,lo8(1)
  59. GAS LISTING /tmp/ccqYxKj5.s page 2
  60. 58 002c 90E0 ldi r25,0
  61. 59 002e 0E94 0000 call calloc
  62. 60 0032 EC01 movw r28,r24
  63. 61 0034 892B or r24,r25
  64. 62 0036 01F4 brne .+2
  65. 63 0038 00C0 rjmp .L4
  66. 64 003a 90E0 ldi r25,lo8(scheme_names)
  67. 65 003c A92E mov r10,r25
  68. 66 003e 90E0 ldi r25,hi8(scheme_names)
  69. 67 0040 B92E mov r11,r25
  70. 68 0042 00E0 ldi r16,0
  71. 69 0044 10E0 ldi r17,0
  72. 70 .L5:
  73. 71 0046 F501 movw r30,r10
  74. 72 0048 6191 ld r22,Z+
  75. 73 004a 7191 ld r23,Z+
  76. 74 004c 5F01 movw r10,r30
  77. 75 004e 6115 cp r22,__zero_reg__
  78. 76 0050 7105 cpc r23,__zero_reg__
  79. 77 0052 01F0 breq .L7
  80. 78 0054 FB01 movw r30,r22
  81. 79 0:
  82. 80 0056 0190 ld __tmp_reg__,Z+
  83. 81 0058 0020 tst __tmp_reg__
  84. 82 005a 01F4 brne 0b
  85. 83 005c 3197 sbiw r30,1
  86. 84 005e 6F01 movw r12,r30
  87. 85 0060 C61A sub r12,r22
  88. 86 0062 D70A sbc r13,r23
  89. 87 0064 A601 movw r20,r12
  90. 88 0066 C701 movw r24,r14
  91. 89 0068 0E94 0000 call strncmp
  92. 90 006c 892B or r24,r25
  93. 91 006e 01F4 brne .L6
  94. 92 0070 EC0C add r14,r12
  95. 93 0072 FD1C adc r15,r13
  96. 94 0074 00C0 rjmp .L7
  97. 95 .L6:
  98. 96 0076 0F5F subi r16,-1
  99. 97 0078 1F4F sbci r17,-1
  100. 98 007a 00C0 rjmp .L5
  101. 99 .L7:
  102. 100 007c C701 movw r24,r14
  103. 101 007e 0E94 0000 call strdup
  104. 102 0082 FC01 movw r30,r24
  105. 103 0084 9983 std Y+1,r25
  106. 104 0086 8883 st Y,r24
  107. 105 0088 0097 sbiw r24,0
  108. 106 008a 01F0 breq .L4
  109. 107 008c 9987 std Y+9,r25
  110. 108 008e 8887 std Y+8,r24
  111. 109 0090 DC01 movw r26,r24
  112. 110 .L9:
  113. 111 0092 8D91 ld r24,X+
  114. 112 0094 8823 tst r24
  115. 113 0096 01F0 breq .L13
  116. 114 0098 9F01 movw r18,r30
  117. GAS LISTING /tmp/ccqYxKj5.s page 3
  118. 115 009a 2F5F subi r18,-1
  119. 116 009c 3F4F sbci r19,-1
  120. 117 009e 8A33 cpi r24,lo8(58)
  121. 118 00a0 01F4 brne .L10
  122. 119 00a2 1082 st Z,__zero_reg__
  123. 120 00a4 BB87 std Y+11,r27
  124. 121 00a6 AA87 std Y+10,r26
  125. 122 00a8 00C0 rjmp .L11
  126. 123 .L10:
  127. 124 00aa 8F32 cpi r24,lo8(47)
  128. 125 00ac 01F4 brne .L12
  129. 126 00ae 1082 st Z,__zero_reg__
  130. 127 00b0 3D87 std Y+13,r19
  131. 128 00b2 2C87 std Y+12,r18
  132. 129 00b4 00C0 rjmp .L13
  133. 130 .L12:
  134. 131 00b6 8034 cpi r24,lo8(64)
  135. 132 00b8 01F4 brne .L11
  136. 133 00ba 1082 st Z,__zero_reg__
  137. 134 00bc 8885 ldd r24,Y+8
  138. 135 00be 9985 ldd r25,Y+9
  139. 136 00c0 9D83 std Y+5,r25
  140. 137 00c2 8C83 std Y+4,r24
  141. 138 00c4 8A85 ldd r24,Y+10
  142. 139 00c6 9B85 ldd r25,Y+11
  143. 140 00c8 9F83 std Y+7,r25
  144. 141 00ca 8E83 std Y+6,r24
  145. 142 00cc B987 std Y+9,r27
  146. 143 00ce A887 std Y+8,r26
  147. 144 00d0 1B86 std Y+11,__zero_reg__
  148. 145 00d2 1A86 std Y+10,__zero_reg__
  149. 146 .L11:
  150. 147 00d4 F901 movw r30,r18
  151. 148 00d6 00C0 rjmp .L9
  152. 149 .L13:
  153. 150 00d8 8A85 ldd r24,Y+10
  154. 151 00da 9B85 ldd r25,Y+11
  155. 152 00dc 0097 sbiw r24,0
  156. 153 00de 01F0 breq .L15
  157. 154 00e0 0E94 0000 call atoi
  158. 155 00e4 00C0 rjmp .L24
  159. 156 .L15:
  160. 157 00e6 000F lsl r16
  161. 158 00e8 111F rol r17
  162. 159 00ea F801 movw r30,r16
  163. 160 00ec E050 subi r30,lo8(-(default_ports))
  164. 161 00ee F040 sbci r31,hi8(-(default_ports))
  165. 162 00f0 8081 ld r24,Z
  166. 163 00f2 9181 ldd r25,Z+1
  167. 164 .L24:
  168. 165 00f4 9F87 std Y+15,r25
  169. 166 00f6 8E87 std Y+14,r24
  170. 167 00f8 CE01 movw r24,r28
  171. 168 00fa 00C0 rjmp .L3
  172. 169 .L4:
  173. 170 00fc CE01 movw r24,r28
  174. 171 00fe 0E94 0000 call UriSchemeRelease
  175. GAS LISTING /tmp/ccqYxKj5.s page 4
  176. 172 .L17:
  177. 173 0102 80E0 ldi r24,0
  178. 174 0104 90E0 ldi r25,0
  179. 175 .L3:
  180. 176 /* epilogue start */
  181. 177 0106 DF91 pop r29
  182. 178 0108 CF91 pop r28
  183. 179 010a 1F91 pop r17
  184. 180 010c 0F91 pop r16
  185. 181 010e FF90 pop r15
  186. 182 0110 EF90 pop r14
  187. 183 0112 DF90 pop r13
  188. 184 0114 CF90 pop r12
  189. 185 0116 BF90 pop r11
  190. 186 0118 AF90 pop r10
  191. 187 011a 0895 ret
  192. 188 .size UriSchemeSplit, .-UriSchemeSplit
  193. 189 .section .rodata
  194. 190 .type default_ports, @object
  195. 191 .size default_ports, 14
  196. 192 default_ports:
  197. 193 0000 1400 .word 20
  198. 194 0002 BB01 .word 443
  199. 195 0004 1900 .word 25
  200. 196 0006 6E00 .word 110
  201. 197 0008 A100 .word 161
  202. 198 000a 1700 .word 23
  203. 199 000c 5000 .word 80
  204. 200 .section .rodata.str1.1,"aMS",@progbits,1
  205. 201 .LC0:
  206. 202 0000 6674 703A .string "ftp://"
  207. 202 2F2F 00
  208. 203 .LC1:
  209. 204 0007 6874 7470 .string "https://"
  210. 204 733A 2F2F
  211. 204 00
  212. 205 .LC2:
  213. 206 0010 6D61 696C .string "mailto:"
  214. 206 746F 3A00
  215. 207 .LC3:
  216. 208 0018 706F 703A .string "pop://"
  217. 208 2F2F 00
  218. 209 .LC4:
  219. 210 001f 736E 6D70 .string "snmp://"
  220. 210 3A2F 2F00
  221. 211 .LC5:
  222. 212 0027 7465 6C6E .string "telnet://"
  223. 212 6574 3A2F
  224. 212 2F00
  225. 213 .section .rodata
  226. 214 .type scheme_names, @object
  227. 215 .size scheme_names, 14
  228. 216 scheme_names:
  229. 217 000e 0000 .word .LC0
  230. 218 0010 0000 .word .LC1
  231. 219 0012 0000 .word .LC2
  232. 220 0014 0000 .word .LC3
  233. GAS LISTING /tmp/ccqYxKj5.s page 5
  234. 221 0016 0000 .word .LC4
  235. 222 0018 0000 .word .LC5
  236. 223 001a 0000 .word 0
  237. 224 .ident "GCC: (GNU) 5.3.0"
  238. 225 .global __do_copy_data
  239. GAS LISTING /tmp/ccqYxKj5.s page 6
  240. DEFINED SYMBOLS
  241. *ABS*:0000000000000000 uri.c
  242. /tmp/ccqYxKj5.s:2 *ABS*:000000000000003e __SP_H__
  243. /tmp/ccqYxKj5.s:3 *ABS*:000000000000003d __SP_L__
  244. /tmp/ccqYxKj5.s:4 *ABS*:000000000000003f __SREG__
  245. /tmp/ccqYxKj5.s:5 *ABS*:000000000000003b __RAMPZ__
  246. /tmp/ccqYxKj5.s:6 *ABS*:0000000000000000 __tmp_reg__
  247. /tmp/ccqYxKj5.s:7 *ABS*:0000000000000001 __zero_reg__
  248. /tmp/ccqYxKj5.s:11 .text.UriSchemeRelease:0000000000000000 UriSchemeRelease
  249. /tmp/ccqYxKj5.s:31 .text.UriSchemeSplit:0000000000000000 UriSchemeSplit
  250. /tmp/ccqYxKj5.s:216 .rodata:000000000000000e scheme_names
  251. /tmp/ccqYxKj5.s:192 .rodata:0000000000000000 default_ports
  252. UNDEFINED SYMBOLS
  253. free
  254. calloc
  255. strncmp
  256. strdup
  257. atoi
  258. __do_copy_data