GAS LISTING /tmp/cc1aEi8R.s page 1 1 .file "freopen.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.freopen,"ax",@progbits 9 .global freopen 10 .type freopen, @function 11 freopen: 12 0000 9F92 push r9 13 0002 AF92 push r10 14 0004 BF92 push r11 15 0006 CF92 push r12 16 0008 DF92 push r13 17 000a EF92 push r14 18 000c FF92 push r15 19 000e 0F93 push r16 20 0010 1F93 push r17 21 0012 CF93 push r28 22 0014 DF93 push r29 23 /* prologue: function */ 24 /* frame size = 0 */ 25 /* stack size = 11 */ 26 .L__stack_usage = 11 27 0016 5C01 movw r10,r24 28 0018 CB01 movw r24,r22 29 001a 8A01 movw r16,r20 30 001c 0E94 0000 call _fmode 31 0020 7C01 movw r14,r24 32 0022 0196 adiw r24,1 33 0024 01F0 breq .L13 34 0026 E0E0 ldi r30,lo8(__iob) 35 0028 F0E0 ldi r31,hi8(__iob) 36 002a C0E0 ldi r28,0 37 002c D0E0 ldi r29,0 38 .L4: 39 002e 8191 ld r24,Z+ 40 0030 9191 ld r25,Z+ 41 0032 8017 cp r24,r16 42 0034 9107 cpc r25,r17 43 0036 01F0 breq .L15 44 0038 2196 adiw r28,1 45 003a C830 cpi r28,8 46 003c D105 cpc r29,__zero_reg__ 47 003e 01F4 brne .L4 48 0040 89E0 ldi r24,lo8(9) 49 0042 90E0 ldi r25,0 50 0044 9093 0000 sts errno+1,r25 51 0048 8093 0000 sts errno,r24 52 .L13: 53 004c E0E0 ldi r30,0 54 004e F0E0 ldi r31,0 55 0050 00C0 rjmp .L3 56 .L15: 57 0052 87E0 ldi r24,lo8(7) GAS LISTING /tmp/cc1aEi8R.s page 2 58 0054 90E0 ldi r25,0 59 0056 0E94 0000 call malloc 60 005a 6C01 movw r12,r24 61 005c 8E01 movw r16,r28 62 005e 000F lsl r16 63 0060 111F rol r17 64 0062 0050 subi r16,lo8(-(__iob)) 65 0064 1040 sbci r17,hi8(-(__iob)) 66 0066 F801 movw r30,r16 67 0068 D182 std Z+1,r13 68 006a C082 st Z,r12 69 006c C114 cp r12,__zero_reg__ 70 006e D104 cpc r13,__zero_reg__ 71 0070 01F0 breq .L13 72 0072 B701 movw r22,r14 73 0074 C501 movw r24,r10 74 0076 0E94 0000 call _open 75 007a 9C01 movw r18,r24 76 007c F601 movw r30,r12 77 007e 9183 std Z+1,r25 78 0080 8083 st Z,r24 79 0082 F801 movw r30,r16 80 0084 8081 ld r24,Z 81 0086 9181 ldd r25,Z+1 82 0088 2F3F cpi r18,-1 83 008a 3F4F sbci r19,-1 84 008c 01F4 brne .L7 85 008e 0E94 0000 call free 86 0092 42E0 ldi r20,lo8(2) 87 0094 4C17 cp r20,r28 88 0096 00F0 brlo .L8 89 0098 2196 adiw r28,1 90 009a F801 movw r30,r16 91 009c D183 std Z+1,r29 92 009e C083 st Z,r28 93 00a0 00C0 rjmp .L13 94 .L8: 95 00a2 F801 movw r30,r16 96 00a4 1182 std Z+1,__zero_reg__ 97 00a6 1082 st Z,__zero_reg__ 98 00a8 00C0 rjmp .L13 99 .L7: 100 00aa FC01 movw r30,r24 101 00ac F382 std Z+3,r15 102 00ae E282 std Z+2,r14 103 00b0 1482 std Z+4,__zero_reg__ 104 00b2 1682 std Z+6,__zero_reg__ 105 00b4 1582 std Z+5,__zero_reg__ 106 .L3: 107 00b6 CF01 movw r24,r30 108 /* epilogue start */ 109 00b8 DF91 pop r29 110 00ba CF91 pop r28 111 00bc 1F91 pop r17 112 00be 0F91 pop r16 113 00c0 FF90 pop r15 114 00c2 EF90 pop r14 GAS LISTING /tmp/cc1aEi8R.s page 3 115 00c4 DF90 pop r13 116 00c6 CF90 pop r12 117 00c8 BF90 pop r11 118 00ca AF90 pop r10 119 00cc 9F90 pop r9 120 00ce 0895 ret 121 .size freopen, .-freopen 122 .ident "GCC: (GNU) 5.3.0" GAS LISTING /tmp/cc1aEi8R.s page 4 DEFINED SYMBOLS *ABS*:0000000000000000 freopen.c /tmp/cc1aEi8R.s:2 *ABS*:000000000000003e __SP_H__ /tmp/cc1aEi8R.s:3 *ABS*:000000000000003d __SP_L__ /tmp/cc1aEi8R.s:4 *ABS*:000000000000003f __SREG__ /tmp/cc1aEi8R.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/cc1aEi8R.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/cc1aEi8R.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/cc1aEi8R.s:11 .text.freopen:0000000000000000 freopen UNDEFINED SYMBOLS _fmode __iob errno malloc _open free