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