GAS LISTING /tmp/cc3EqpUM.s page 1 1 .file "fopen.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.fopen,"ax",@progbits 9 .global fopen 10 .type fopen, @function 11 fopen: 12 0000 AF92 push r10 13 0002 BF92 push r11 14 0004 CF92 push r12 15 0006 DF92 push r13 16 0008 EF92 push r14 17 000a FF92 push r15 18 000c 0F93 push r16 19 000e 1F93 push r17 20 0010 CF93 push r28 21 0012 DF93 push r29 22 /* prologue: function */ 23 /* frame size = 0 */ 24 /* stack size = 10 */ 25 .L__stack_usage = 10 26 0014 6C01 movw r12,r24 27 0016 CB01 movw r24,r22 28 0018 0E94 0000 call _fmode 29 001c 7C01 movw r14,r24 30 001e 0196 adiw r24,1 31 0020 01F0 breq .L12 32 0022 E0E0 ldi r30,lo8(__iob) 33 0024 F0E0 ldi r31,hi8(__iob) 34 0026 C0E0 ldi r28,0 35 0028 D0E0 ldi r29,0 36 .L4: 37 002a 0191 ld r16,Z+ 38 002c 1191 ld r17,Z+ 39 002e 0115 cp r16,__zero_reg__ 40 0030 1105 cpc r17,__zero_reg__ 41 0032 01F0 breq .L14 42 0034 2196 adiw r28,1 43 0036 C830 cpi r28,8 44 0038 D105 cpc r29,__zero_reg__ 45 003a 01F4 brne .L4 46 003c 87E1 ldi r24,lo8(23) 47 003e 90E0 ldi r25,0 48 0040 9093 0000 sts errno+1,r25 49 0044 8093 0000 sts errno,r24 50 .L12: 51 0048 00E0 ldi r16,0 52 004a 10E0 ldi r17,0 53 004c 00C0 rjmp .L3 54 .L14: 55 004e 87E0 ldi r24,lo8(7) 56 0050 90E0 ldi r25,0 57 0052 0E94 0000 call malloc GAS LISTING /tmp/cc3EqpUM.s page 2 58 0056 5C01 movw r10,r24 59 0058 CC0F lsl r28 60 005a DD1F rol r29 61 005c C050 subi r28,lo8(-(__iob)) 62 005e D040 sbci r29,hi8(-(__iob)) 63 0060 B982 std Y+1,r11 64 0062 A882 st Y,r10 65 0064 A114 cp r10,__zero_reg__ 66 0066 B104 cpc r11,__zero_reg__ 67 0068 01F0 breq .L12 68 006a B701 movw r22,r14 69 006c C601 movw r24,r12 70 006e 0E94 0000 call _open 71 0072 9C01 movw r18,r24 72 0074 F501 movw r30,r10 73 0076 9183 std Z+1,r25 74 0078 8083 st Z,r24 75 007a 8881 ld r24,Y 76 007c 9981 ldd r25,Y+1 77 007e 2F3F cpi r18,-1 78 0080 3F4F sbci r19,-1 79 0082 01F4 brne .L7 80 0084 0E94 0000 call free 81 0088 1982 std Y+1,__zero_reg__ 82 008a 1882 st Y,__zero_reg__ 83 008c 00C0 rjmp .L3 84 .L7: 85 008e 8C01 movw r16,r24 86 0090 F801 movw r30,r16 87 0092 F382 std Z+3,r15 88 0094 E282 std Z+2,r14 89 0096 1482 std Z+4,__zero_reg__ 90 0098 1682 std Z+6,__zero_reg__ 91 009a 1582 std Z+5,__zero_reg__ 92 .L3: 93 009c C801 movw r24,r16 94 /* epilogue start */ 95 009e DF91 pop r29 96 00a0 CF91 pop r28 97 00a2 1F91 pop r17 98 00a4 0F91 pop r16 99 00a6 FF90 pop r15 100 00a8 EF90 pop r14 101 00aa DF90 pop r13 102 00ac CF90 pop r12 103 00ae BF90 pop r11 104 00b0 AF90 pop r10 105 00b2 0895 ret 106 .size fopen, .-fopen 107 .global __iob 108 .data 109 .type __iob, @object 110 .size __iob, 16 111 __iob: 112 0000 0100 .word 1 113 0002 0200 .word 2 114 0004 0300 .word 3 GAS LISTING /tmp/cc3EqpUM.s page 3 115 0006 0000 0000 .zero 10 115 0000 0000 115 0000 116 .ident "GCC: (GNU) 5.3.0" 117 .global __do_copy_data GAS LISTING /tmp/cc3EqpUM.s page 4 DEFINED SYMBOLS *ABS*:0000000000000000 fopen.c /tmp/cc3EqpUM.s:2 *ABS*:000000000000003e __SP_H__ /tmp/cc3EqpUM.s:3 *ABS*:000000000000003d __SP_L__ /tmp/cc3EqpUM.s:4 *ABS*:000000000000003f __SREG__ /tmp/cc3EqpUM.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/cc3EqpUM.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/cc3EqpUM.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/cc3EqpUM.s:11 .text.fopen:0000000000000000 fopen /tmp/cc3EqpUM.s:111 .data:0000000000000000 __iob UNDEFINED SYMBOLS _fmode errno malloc _open free __do_copy_data