| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405 |
- GAS LISTING /tmp/ccV11xpY.s page 1
- 1 .file "funopen.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.UserDevRead,"ax",@progbits
- 9 .type UserDevRead, @function
- 10 UserDevRead:
- 11 /* prologue: function */
- 12 /* frame size = 0 */
- 13 /* stack size = 0 */
- 14 .L__stack_usage = 0
- 15 0000 DC01 movw r26,r24
- 16 0002 ED91 ld r30,X+
- 17 0004 FC91 ld r31,X
- 18 0006 1197 sbiw r26,1
- 19 0008 0784 ldd __tmp_reg__,Z+15
- 20 000a F089 ldd r31,Z+16
- 21 000c E02D mov r30,__tmp_reg__
- 22 000e 0190 ld __tmp_reg__,Z+
- 23 0010 F081 ld r31,Z
- 24 0012 E02D mov r30,__tmp_reg__
- 25 0014 1296 adiw r26,2
- 26 0016 8D91 ld r24,X+
- 27 0018 9C91 ld r25,X
- 28 001a 1397 sbiw r26,2+1
- 29 001c 1994 eijmp
- 30 .size UserDevRead, .-UserDevRead
- 31 .section .text.UserDevWrite,"ax",@progbits
- 32 .type UserDevWrite, @function
- 33 UserDevWrite:
- 34 /* prologue: function */
- 35 /* frame size = 0 */
- 36 /* stack size = 0 */
- 37 .L__stack_usage = 0
- 38 0000 DC01 movw r26,r24
- 39 0002 ED91 ld r30,X+
- 40 0004 FC91 ld r31,X
- 41 0006 1197 sbiw r26,1
- 42 0008 0784 ldd __tmp_reg__,Z+15
- 43 000a F089 ldd r31,Z+16
- 44 000c E02D mov r30,__tmp_reg__
- 45 000e 0280 ldd __tmp_reg__,Z+2
- 46 0010 F381 ldd r31,Z+3
- 47 0012 E02D mov r30,__tmp_reg__
- 48 0014 1296 adiw r26,2
- 49 0016 8D91 ld r24,X+
- 50 0018 9C91 ld r25,X
- 51 001a 1397 sbiw r26,2+1
- 52 001c 1994 eijmp
- 53 .size UserDevWrite, .-UserDevWrite
- 54 .section .text.UserDevClose,"ax",@progbits
- 55 .type UserDevClose, @function
- 56 UserDevClose:
- 57 0000 0F93 push r16
- GAS LISTING /tmp/ccV11xpY.s page 2
- 58 0002 1F93 push r17
- 59 0004 CF93 push r28
- 60 0006 DF93 push r29
- 61 /* prologue: function */
- 62 /* frame size = 0 */
- 63 /* stack size = 4 */
- 64 .L__stack_usage = 4
- 65 0008 EC01 movw r28,r24
- 66 000a E881 ld r30,Y
- 67 000c F981 ldd r31,Y+1
- 68 000e 0784 ldd __tmp_reg__,Z+15
- 69 0010 F089 ldd r31,Z+16
- 70 0012 E02D mov r30,__tmp_reg__
- 71 0014 0680 ldd __tmp_reg__,Z+6
- 72 0016 F781 ldd r31,Z+7
- 73 0018 E02D mov r30,__tmp_reg__
- 74 001a 8A81 ldd r24,Y+2
- 75 001c 9B81 ldd r25,Y+3
- 76 001e 1995 eicall
- 77 0020 8C01 movw r16,r24
- 78 0022 E881 ld r30,Y
- 79 0024 F981 ldd r31,Y+1
- 80 0026 8785 ldd r24,Z+15
- 81 0028 9089 ldd r25,Z+16
- 82 002a 0E94 0000 call free
- 83 002e 8881 ld r24,Y
- 84 0030 9981 ldd r25,Y+1
- 85 0032 0E94 0000 call free
- 86 0036 CE01 movw r24,r28
- 87 0038 0E94 0000 call free
- 88 003c C801 movw r24,r16
- 89 /* epilogue start */
- 90 003e DF91 pop r29
- 91 0040 CF91 pop r28
- 92 0042 1F91 pop r17
- 93 0044 0F91 pop r16
- 94 0046 0895 ret
- 95 .size UserDevClose, .-UserDevClose
- 96 .section .text.UserDevIoCtl,"ax",@progbits
- 97 .type UserDevIoCtl, @function
- 98 UserDevIoCtl:
- 99 /* prologue: function */
- 100 /* frame size = 0 */
- 101 /* stack size = 0 */
- 102 .L__stack_usage = 0
- 103 0000 FA01 movw r30,r20
- 104 0002 6332 cpi r22,35
- 105 0004 7141 sbci r23,17
- 106 0006 01F4 brne .L5
- 107 0008 A081 ld r26,Z
- 108 000a B181 ldd r27,Z+1
- 109 000c 2481 ldd r18,Z+4
- 110 000e 3581 ldd r19,Z+5
- 111 0010 0280 ldd __tmp_reg__,Z+2
- 112 0012 F381 ldd r31,Z+3
- 113 0014 E02D mov r30,__tmp_reg__
- 114 0016 4081 ld r20,Z
- GAS LISTING /tmp/ccV11xpY.s page 3
- 115 0018 5181 ldd r21,Z+1
- 116 001a 6281 ldd r22,Z+2
- 117 001c 7381 ldd r23,Z+3
- 118 001e ED91 ld r30,X+
- 119 0020 FC91 ld r31,X
- 120 0022 1197 sbiw r26,1
- 121 0024 0784 ldd __tmp_reg__,Z+15
- 122 0026 F089 ldd r31,Z+16
- 123 0028 E02D mov r30,__tmp_reg__
- 124 002a 0480 ldd __tmp_reg__,Z+4
- 125 002c F581 ldd r31,Z+5
- 126 002e E02D mov r30,__tmp_reg__
- 127 0030 1296 adiw r26,2
- 128 0032 8D91 ld r24,X+
- 129 0034 9C91 ld r25,X
- 130 0036 1397 sbiw r26,2+1
- 131 0038 1995 eicall
- 132 .L5:
- 133 003a 8FEF ldi r24,lo8(-1)
- 134 003c 9FEF ldi r25,lo8(-1)
- 135 003e 0895 ret
- 136 .size UserDevIoCtl, .-UserDevIoCtl
- 137 .section .text.funopen,"ax",@progbits
- 138 .global funopen
- 139 .type funopen, @function
- 140 funopen:
- 141 0000 2F92 push r2
- 142 0002 3F92 push r3
- 143 0004 4F92 push r4
- 144 0006 5F92 push r5
- 145 0008 6F92 push r6
- 146 000a 7F92 push r7
- 147 000c 8F92 push r8
- 148 000e 9F92 push r9
- 149 0010 AF92 push r10
- 150 0012 BF92 push r11
- 151 0014 CF92 push r12
- 152 0016 DF92 push r13
- 153 0018 EF92 push r14
- 154 001a FF92 push r15
- 155 001c 0F93 push r16
- 156 001e 1F93 push r17
- 157 0020 CF93 push r28
- 158 0022 DF93 push r29
- 159 0024 00D0 rcall .
- 160 0026 00D0 rcall .
- 161 0028 CDB7 in r28,__SP_L__
- 162 002a DEB7 in r29,__SP_H__
- 163 /* prologue: function */
- 164 /* frame size = 6 */
- 165 /* stack size = 24 */
- 166 .L__stack_usage = 24
- 167 002c 5C01 movw r10,r24
- 168 002e 4B01 movw r8,r22
- 169 0030 1A01 movw r2,r20
- 170 0032 E0E0 ldi r30,lo8(__iob)
- 171 0034 F0E0 ldi r31,hi8(__iob)
- GAS LISTING /tmp/ccV11xpY.s page 4
- 172 0036 412C mov r4,__zero_reg__
- 173 0038 512C mov r5,__zero_reg__
- 174 .L8:
- 175 003a C190 ld r12,Z+
- 176 003c D190 ld r13,Z+
- 177 003e C114 cp r12,__zero_reg__
- 178 0040 D104 cpc r13,__zero_reg__
- 179 0042 01F0 breq .L31
- 180 0044 8FEF ldi r24,-1
- 181 0046 481A sub r4,r24
- 182 0048 580A sbc r5,r24
- 183 004a 98E0 ldi r25,8
- 184 004c 4916 cp r4,r25
- 185 004e 5104 cpc r5,__zero_reg__
- 186 0050 01F4 brne .L8
- 187 0052 87E1 ldi r24,lo8(23)
- 188 0054 90E0 ldi r25,0
- 189 0056 9093 0000 sts errno+1,r25
- 190 005a 8093 0000 sts errno,r24
- 191 005e C12C mov r12,__zero_reg__
- 192 0060 D12C mov r13,__zero_reg__
- 193 0062 00C0 rjmp .L9
- 194 .L31:
- 195 0064 E0E0 ldi r30,lo8(__fds)
- 196 0066 F0E0 ldi r31,hi8(__fds)
- 197 0068 1E82 std Y+6,__zero_reg__
- 198 006a 1D82 std Y+5,__zero_reg__
- 199 .L12:
- 200 006c 8191 ld r24,Z+
- 201 006e 9191 ld r25,Z+
- 202 0070 892B or r24,r25
- 203 0072 01F0 breq .L32
- 204 0074 AD81 ldd r26,Y+5
- 205 0076 BE81 ldd r27,Y+6
- 206 0078 1196 adiw r26,1
- 207 007a BE83 std Y+6,r27
- 208 007c AD83 std Y+5,r26
- 209 007e 1897 sbiw r26,8
- 210 0080 01F4 brne .L12
- 211 0082 88E1 ldi r24,lo8(24)
- 212 0084 90E0 ldi r25,0
- 213 0086 00C0 rjmp .L30
- 214 .L32:
- 215 0088 67E0 ldi r22,lo8(7)
- 216 008a 70E0 ldi r23,0
- 217 008c 81E0 ldi r24,lo8(1)
- 218 008e 90E0 ldi r25,0
- 219 0090 2B83 std Y+3,r18
- 220 0092 3C83 std Y+4,r19
- 221 0094 0E94 0000 call calloc
- 222 0098 7C01 movw r14,r24
- 223 009a 440C lsl r4
- 224 009c 551C rol r5
- 225 009e F201 movw r30,r4
- 226 00a0 E050 subi r30,lo8(-(__iob))
- 227 00a2 F040 sbci r31,hi8(-(__iob))
- 228 00a4 9183 std Z+1,r25
- GAS LISTING /tmp/ccV11xpY.s page 5
- 229 00a6 8083 st Z,r24
- 230 00a8 84E0 ldi r24,lo8(4)
- 231 00aa 90E0 ldi r25,0
- 232 00ac 0E94 0000 call malloc
- 233 00b0 3C01 movw r6,r24
- 234 00b2 65E2 ldi r22,lo8(37)
- 235 00b4 70E0 ldi r23,0
- 236 00b6 81E0 ldi r24,lo8(1)
- 237 00b8 90E0 ldi r25,0
- 238 00ba 0E94 0000 call calloc
- 239 00be AC01 movw r20,r24
- 240 00c0 88E0 ldi r24,lo8(8)
- 241 00c2 90E0 ldi r25,0
- 242 00c4 4983 std Y+1,r20
- 243 00c6 5A83 std Y+2,r21
- 244 00c8 0E94 0000 call malloc
- 245 00cc FC01 movw r30,r24
- 246 00ce 2B81 ldd r18,Y+3
- 247 00d0 3C81 ldd r19,Y+4
- 248 00d2 4981 ldd r20,Y+1
- 249 00d4 5A81 ldd r21,Y+2
- 250 00d6 E114 cp r14,__zero_reg__
- 251 00d8 F104 cpc r15,__zero_reg__
- 252 00da 01F4 brne .+2
- 253 00dc 00C0 rjmp .L14
- 254 00de 6114 cp r6,__zero_reg__
- 255 00e0 7104 cpc r7,__zero_reg__
- 256 00e2 01F0 breq .L14
- 257 00e4 4115 cp r20,__zero_reg__
- 258 00e6 5105 cpc r21,__zero_reg__
- 259 00e8 01F0 breq .L14
- 260 00ea 0097 sbiw r24,0
- 261 00ec 01F0 breq .L14
- 262 00ee 9182 std Z+1,r9
- 263 00f0 8082 st Z,r8
- 264 00f2 3382 std Z+3,r3
- 265 00f4 2282 std Z+2,r2
- 266 00f6 3583 std Z+5,r19
- 267 00f8 2483 std Z+4,r18
- 268 00fa 1783 std Z+7,r17
- 269 00fc 0683 std Z+6,r16
- 270 00fe DA01 movw r26,r20
- 271 0100 5096 adiw r26,15+1
- 272 0102 9C93 st X,r25
- 273 0104 8E93 st -X,r24
- 274 0106 1F97 sbiw r26,15
- 275 0108 80E0 ldi r24,lo8(gs(UserDevIoCtl))
- 276 010a 90E0 ldi r25,hi8(gs(UserDevIoCtl))
- 277 010c 5696 adiw r26,21+1
- 278 010e 9C93 st X,r25
- 279 0110 8E93 st -X,r24
- 280 0112 5597 sbiw r26,21
- 281 0114 80E0 ldi r24,lo8(gs(UserDevRead))
- 282 0116 90E0 ldi r25,hi8(gs(UserDevRead))
- 283 0118 5896 adiw r26,23+1
- 284 011a 9C93 st X,r25
- 285 011c 8E93 st -X,r24
- GAS LISTING /tmp/ccV11xpY.s page 6
- 286 011e 5797 sbiw r26,23
- 287 0120 80E0 ldi r24,lo8(gs(UserDevWrite))
- 288 0122 90E0 ldi r25,hi8(gs(UserDevWrite))
- 289 0124 5A96 adiw r26,25+1
- 290 0126 9C93 st X,r25
- 291 0128 8E93 st -X,r24
- 292 012a 5997 sbiw r26,25
- 293 012c 80E0 ldi r24,lo8(gs(UserDevClose))
- 294 012e 90E0 ldi r25,hi8(gs(UserDevClose))
- 295 0130 9096 adiw r26,31+1
- 296 0132 9C93 st X,r25
- 297 0134 8E93 st -X,r24
- 298 0136 5F97 sbiw r26,31
- 299 0138 F301 movw r30,r6
- 300 013a 5183 std Z+1,r21
- 301 013c 4083 st Z,r20
- 302 013e B382 std Z+3,r11
- 303 0140 A282 std Z+2,r10
- 304 0142 D701 movw r26,r14
- 305 0144 6D92 st X+,r6
- 306 0146 7C92 st X,r7
- 307 0148 8D81 ldd r24,Y+5
- 308 014a 9E81 ldd r25,Y+6
- 309 014c 880F lsl r24
- 310 014e 991F rol r25
- 311 0150 8050 subi r24,lo8(-(__fds))
- 312 0152 9040 sbci r25,hi8(-(__fds))
- 313 0154 FC01 movw r30,r24
- 314 0156 7182 std Z+1,r7
- 315 0158 6082 st Z,r6
- 316 015a 6701 movw r12,r14
- 317 015c 00C0 rjmp .L9
- 318 .L14:
- 319 015e C701 movw r24,r14
- 320 0160 0E94 0000 call free
- 321 0164 F201 movw r30,r4
- 322 0166 E050 subi r30,lo8(-(__iob))
- 323 0168 F040 sbci r31,hi8(-(__iob))
- 324 016a 1182 std Z+1,__zero_reg__
- 325 016c 1082 st Z,__zero_reg__
- 326 016e 8CE0 ldi r24,lo8(12)
- 327 0170 90E0 ldi r25,0
- 328 .L30:
- 329 0172 9093 0000 sts errno+1,r25
- 330 0176 8093 0000 sts errno,r24
- 331 .L9:
- 332 017a C601 movw r24,r12
- 333 /* epilogue start */
- 334 017c 2696 adiw r28,6
- 335 017e 0FB6 in __tmp_reg__,__SREG__
- 336 0180 F894 cli
- 337 0182 DEBF out __SP_H__,r29
- 338 0184 0FBE out __SREG__,__tmp_reg__
- 339 0186 CDBF out __SP_L__,r28
- 340 0188 DF91 pop r29
- 341 018a CF91 pop r28
- 342 018c 1F91 pop r17
- GAS LISTING /tmp/ccV11xpY.s page 7
- 343 018e 0F91 pop r16
- 344 0190 FF90 pop r15
- 345 0192 EF90 pop r14
- 346 0194 DF90 pop r13
- 347 0196 CF90 pop r12
- 348 0198 BF90 pop r11
- 349 019a AF90 pop r10
- 350 019c 9F90 pop r9
- 351 019e 8F90 pop r8
- 352 01a0 7F90 pop r7
- 353 01a2 6F90 pop r6
- 354 01a4 5F90 pop r5
- 355 01a6 4F90 pop r4
- 356 01a8 3F90 pop r3
- 357 01aa 2F90 pop r2
- 358 01ac 0895 ret
- 359 .size funopen, .-funopen
- 360 .ident "GCC: (GNU) 5.3.0"
- GAS LISTING /tmp/ccV11xpY.s page 8
- DEFINED SYMBOLS
- *ABS*:0000000000000000 funopen.c
- /tmp/ccV11xpY.s:2 *ABS*:000000000000003e __SP_H__
- /tmp/ccV11xpY.s:3 *ABS*:000000000000003d __SP_L__
- /tmp/ccV11xpY.s:4 *ABS*:000000000000003f __SREG__
- /tmp/ccV11xpY.s:5 *ABS*:000000000000003b __RAMPZ__
- /tmp/ccV11xpY.s:6 *ABS*:0000000000000000 __tmp_reg__
- /tmp/ccV11xpY.s:7 *ABS*:0000000000000001 __zero_reg__
- /tmp/ccV11xpY.s:10 .text.UserDevRead:0000000000000000 UserDevRead
- /tmp/ccV11xpY.s:33 .text.UserDevWrite:0000000000000000 UserDevWrite
- /tmp/ccV11xpY.s:56 .text.UserDevClose:0000000000000000 UserDevClose
- /tmp/ccV11xpY.s:98 .text.UserDevIoCtl:0000000000000000 UserDevIoCtl
- /tmp/ccV11xpY.s:140 .text.funopen:0000000000000000 funopen
- UNDEFINED SYMBOLS
- free
- __iob
- errno
- __fds
- calloc
- malloc
|