uromfs.lst 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  1. GAS LISTING /tmp/ccx5uQJg.s page 1
  2. 1 .file "uromfs.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.UromWrite_P,"ax",@progbits
  10. 9 .type UromWrite_P, @function
  11. 10 UromWrite_P:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 8FEF ldi r24,lo8(-1)
  17. 16 0002 9FEF ldi r25,lo8(-1)
  18. 17 0004 0895 ret
  19. 18 .size UromWrite_P, .-UromWrite_P
  20. 19 .section .text.UromSize,"ax",@progbits
  21. 20 .type UromSize, @function
  22. 21 UromSize:
  23. 22 /* prologue: function */
  24. 23 /* frame size = 0 */
  25. 24 /* stack size = 0 */
  26. 25 .L__stack_usage = 0
  27. 26 0000 DC01 movw r26,r24
  28. 27 0002 1296 adiw r26,2
  29. 28 0004 ED91 ld r30,X+
  30. 29 0006 FC91 ld r31,X
  31. 30 0008 1397 sbiw r26,2+1
  32. 31 000a 0190 ld __tmp_reg__,Z+
  33. 32 000c F081 ld r31,Z
  34. 33 000e E02D mov r30,__tmp_reg__
  35. 34 0010 6481 ldd r22,Z+4
  36. 35 0012 7581 ldd r23,Z+5
  37. 36 0014 80E0 ldi r24,0
  38. 37 0016 90E0 ldi r25,0
  39. 38 0018 0895 ret
  40. 39 .size UromSize, .-UromSize
  41. 40 .section .text.UromOpen,"ax",@progbits
  42. 41 .type UromOpen, @function
  43. 42 UromOpen:
  44. 43 0000 CF92 push r12
  45. 44 0002 DF92 push r13
  46. 45 0004 EF92 push r14
  47. 46 0006 FF92 push r15
  48. 47 0008 0F93 push r16
  49. 48 000a 1F93 push r17
  50. 49 000c CF93 push r28
  51. 50 000e DF93 push r29
  52. 51 /* prologue: function */
  53. 52 /* frame size = 0 */
  54. 53 /* stack size = 8 */
  55. 54 .L__stack_usage = 8
  56. 55 0010 6C01 movw r12,r24
  57. 56 0012 7B01 movw r14,r22
  58. 57 0014 84E0 ldi r24,lo8(4)
  59. GAS LISTING /tmp/ccx5uQJg.s page 2
  60. 58 0016 90E0 ldi r25,0
  61. 59 0018 0E94 0000 call malloc
  62. 60 001c EC01 movw r28,r24
  63. 61 001e 892B or r24,r25
  64. 62 0020 01F4 brne .L4
  65. 63 0022 8CE0 ldi r24,lo8(12)
  66. 64 0024 90E0 ldi r25,0
  67. 65 0026 9093 0000 sts errno+1,r25
  68. 66 002a 8093 0000 sts errno,r24
  69. 67 002e 00C0 rjmp .L18
  70. 68 .L4:
  71. 69 0030 F701 movw r30,r14
  72. 70 0032 8081 ld r24,Z
  73. 71 0034 8F32 cpi r24,lo8(47)
  74. 72 0036 01F4 brne .L6
  75. 73 0038 FFEF ldi r31,-1
  76. 74 003a EF1A sub r14,r31
  77. 75 003c FF0A sbc r15,r31
  78. 76 .L6:
  79. 77 003e 0091 0000 lds r16,romEntryList
  80. 78 0042 1091 0000 lds r17,romEntryList+1
  81. 79 .L7:
  82. 80 0046 0115 cp r16,__zero_reg__
  83. 81 0048 1105 cpc r17,__zero_reg__
  84. 82 004a 01F0 breq .L20
  85. 83 004c F801 movw r30,r16
  86. 84 004e 6281 ldd r22,Z+2
  87. 85 0050 7381 ldd r23,Z+3
  88. 86 0052 C701 movw r24,r14
  89. 87 0054 0E94 0000 call strcmp_P
  90. 88 0058 892B or r24,r25
  91. 89 005a 01F0 breq .L8
  92. 90 005c F801 movw r30,r16
  93. 91 005e 0081 ld r16,Z
  94. 92 0060 1181 ldd r17,Z+1
  95. 93 0062 00C0 rjmp .L7
  96. 94 .L20:
  97. 95 0064 82E0 ldi r24,lo8(2)
  98. 96 0066 90E0 ldi r25,0
  99. 97 .L17:
  100. 98 0068 9093 0000 sts errno+1,r25
  101. 99 006c 8093 0000 sts errno,r24
  102. 100 0070 CE01 movw r24,r28
  103. 101 0072 0E94 0000 call free
  104. 102 0076 00C0 rjmp .L18
  105. 103 .L8:
  106. 104 0078 64E0 ldi r22,lo8(4)
  107. 105 007a 70E0 ldi r23,0
  108. 106 007c 81E0 ldi r24,lo8(1)
  109. 107 007e 90E0 ldi r25,0
  110. 108 0080 0E94 0000 call calloc
  111. 109 0084 0097 sbiw r24,0
  112. 110 0086 01F0 breq .L21
  113. 111 0088 FC01 movw r30,r24
  114. 112 008a 1183 std Z+1,r17
  115. 113 008c 0083 st Z,r16
  116. 114 008e D982 std Y+1,r13
  117. GAS LISTING /tmp/ccx5uQJg.s page 3
  118. 115 0090 C882 st Y,r12
  119. 116 0092 9B83 std Y+3,r25
  120. 117 0094 8A83 std Y+2,r24
  121. 118 0096 CE01 movw r24,r28
  122. 119 0098 00C0 rjmp .L14
  123. 120 .L21:
  124. 121 009a 8CE0 ldi r24,lo8(12)
  125. 122 009c 90E0 ldi r25,0
  126. 123 009e 00C0 rjmp .L17
  127. 124 .L18:
  128. 125 00a0 8FEF ldi r24,lo8(-1)
  129. 126 00a2 9FEF ldi r25,lo8(-1)
  130. 127 .L14:
  131. 128 /* epilogue start */
  132. 129 00a4 DF91 pop r29
  133. 130 00a6 CF91 pop r28
  134. 131 00a8 1F91 pop r17
  135. 132 00aa 0F91 pop r16
  136. 133 00ac FF90 pop r15
  137. 134 00ae EF90 pop r14
  138. 135 00b0 DF90 pop r13
  139. 136 00b2 CF90 pop r12
  140. 137 00b4 0895 ret
  141. 138 .size UromOpen, .-UromOpen
  142. 139 .section .text.UromRead,"ax",@progbits
  143. 140 .type UromRead, @function
  144. 141 UromRead:
  145. 142 0000 0F93 push r16
  146. 143 0002 1F93 push r17
  147. 144 0004 CF93 push r28
  148. 145 0006 DF93 push r29
  149. 146 /* prologue: function */
  150. 147 /* frame size = 0 */
  151. 148 /* stack size = 4 */
  152. 149 .L__stack_usage = 4
  153. 150 0008 9B01 movw r18,r22
  154. 151 000a EA01 movw r28,r20
  155. 152 000c DC01 movw r26,r24
  156. 153 000e 1296 adiw r26,2
  157. 154 0010 0D91 ld r16,X+
  158. 155 0012 1C91 ld r17,X
  159. 156 0014 1397 sbiw r26,2+1
  160. 157 0016 D801 movw r26,r16
  161. 158 0018 ED91 ld r30,X+
  162. 159 001a FC91 ld r31,X
  163. 160 001c 1197 sbiw r26,1
  164. 161 001e 1296 adiw r26,2
  165. 162 0020 6D91 ld r22,X+
  166. 163 0022 7C91 ld r23,X
  167. 164 0024 1397 sbiw r26,2+1
  168. 165 0026 8481 ldd r24,Z+4
  169. 166 0028 9581 ldd r25,Z+5
  170. 167 002a 861B sub r24,r22
  171. 168 002c 970B sbc r25,r23
  172. 169 002e 8417 cp r24,r20
  173. 170 0030 9507 cpc r25,r21
  174. 171 0032 00F4 brsh .L23
  175. GAS LISTING /tmp/ccx5uQJg.s page 4
  176. 172 0034 EC01 movw r28,r24
  177. 173 .L23:
  178. 174 0036 2097 sbiw r28,0
  179. 175 0038 01F0 breq .L24
  180. 176 003a 8681 ldd r24,Z+6
  181. 177 003c 9781 ldd r25,Z+7
  182. 178 003e 680F add r22,r24
  183. 179 0040 791F adc r23,r25
  184. 180 0042 AE01 movw r20,r28
  185. 181 0044 C901 movw r24,r18
  186. 182 0046 0E94 0000 call memcpy_P
  187. 183 004a F801 movw r30,r16
  188. 184 004c 8281 ldd r24,Z+2
  189. 185 004e 9381 ldd r25,Z+3
  190. 186 0050 8C0F add r24,r28
  191. 187 0052 9D1F adc r25,r29
  192. 188 0054 9383 std Z+3,r25
  193. 189 0056 8283 std Z+2,r24
  194. 190 .L24:
  195. 191 0058 CE01 movw r24,r28
  196. 192 /* epilogue start */
  197. 193 005a DF91 pop r29
  198. 194 005c CF91 pop r28
  199. 195 005e 1F91 pop r17
  200. 196 0060 0F91 pop r16
  201. 197 0062 0895 ret
  202. 198 .size UromRead, .-UromRead
  203. 199 .section .text.UromIOCtl,"ax",@progbits
  204. 200 .global UromIOCtl
  205. 201 .type UromIOCtl, @function
  206. 202 UromIOCtl:
  207. 203 0000 0F93 push r16
  208. 204 0002 1F93 push r17
  209. 205 0004 CF93 push r28
  210. 206 0006 DF93 push r29
  211. 207 /* prologue: function */
  212. 208 /* frame size = 0 */
  213. 209 /* stack size = 4 */
  214. 210 .L__stack_usage = 4
  215. 211 0008 EA01 movw r28,r20
  216. 212 000a 6332 cpi r22,35
  217. 213 000c 7141 sbci r23,17
  218. 214 000e 01F4 brne .L29
  219. 215 0010 2A81 ldd r18,Y+2
  220. 216 0012 3B81 ldd r19,Y+3
  221. 217 0014 E881 ld r30,Y
  222. 218 0016 F981 ldd r31,Y+1
  223. 219 0018 0281 ldd r16,Z+2
  224. 220 001a 1381 ldd r17,Z+3
  225. 221 001c F801 movw r30,r16
  226. 222 001e 4081 ld r20,Z
  227. 223 0020 5181 ldd r21,Z+1
  228. 224 0022 F901 movw r30,r18
  229. 225 0024 8081 ld r24,Z
  230. 226 0026 9181 ldd r25,Z+1
  231. 227 0028 A281 ldd r26,Z+2
  232. 228 002a B381 ldd r27,Z+3
  233. GAS LISTING /tmp/ccx5uQJg.s page 5
  234. 229 002c 6C81 ldd r22,Y+4
  235. 230 002e 7D81 ldd r23,Y+5
  236. 231 0030 6130 cpi r22,1
  237. 232 0032 7105 cpc r23,__zero_reg__
  238. 233 0034 01F0 breq .L32
  239. 234 0036 6230 cpi r22,2
  240. 235 0038 7105 cpc r23,__zero_reg__
  241. 236 003a 01F4 brne .L31
  242. 237 003c FA01 movw r30,r20
  243. 238 003e 6481 ldd r22,Z+4
  244. 239 0040 7581 ldd r23,Z+5
  245. 240 0042 00C0 rjmp .L34
  246. 241 .L32:
  247. 242 0044 F801 movw r30,r16
  248. 243 0046 6281 ldd r22,Z+2
  249. 244 0048 7381 ldd r23,Z+3
  250. 245 .L34:
  251. 246 004a 860F add r24,r22
  252. 247 004c 971F adc r25,r23
  253. 248 004e A11D adc r26,__zero_reg__
  254. 249 0050 B11D adc r27,__zero_reg__
  255. 250 .L31:
  256. 251 0052 B7FD sbrc r27,7
  257. 252 0054 00C0 rjmp .L29
  258. 253 0056 FA01 movw r30,r20
  259. 254 0058 4481 ldd r20,Z+4
  260. 255 005a 5581 ldd r21,Z+5
  261. 256 005c 60E0 ldi r22,0
  262. 257 005e 70E0 ldi r23,0
  263. 258 0060 4817 cp r20,r24
  264. 259 0062 5907 cpc r21,r25
  265. 260 0064 6A07 cpc r22,r26
  266. 261 0066 7B07 cpc r23,r27
  267. 262 0068 04F0 brlt .L29
  268. 263 006a F801 movw r30,r16
  269. 264 006c 9383 std Z+3,r25
  270. 265 006e 8283 std Z+2,r24
  271. 266 0070 F901 movw r30,r18
  272. 267 0072 8083 st Z,r24
  273. 268 0074 9183 std Z+1,r25
  274. 269 0076 A283 std Z+2,r26
  275. 270 0078 B383 std Z+3,r27
  276. 271 .L29:
  277. 272 007a 8FEF ldi r24,lo8(-1)
  278. 273 007c 9FEF ldi r25,lo8(-1)
  279. 274 /* epilogue start */
  280. 275 007e DF91 pop r29
  281. 276 0080 CF91 pop r28
  282. 277 0082 1F91 pop r17
  283. 278 0084 0F91 pop r16
  284. 279 0086 0895 ret
  285. 280 .size UromIOCtl, .-UromIOCtl
  286. 281 .section .text.UromClose,"ax",@progbits
  287. 282 .type UromClose, @function
  288. 283 UromClose:
  289. 284 0000 CF93 push r28
  290. 285 0002 DF93 push r29
  291. GAS LISTING /tmp/ccx5uQJg.s page 6
  292. 286 /* prologue: function */
  293. 287 /* frame size = 0 */
  294. 288 /* stack size = 2 */
  295. 289 .L__stack_usage = 2
  296. 290 0004 EC01 movw r28,r24
  297. 291 0006 0197 sbiw r24,1
  298. 292 0008 8E3F cpi r24,-2
  299. 293 000a 9F4F sbci r25,-1
  300. 294 000c 00F4 brsh .L36
  301. 295 000e 8A81 ldd r24,Y+2
  302. 296 0010 9B81 ldd r25,Y+3
  303. 297 0012 0097 sbiw r24,0
  304. 298 0014 01F0 breq .L37
  305. 299 0016 0E94 0000 call free
  306. 300 .L37:
  307. 301 001a CE01 movw r24,r28
  308. 302 001c 0E94 0000 call free
  309. 303 .L36:
  310. 304 0020 80E0 ldi r24,0
  311. 305 0022 90E0 ldi r25,0
  312. 306 /* epilogue start */
  313. 307 0024 DF91 pop r29
  314. 308 0026 CF91 pop r28
  315. 309 0028 0895 ret
  316. 310 .size UromClose, .-UromClose
  317. 311 .section .text.UromWrite,"ax",@progbits
  318. 312 .type UromWrite, @function
  319. 313 UromWrite:
  320. 314 /* prologue: function */
  321. 315 /* frame size = 0 */
  322. 316 /* stack size = 0 */
  323. 317 .L__stack_usage = 0
  324. 318 0000 8FEF ldi r24,lo8(-1)
  325. 319 0002 9FEF ldi r25,lo8(-1)
  326. 320 0004 0895 ret
  327. 321 .size UromWrite, .-UromWrite
  328. 322 .global devUrom
  329. 323 .data
  330. 324 .type devUrom, @object
  331. 325 .size devUrom, 37
  332. 326 devUrom:
  333. 327 0000 0000 .word 0
  334. 328 0002 55 .byte 85
  335. 329 0003 52 .byte 82
  336. 330 0004 4F .byte 79
  337. 331 0005 4D .byte 77
  338. 332 0006 00 .byte 0
  339. 333 0007 00 .byte 0
  340. 334 0008 00 .byte 0
  341. 335 0009 00 .byte 0
  342. 336 000a 00 .byte 0
  343. 337 000b 01 .byte 1
  344. 338 000c 0000 .word 0
  345. 339 000e 00 .byte 0
  346. 340 000f 0000 .word 0
  347. 341 0011 0000 .word 0
  348. 342 0013 0000 .word 0
  349. GAS LISTING /tmp/ccx5uQJg.s page 7
  350. 343 0015 0000 .word gs(UromIOCtl)
  351. 344 0017 0000 .word gs(UromRead)
  352. 345 0019 0000 .word gs(UromWrite)
  353. 346 001b 0000 .word gs(UromWrite_P)
  354. 347 001d 0000 .word gs(UromOpen)
  355. 348 001f 0000 .word gs(UromClose)
  356. 349 0021 0000 .word gs(UromSize)
  357. 350 0023 0000 .word 0
  358. 351 .ident "GCC: (GNU) 5.3.0"
  359. 352 .global __do_copy_data
  360. GAS LISTING /tmp/ccx5uQJg.s page 8
  361. DEFINED SYMBOLS
  362. *ABS*:0000000000000000 uromfs.c
  363. /tmp/ccx5uQJg.s:2 *ABS*:000000000000003e __SP_H__
  364. /tmp/ccx5uQJg.s:3 *ABS*:000000000000003d __SP_L__
  365. /tmp/ccx5uQJg.s:4 *ABS*:000000000000003f __SREG__
  366. /tmp/ccx5uQJg.s:5 *ABS*:000000000000003b __RAMPZ__
  367. /tmp/ccx5uQJg.s:6 *ABS*:0000000000000000 __tmp_reg__
  368. /tmp/ccx5uQJg.s:7 *ABS*:0000000000000001 __zero_reg__
  369. /tmp/ccx5uQJg.s:10 .text.UromWrite_P:0000000000000000 UromWrite_P
  370. /tmp/ccx5uQJg.s:21 .text.UromSize:0000000000000000 UromSize
  371. /tmp/ccx5uQJg.s:42 .text.UromOpen:0000000000000000 UromOpen
  372. /tmp/ccx5uQJg.s:141 .text.UromRead:0000000000000000 UromRead
  373. /tmp/ccx5uQJg.s:202 .text.UromIOCtl:0000000000000000 UromIOCtl
  374. /tmp/ccx5uQJg.s:283 .text.UromClose:0000000000000000 UromClose
  375. /tmp/ccx5uQJg.s:313 .text.UromWrite:0000000000000000 UromWrite
  376. /tmp/ccx5uQJg.s:326 .data:0000000000000000 devUrom
  377. UNDEFINED SYMBOLS
  378. malloc
  379. errno
  380. romEntryList
  381. strcmp_P
  382. free
  383. calloc
  384. memcpy_P
  385. __do_copy_data