| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- 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
|