unvis.lst 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713
  1. GAS LISTING /tmp/ccf0aJYP.s page 1
  2. 1 .file "unvis.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.unvis,"ax",@progbits
  10. 9 .global unvis
  11. 10 .type unvis, @function
  12. 11 unvis:
  13. 12 0000 EF92 push r14
  14. 13 0002 FF92 push r15
  15. 14 0004 0F93 push r16
  16. 15 0006 1F93 push r17
  17. 16 0008 CF93 push r28
  18. 17 000a DF93 push r29
  19. 18 /* prologue: function */
  20. 19 /* frame size = 0 */
  21. 20 /* stack size = 6 */
  22. 21 .L__stack_usage = 6
  23. 22 000c 7C01 movw r14,r24
  24. 23 000e EB01 movw r28,r22
  25. 24 0010 8A01 movw r16,r20
  26. 25 0012 FA01 movw r30,r20
  27. 26 0014 4081 ld r20,Z
  28. 27 0016 5181 ldd r21,Z+1
  29. 28 0018 20FF sbrs r18,0
  30. 29 001a 00C0 rjmp .L2
  31. 30 001c CA01 movw r24,r20
  32. 31 001e 0597 sbiw r24,5
  33. 32 0020 0297 sbiw r24,2
  34. 33 0022 00F0 brlo .L3
  35. 34 0024 4830 cpi r20,8
  36. 35 0026 5105 cpc r21,__zero_reg__
  37. 36 0028 01F4 brne .L4
  38. 37 .L3:
  39. 38 002a F801 movw r30,r16
  40. 39 002c 1182 std Z+1,__zero_reg__
  41. 40 002e 1082 st Z,__zero_reg__
  42. 41 0030 00C0 rjmp .L60
  43. 42 .L4:
  44. 43 0032 452B or r20,r21
  45. 44 0034 01F4 brne .+2
  46. 45 0036 00C0 rjmp .L49
  47. 46 0038 00C0 rjmp .L64
  48. 47 .L2:
  49. 48 003a 4930 cpi r20,9
  50. 49 003c 5105 cpc r21,__zero_reg__
  51. 50 003e 00F0 brlo .+2
  52. 51 0040 00C0 rjmp .L6
  53. 52 0042 FA01 movw r30,r20
  54. 53 0044 8827 clr r24
  55. 54 0046 E050 subi r30,pm_lo8(-(.L8))
  56. 55 0048 F040 sbci r31,pm_hi8(-(.L8))
  57. 56 004a 8040 sbci r24,pm_hh8(-(.L8))
  58. 57 004c 0C94 0000 jmp __tablejump2__
  59. GAS LISTING /tmp/ccf0aJYP.s page 2
  60. 58 .section .progmem.gcc_sw_table.unvis,"a",@progbits
  61. 59 .p2align 1
  62. 60 .L8:
  63. 61 0000 0000 .word gs(.L7)
  64. 62 0002 0000 .word gs(.L9)
  65. 63 0004 0000 .word gs(.L10)
  66. 64 0006 0000 .word gs(.L11)
  67. 65 0008 0000 .word gs(.L12)
  68. 66 000a 0000 .word gs(.L13)
  69. 67 000c 0000 .word gs(.L14)
  70. 68 000e 0000 .word gs(.L15)
  71. 69 0010 0000 .word gs(.L16)
  72. 70 .section .text.unvis
  73. 71 .L7:
  74. 72 0050 F701 movw r30,r14
  75. 73 0052 1082 st Z,__zero_reg__
  76. 74 0054 6C35 cpi r22,92
  77. 75 0056 7105 cpc r23,__zero_reg__
  78. 76 0058 01F4 brne .L17
  79. 77 005a 81E0 ldi r24,lo8(1)
  80. 78 005c 90E0 ldi r25,0
  81. 79 005e 00C0 rjmp .L61
  82. 80 .L17:
  83. 81 0060 27FF sbrs r18,7
  84. 82 0062 00C0 rjmp .L18
  85. 83 0064 6532 cpi r22,37
  86. 84 0066 7105 cpc r23,__zero_reg__
  87. 85 0068 01F4 brne .L18
  88. 86 006a 87E0 ldi r24,lo8(7)
  89. 87 006c 90E0 ldi r25,0
  90. 88 .L61:
  91. 89 006e F801 movw r30,r16
  92. 90 0070 9183 std Z+1,r25
  93. 91 0072 8083 st Z,r24
  94. 92 0074 00C0 rjmp .L5
  95. 93 .L18:
  96. 94 0076 F701 movw r30,r14
  97. 95 0078 C083 st Z,r28
  98. 96 007a 00C0 rjmp .L60
  99. 97 .L9:
  100. 98 007c 6E35 cpi r22,94
  101. 99 007e 7105 cpc r23,__zero_reg__
  102. 100 0080 01F4 brne .+2
  103. 101 0082 00C0 rjmp .L67
  104. 102 0084 04F4 brge .L21
  105. 103 0086 6833 cpi r22,56
  106. 104 0088 7105 cpc r23,__zero_reg__
  107. 105 008a 04F4 brge .L22
  108. 106 008c 6033 cpi r22,48
  109. 107 008e 7105 cpc r23,__zero_reg__
  110. 108 0090 04F4 brge .L23
  111. 109 0092 6A30 cpi r22,10
  112. 110 0094 7105 cpc r23,__zero_reg__
  113. 111 0096 01F4 brne .+2
  114. 112 0098 00C0 rjmp .L25
  115. 113 009a 6432 cpi r22,36
  116. 114 009c 7105 cpc r23,__zero_reg__
  117. GAS LISTING /tmp/ccf0aJYP.s page 3
  118. 115 009e 01F4 brne .+2
  119. 116 00a0 00C0 rjmp .L25
  120. 117 00a2 00C0 rjmp .L6
  121. 118 .L22:
  122. 119 00a4 6D34 cpi r22,77
  123. 120 00a6 7105 cpc r23,__zero_reg__
  124. 121 00a8 01F0 breq .L26
  125. 122 00aa 6C35 cpi r22,92
  126. 123 00ac 7105 cpc r23,__zero_reg__
  127. 124 00ae 01F0 breq .L27
  128. 125 00b0 6534 cpi r22,69
  129. 126 00b2 7105 cpc r23,__zero_reg__
  130. 127 00b4 01F0 breq .+2
  131. 128 00b6 00C0 rjmp .L6
  132. 129 00b8 8BE1 ldi r24,lo8(27)
  133. 130 00ba 00C0 rjmp .L63
  134. 131 .L21:
  135. 132 00bc 6E36 cpi r22,110
  136. 133 00be 7105 cpc r23,__zero_reg__
  137. 134 00c0 01F0 breq .L29
  138. 135 00c2 04F4 brge .L30
  139. 136 00c4 6236 cpi r22,98
  140. 137 00c6 7105 cpc r23,__zero_reg__
  141. 138 00c8 01F0 breq .L31
  142. 139 00ca 6636 cpi r22,102
  143. 140 00cc 7105 cpc r23,__zero_reg__
  144. 141 00ce 01F0 breq .L32
  145. 142 00d0 6136 cpi r22,97
  146. 143 00d2 7105 cpc r23,__zero_reg__
  147. 144 00d4 01F0 breq .+2
  148. 145 00d6 00C0 rjmp .L6
  149. 146 00d8 87E0 ldi r24,lo8(7)
  150. 147 00da 00C0 rjmp .L63
  151. 148 .L30:
  152. 149 00dc 6337 cpi r22,115
  153. 150 00de 7105 cpc r23,__zero_reg__
  154. 151 00e0 01F0 breq .L34
  155. 152 00e2 04F4 brge .L35
  156. 153 00e4 6237 cpi r22,114
  157. 154 00e6 7105 cpc r23,__zero_reg__
  158. 155 00e8 01F0 breq .+2
  159. 156 00ea 00C0 rjmp .L6
  160. 157 00ec 8DE0 ldi r24,lo8(13)
  161. 158 00ee 00C0 rjmp .L63
  162. 159 .L35:
  163. 160 00f0 6437 cpi r22,116
  164. 161 00f2 7105 cpc r23,__zero_reg__
  165. 162 00f4 01F0 breq .L37
  166. 163 00f6 6637 cpi r22,118
  167. 164 00f8 7105 cpc r23,__zero_reg__
  168. 165 00fa 01F0 breq .+2
  169. 166 00fc 00C0 rjmp .L6
  170. 167 00fe 8BE0 ldi r24,lo8(11)
  171. 168 0100 00C0 rjmp .L63
  172. 169 .L27:
  173. 170 0102 8CE5 ldi r24,lo8(92)
  174. 171 0104 00C0 rjmp .L63
  175. GAS LISTING /tmp/ccf0aJYP.s page 4
  176. 172 .L23:
  177. 173 0106 C053 subi r28,lo8(-(-48))
  178. 174 0108 F701 movw r30,r14
  179. 175 010a C083 st Z,r28
  180. 176 010c 85E0 ldi r24,lo8(5)
  181. 177 010e 90E0 ldi r25,0
  182. 178 0110 00C0 rjmp .L62
  183. 179 .L26:
  184. 180 0112 80E8 ldi r24,lo8(-128)
  185. 181 0114 F701 movw r30,r14
  186. 182 0116 8083 st Z,r24
  187. 183 0118 82E0 ldi r24,lo8(2)
  188. 184 011a 90E0 ldi r25,0
  189. 185 011c 00C0 rjmp .L62
  190. 186 .L29:
  191. 187 011e 8AE0 ldi r24,lo8(10)
  192. 188 0120 00C0 rjmp .L63
  193. 189 .L31:
  194. 190 0122 88E0 ldi r24,lo8(8)
  195. 191 0124 00C0 rjmp .L63
  196. 192 .L37:
  197. 193 0126 89E0 ldi r24,lo8(9)
  198. 194 0128 00C0 rjmp .L63
  199. 195 .L32:
  200. 196 012a 8CE0 ldi r24,lo8(12)
  201. 197 012c 00C0 rjmp .L63
  202. 198 .L34:
  203. 199 012e 80E2 ldi r24,lo8(32)
  204. 200 .L63:
  205. 201 0130 F701 movw r30,r14
  206. 202 0132 8083 st Z,r24
  207. 203 0134 F801 movw r30,r16
  208. 204 0136 1182 std Z+1,__zero_reg__
  209. 205 0138 1082 st Z,__zero_reg__
  210. 206 013a 00C0 rjmp .L5
  211. 207 .L25:
  212. 208 013c F801 movw r30,r16
  213. 209 013e 1182 std Z+1,__zero_reg__
  214. 210 0140 1082 st Z,__zero_reg__
  215. 211 0142 00C0 rjmp .L49
  216. 212 .L10:
  217. 213 0144 6D32 cpi r22,45
  218. 214 0146 7105 cpc r23,__zero_reg__
  219. 215 0148 01F4 brne .L39
  220. 216 014a 83E0 ldi r24,lo8(3)
  221. 217 014c 90E0 ldi r25,0
  222. 218 014e 00C0 rjmp .L62
  223. 219 .L39:
  224. 220 0150 6E35 cpi r22,94
  225. 221 0152 7105 cpc r23,__zero_reg__
  226. 222 0154 01F0 breq .+2
  227. 223 0156 00C0 rjmp .L6
  228. 224 .L67:
  229. 225 0158 84E0 ldi r24,lo8(4)
  230. 226 015a 90E0 ldi r25,0
  231. 227 015c 00C0 rjmp .L62
  232. 228 .L11:
  233. GAS LISTING /tmp/ccf0aJYP.s page 5
  234. 229 015e F801 movw r30,r16
  235. 230 0160 1182 std Z+1,__zero_reg__
  236. 231 0162 1082 st Z,__zero_reg__
  237. 232 0164 F701 movw r30,r14
  238. 233 0166 6081 ld r22,Z
  239. 234 0168 C62B or r28,r22
  240. 235 016a 00C0 rjmp .L65
  241. 236 .L12:
  242. 237 016c F701 movw r30,r14
  243. 238 016e 9081 ld r25,Z
  244. 239 0170 6F33 cpi r22,63
  245. 240 0172 7105 cpc r23,__zero_reg__
  246. 241 0174 01F4 brne .L41
  247. 242 0176 9F67 ori r25,lo8(127)
  248. 243 0178 00C0 rjmp .L59
  249. 244 .L41:
  250. 245 017a CF71 andi r28,lo8(31)
  251. 246 017c 9C2B or r25,r28
  252. 247 017e F701 movw r30,r14
  253. 248 .L59:
  254. 249 0180 9083 st Z,r25
  255. 250 0182 00C0 rjmp .L3
  256. 251 .L13:
  257. 252 0184 CB01 movw r24,r22
  258. 253 0186 9927 clr r25
  259. 254 0188 C097 sbiw r24,48
  260. 255 018a 0897 sbiw r24,8
  261. 256 018c 00F4 brsh .L42
  262. 257 018e F701 movw r30,r14
  263. 258 0190 8081 ld r24,Z
  264. 259 0192 C053 subi r28,lo8(-(-48))
  265. 260 0194 F8E0 ldi r31,lo8(8)
  266. 261 0196 8F9F mul r24,r31
  267. 262 0198 C00D add r28,r0
  268. 263 019a 1124 clr __zero_reg__
  269. 264 019c F701 movw r30,r14
  270. 265 019e C083 st Z,r28
  271. 266 01a0 86E0 ldi r24,lo8(6)
  272. 267 01a2 90E0 ldi r25,0
  273. 268 01a4 00C0 rjmp .L62
  274. 269 .L15:
  275. 270 01a6 CB01 movw r24,r22
  276. 271 01a8 0E94 0000 call isxdigit
  277. 272 01ac 892B or r24,r25
  278. 273 01ae 01F4 brne .L69
  279. 274 .L42:
  280. 275 01b0 F801 movw r30,r16
  281. 276 01b2 1182 std Z+1,__zero_reg__
  282. 277 01b4 1082 st Z,__zero_reg__
  283. 278 01b6 00C0 rjmp .L46
  284. 279 .L14:
  285. 280 01b8 F801 movw r30,r16
  286. 281 01ba 1182 std Z+1,__zero_reg__
  287. 282 01bc 1082 st Z,__zero_reg__
  288. 283 01be CB01 movw r24,r22
  289. 284 01c0 9927 clr r25
  290. 285 01c2 C097 sbiw r24,48
  291. GAS LISTING /tmp/ccf0aJYP.s page 6
  292. 286 01c4 0897 sbiw r24,8
  293. 287 01c6 00F0 brlo .L43
  294. 288 .L46:
  295. 289 01c8 42E0 ldi r20,lo8(2)
  296. 290 01ca 50E0 ldi r21,0
  297. 291 01cc 00C0 rjmp .L5
  298. 292 .L43:
  299. 293 01ce F701 movw r30,r14
  300. 294 01d0 8081 ld r24,Z
  301. 295 01d2 C053 subi r28,lo8(-(-48))
  302. 296 01d4 F8E0 ldi r31,lo8(8)
  303. 297 01d6 8F9F mul r24,r31
  304. 298 01d8 C00D add r28,r0
  305. 299 01da 1124 clr __zero_reg__
  306. 300 01dc 00C0 rjmp .L66
  307. 301 .L69:
  308. 302 01de CE01 movw r24,r28
  309. 303 01e0 C097 sbiw r24,48
  310. 304 01e2 8A30 cpi r24,10
  311. 305 01e4 9105 cpc r25,__zero_reg__
  312. 306 01e6 00F0 brlo .L45
  313. 307 01e8 CE01 movw r24,r28
  314. 308 01ea 0E94 0000 call tolower
  315. 309 01ee 8755 subi r24,lo8(-(-87))
  316. 310 .L45:
  317. 311 01f0 F701 movw r30,r14
  318. 312 01f2 8083 st Z,r24
  319. 313 01f4 88E0 ldi r24,lo8(8)
  320. 314 01f6 90E0 ldi r25,0
  321. 315 .L62:
  322. 316 01f8 F801 movw r30,r16
  323. 317 01fa 9183 std Z+1,r25
  324. 318 01fc 8083 st Z,r24
  325. 319 01fe 40E0 ldi r20,0
  326. 320 0200 50E0 ldi r21,0
  327. 321 0202 00C0 rjmp .L5
  328. 322 .L16:
  329. 323 0204 F801 movw r30,r16
  330. 324 0206 1182 std Z+1,__zero_reg__
  331. 325 0208 1082 st Z,__zero_reg__
  332. 326 020a CB01 movw r24,r22
  333. 327 020c 0E94 0000 call isxdigit
  334. 328 0210 892B or r24,r25
  335. 329 0212 01F0 breq .L46
  336. 330 0214 CE01 movw r24,r28
  337. 331 0216 C097 sbiw r24,48
  338. 332 0218 8A30 cpi r24,10
  339. 333 021a 9105 cpc r25,__zero_reg__
  340. 334 021c 00F0 brlo .L48
  341. 335 021e CE01 movw r24,r28
  342. 336 0220 0E94 0000 call tolower
  343. 337 0224 8755 subi r24,lo8(-(-87))
  344. 338 .L48:
  345. 339 0226 F701 movw r30,r14
  346. 340 0228 C081 ld r28,Z
  347. 341 022a F0E1 ldi r31,lo8(16)
  348. 342 022c CF02 muls r28,r31
  349. GAS LISTING /tmp/ccf0aJYP.s page 7
  350. 343 022e E001 movw r28,r0
  351. 344 0230 1124 clr __zero_reg__
  352. 345 0232 C82B or r28,r24
  353. 346 .L66:
  354. 347 0234 F701 movw r30,r14
  355. 348 .L65:
  356. 349 0236 C083 st Z,r28
  357. 350 .L60:
  358. 351 0238 41E0 ldi r20,lo8(1)
  359. 352 023a 50E0 ldi r21,0
  360. 353 023c 00C0 rjmp .L5
  361. 354 .L6:
  362. 355 023e F801 movw r30,r16
  363. 356 0240 1182 std Z+1,__zero_reg__
  364. 357 0242 1082 st Z,__zero_reg__
  365. 358 .L64:
  366. 359 0244 4FEF ldi r20,lo8(-1)
  367. 360 0246 5FEF ldi r21,lo8(-1)
  368. 361 0248 00C0 rjmp .L5
  369. 362 .L49:
  370. 363 024a 43E0 ldi r20,lo8(3)
  371. 364 024c 50E0 ldi r21,0
  372. 365 .L5:
  373. 366 024e CA01 movw r24,r20
  374. 367 /* epilogue start */
  375. 368 0250 DF91 pop r29
  376. 369 0252 CF91 pop r28
  377. 370 0254 1F91 pop r17
  378. 371 0256 0F91 pop r16
  379. 372 0258 FF90 pop r15
  380. 373 025a EF90 pop r14
  381. 374 025c 0895 ret
  382. 375 .size unvis, .-unvis
  383. 376 .section .text.strunvisx,"ax",@progbits
  384. 377 .global strunvisx
  385. 378 .type strunvisx, @function
  386. 379 strunvisx:
  387. 380 0000 8F92 push r8
  388. 381 0002 9F92 push r9
  389. 382 0004 AF92 push r10
  390. 383 0006 BF92 push r11
  391. 384 0008 CF92 push r12
  392. 385 000a DF92 push r13
  393. 386 000c EF92 push r14
  394. 387 000e FF92 push r15
  395. 388 0010 0F93 push r16
  396. 389 0012 1F93 push r17
  397. 390 0014 CF93 push r28
  398. 391 0016 DF93 push r29
  399. 392 0018 1F92 push __zero_reg__
  400. 393 001a 1F92 push __zero_reg__
  401. 394 001c CDB7 in r28,__SP_L__
  402. 395 001e DEB7 in r29,__SP_H__
  403. 396 /* prologue: function */
  404. 397 /* frame size = 2 */
  405. 398 /* stack size = 14 */
  406. 399 .L__stack_usage = 14
  407. GAS LISTING /tmp/ccf0aJYP.s page 8
  408. 400 0020 5C01 movw r10,r24
  409. 401 0022 4A01 movw r8,r20
  410. 402 0024 1A82 std Y+2,__zero_reg__
  411. 403 0026 1982 std Y+1,__zero_reg__
  412. 404 0028 6B01 movw r12,r22
  413. 405 002a 8C01 movw r16,r24
  414. 406 .L71:
  415. 407 002c F601 movw r30,r12
  416. 408 002e E190 ld r14,Z+
  417. 409 0030 6F01 movw r12,r30
  418. 410 0032 EE20 tst r14
  419. 411 0034 01F0 breq .L79
  420. 412 0036 0E2C mov __tmp_reg__,r14
  421. 413 0038 000C lsl r0
  422. 414 003a FF08 sbc r15,r15
  423. 415 .L77:
  424. 416 003c 9401 movw r18,r8
  425. 417 003e AE01 movw r20,r28
  426. 418 0040 4F5F subi r20,-1
  427. 419 0042 5F4F sbci r21,-1
  428. 420 0044 B701 movw r22,r14
  429. 421 0046 C801 movw r24,r16
  430. 422 0048 0E94 0000 call unvis
  431. 423 004c 8130 cpi r24,1
  432. 424 004e 9105 cpc r25,__zero_reg__
  433. 425 0050 01F0 breq .L73
  434. 426 0052 04F4 brge .L74
  435. 427 0054 892B or r24,r25
  436. 428 0056 01F0 breq .L71
  437. 429 0058 00C0 rjmp .L72
  438. 430 .L74:
  439. 431 005a 8230 cpi r24,2
  440. 432 005c 9105 cpc r25,__zero_reg__
  441. 433 005e 01F0 breq .L76
  442. 434 0060 0397 sbiw r24,3
  443. 435 0062 01F0 breq .L71
  444. 436 0064 00C0 rjmp .L72
  445. 437 .L73:
  446. 438 0066 0F5F subi r16,-1
  447. 439 0068 1F4F sbci r17,-1
  448. 440 006a 00C0 rjmp .L71
  449. 441 .L76:
  450. 442 006c 0F5F subi r16,-1
  451. 443 006e 1F4F sbci r17,-1
  452. 444 0070 00C0 rjmp .L77
  453. 445 .L72:
  454. 446 0072 F801 movw r30,r16
  455. 447 0074 1082 st Z,__zero_reg__
  456. 448 0076 8FEF ldi r24,lo8(-1)
  457. 449 0078 9FEF ldi r25,lo8(-1)
  458. 450 007a 00C0 rjmp .L78
  459. 451 .L79:
  460. 452 007c 21E0 ldi r18,lo8(1)
  461. 453 007e 30E0 ldi r19,0
  462. 454 0080 AE01 movw r20,r28
  463. 455 0082 4F5F subi r20,-1
  464. 456 0084 5F4F sbci r21,-1
  465. GAS LISTING /tmp/ccf0aJYP.s page 9
  466. 457 0086 60E0 ldi r22,0
  467. 458 0088 70E0 ldi r23,0
  468. 459 008a C801 movw r24,r16
  469. 460 008c 0E94 0000 call unvis
  470. 461 0090 0197 sbiw r24,1
  471. 462 0092 01F4 brne .L80
  472. 463 0094 0F5F subi r16,-1
  473. 464 0096 1F4F sbci r17,-1
  474. 465 .L80:
  475. 466 0098 F801 movw r30,r16
  476. 467 009a 1082 st Z,__zero_reg__
  477. 468 009c C801 movw r24,r16
  478. 469 009e 8A19 sub r24,r10
  479. 470 00a0 9B09 sbc r25,r11
  480. 471 .L78:
  481. 472 /* epilogue start */
  482. 473 00a2 0F90 pop __tmp_reg__
  483. 474 00a4 0F90 pop __tmp_reg__
  484. 475 00a6 DF91 pop r29
  485. 476 00a8 CF91 pop r28
  486. 477 00aa 1F91 pop r17
  487. 478 00ac 0F91 pop r16
  488. 479 00ae FF90 pop r15
  489. 480 00b0 EF90 pop r14
  490. 481 00b2 DF90 pop r13
  491. 482 00b4 CF90 pop r12
  492. 483 00b6 BF90 pop r11
  493. 484 00b8 AF90 pop r10
  494. 485 00ba 9F90 pop r9
  495. 486 00bc 8F90 pop r8
  496. 487 00be 0895 ret
  497. 488 .size strunvisx, .-strunvisx
  498. 489 .section .text.strunvis,"ax",@progbits
  499. 490 .global strunvis
  500. 491 .type strunvis, @function
  501. 492 strunvis:
  502. 493 /* prologue: function */
  503. 494 /* frame size = 0 */
  504. 495 /* stack size = 0 */
  505. 496 .L__stack_usage = 0
  506. 497 0000 40E0 ldi r20,0
  507. 498 0002 50E0 ldi r21,0
  508. 499 0004 0C94 0000 jmp strunvisx
  509. 500 .size strunvis, .-strunvis
  510. 501 .section .text.strnunvis,"ax",@progbits
  511. 502 .global strnunvis
  512. 503 .type strnunvis, @function
  513. 504 strnunvis:
  514. 505 0000 8F92 push r8
  515. 506 0002 9F92 push r9
  516. 507 0004 AF92 push r10
  517. 508 0006 BF92 push r11
  518. 509 0008 CF92 push r12
  519. 510 000a DF92 push r13
  520. 511 000c EF92 push r14
  521. 512 000e FF92 push r15
  522. 513 0010 0F93 push r16
  523. GAS LISTING /tmp/ccf0aJYP.s page 10
  524. 514 0012 1F93 push r17
  525. 515 0014 CF93 push r28
  526. 516 0016 DF93 push r29
  527. 517 0018 00D0 rcall .
  528. 518 001a CDB7 in r28,__SP_L__
  529. 519 001c DEB7 in r29,__SP_H__
  530. 520 /* prologue: function */
  531. 521 /* frame size = 3 */
  532. 522 /* stack size = 15 */
  533. 523 .L__stack_usage = 15
  534. 524 001e 4C01 movw r8,r24
  535. 525 0020 7A01 movw r14,r20
  536. 526 0022 81E0 ldi r24,1
  537. 527 0024 E81A sub r14,r24
  538. 528 0026 F108 sbc r15,__zero_reg__
  539. 529 0028 E80C add r14,r8
  540. 530 002a F91C adc r15,r9
  541. 531 002c 1A82 std Y+2,__zero_reg__
  542. 532 002e 1982 std Y+1,__zero_reg__
  543. 533 0030 452B or r20,r21
  544. 534 0032 01F0 breq .L89
  545. 535 0034 F701 movw r30,r14
  546. 536 0036 1082 st Z,__zero_reg__
  547. 537 .L89:
  548. 538 0038 5B01 movw r10,r22
  549. 539 003a 8401 movw r16,r8
  550. 540 .L90:
  551. 541 003c F501 movw r30,r10
  552. 542 003e C190 ld r12,Z+
  553. 543 0040 5F01 movw r10,r30
  554. 544 0042 CC20 tst r12
  555. 545 0044 01F0 breq .L100
  556. 546 0046 0C2C mov __tmp_reg__,r12
  557. 547 0048 000C lsl r0
  558. 548 004a DD08 sbc r13,r13
  559. 549 .L98:
  560. 550 004c 20E0 ldi r18,0
  561. 551 004e 30E0 ldi r19,0
  562. 552 0050 AE01 movw r20,r28
  563. 553 0052 4F5F subi r20,-1
  564. 554 0054 5F4F sbci r21,-1
  565. 555 0056 B601 movw r22,r12
  566. 556 0058 CE01 movw r24,r28
  567. 557 005a 0396 adiw r24,3
  568. 558 005c 0E94 0000 call unvis
  569. 559 0060 8130 cpi r24,1
  570. 560 0062 9105 cpc r25,__zero_reg__
  571. 561 0064 01F0 breq .L92
  572. 562 0066 04F4 brge .L93
  573. 563 0068 892B or r24,r25
  574. 564 006a 01F0 breq .L90
  575. 565 006c 00C0 rjmp .L91
  576. 566 .L93:
  577. 567 006e 8230 cpi r24,2
  578. 568 0070 9105 cpc r25,__zero_reg__
  579. 569 0072 01F0 breq .L95
  580. 570 0074 0397 sbiw r24,3
  581. GAS LISTING /tmp/ccf0aJYP.s page 11
  582. 571 0076 01F0 breq .L90
  583. 572 0078 00C0 rjmp .L91
  584. 573 .L92:
  585. 574 007a 0E15 cp r16,r14
  586. 575 007c 1F05 cpc r17,r15
  587. 576 007e 00F4 brsh .L96
  588. 577 0080 8B81 ldd r24,Y+3
  589. 578 0082 F801 movw r30,r16
  590. 579 0084 8083 st Z,r24
  591. 580 .L96:
  592. 581 0086 0F5F subi r16,-1
  593. 582 0088 1F4F sbci r17,-1
  594. 583 008a 00C0 rjmp .L90
  595. 584 .L95:
  596. 585 008c 0E15 cp r16,r14
  597. 586 008e 1F05 cpc r17,r15
  598. 587 0090 00F4 brsh .L97
  599. 588 0092 8B81 ldd r24,Y+3
  600. 589 0094 F801 movw r30,r16
  601. 590 0096 8083 st Z,r24
  602. 591 .L97:
  603. 592 0098 0F5F subi r16,-1
  604. 593 009a 1F4F sbci r17,-1
  605. 594 009c 00C0 rjmp .L98
  606. 595 .L91:
  607. 596 009e E016 cp r14,r16
  608. 597 00a0 F106 cpc r15,r17
  609. 598 00a2 00F0 brlo .L104
  610. 599 00a4 F801 movw r30,r16
  611. 600 00a6 1082 st Z,__zero_reg__
  612. 601 00a8 00C0 rjmp .L104
  613. 602 .L100:
  614. 603 00aa 21E0 ldi r18,lo8(1)
  615. 604 00ac 30E0 ldi r19,0
  616. 605 00ae AE01 movw r20,r28
  617. 606 00b0 4F5F subi r20,-1
  618. 607 00b2 5F4F sbci r21,-1
  619. 608 00b4 60E0 ldi r22,0
  620. 609 00b6 70E0 ldi r23,0
  621. 610 00b8 CE01 movw r24,r28
  622. 611 00ba 0396 adiw r24,3
  623. 612 00bc 0E94 0000 call unvis
  624. 613 00c0 0197 sbiw r24,1
  625. 614 00c2 01F4 brne .L101
  626. 615 00c4 0E15 cp r16,r14
  627. 616 00c6 1F05 cpc r17,r15
  628. 617 00c8 00F4 brsh .L102
  629. 618 00ca 8B81 ldd r24,Y+3
  630. 619 00cc F801 movw r30,r16
  631. 620 00ce 8083 st Z,r24
  632. 621 .L102:
  633. 622 00d0 0F5F subi r16,-1
  634. 623 00d2 1F4F sbci r17,-1
  635. 624 .L101:
  636. 625 00d4 E016 cp r14,r16
  637. 626 00d6 F106 cpc r15,r17
  638. 627 00d8 00F0 brlo .L103
  639. GAS LISTING /tmp/ccf0aJYP.s page 12
  640. 628 00da F801 movw r30,r16
  641. 629 00dc 1082 st Z,__zero_reg__
  642. 630 .L103:
  643. 631 00de C801 movw r24,r16
  644. 632 00e0 8819 sub r24,r8
  645. 633 00e2 9909 sbc r25,r9
  646. 634 00e4 00C0 rjmp .L99
  647. 635 .L104:
  648. 636 00e6 8FEF ldi r24,lo8(-1)
  649. 637 00e8 9FEF ldi r25,lo8(-1)
  650. 638 .L99:
  651. 639 /* epilogue start */
  652. 640 00ea 0F90 pop __tmp_reg__
  653. 641 00ec 0F90 pop __tmp_reg__
  654. 642 00ee 0F90 pop __tmp_reg__
  655. 643 00f0 DF91 pop r29
  656. 644 00f2 CF91 pop r28
  657. 645 00f4 1F91 pop r17
  658. 646 00f6 0F91 pop r16
  659. 647 00f8 FF90 pop r15
  660. 648 00fa EF90 pop r14
  661. 649 00fc DF90 pop r13
  662. 650 00fe CF90 pop r12
  663. 651 0100 BF90 pop r11
  664. 652 0102 AF90 pop r10
  665. 653 0104 9F90 pop r9
  666. 654 0106 8F90 pop r8
  667. 655 0108 0895 ret
  668. 656 .size strnunvis, .-strnunvis
  669. 657 .ident "GCC: (GNU) 5.3.0"
  670. GAS LISTING /tmp/ccf0aJYP.s page 13
  671. DEFINED SYMBOLS
  672. *ABS*:0000000000000000 unvis.c
  673. /tmp/ccf0aJYP.s:2 *ABS*:000000000000003e __SP_H__
  674. /tmp/ccf0aJYP.s:3 *ABS*:000000000000003d __SP_L__
  675. /tmp/ccf0aJYP.s:4 *ABS*:000000000000003f __SREG__
  676. /tmp/ccf0aJYP.s:5 *ABS*:000000000000003b __RAMPZ__
  677. /tmp/ccf0aJYP.s:6 *ABS*:0000000000000000 __tmp_reg__
  678. /tmp/ccf0aJYP.s:7 *ABS*:0000000000000001 __zero_reg__
  679. /tmp/ccf0aJYP.s:11 .text.unvis:0000000000000000 unvis
  680. /tmp/ccf0aJYP.s:379 .text.strunvisx:0000000000000000 strunvisx
  681. /tmp/ccf0aJYP.s:492 .text.strunvis:0000000000000000 strunvis
  682. /tmp/ccf0aJYP.s:504 .text.strnunvis:0000000000000000 strnunvis
  683. UNDEFINED SYMBOLS
  684. __tablejump2__
  685. isxdigit
  686. tolower