GAS LISTING /tmp/ccdqneNU.s page 1 1 .file "open.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._open,"ax",@progbits 9 .global _open 10 .type _open, @function 11 _open: 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 0014 CDB7 in r28,__SP_L__ 23 0016 DEB7 in r29,__SP_H__ 24 0018 2997 sbiw r28,9 25 001a 0FB6 in __tmp_reg__,__SREG__ 26 001c F894 cli 27 001e DEBF out __SP_H__,r29 28 0020 0FBE out __SREG__,__tmp_reg__ 29 0022 CDBF out __SP_L__,r28 30 /* prologue: function */ 31 /* frame size = 9 */ 32 /* stack size = 19 */ 33 .L__stack_usage = 19 34 0024 5B01 movw r10,r22 35 0026 FC01 movw r30,r24 36 0028 DE01 movw r26,r28 37 002a 1196 adiw r26,1 38 002c 90E0 ldi r25,0 39 002e AD01 movw r20,r26 40 .L2: 41 0030 6F01 movw r12,r30 42 0032 2191 ld r18,Z+ 43 0034 2223 tst r18 44 0036 01F0 breq .L3 45 0038 2A33 cpi r18,lo8(58) 46 003a 01F0 breq .L3 47 003c 9830 cpi r25,lo8(8) 48 003e 01F0 breq .L3 49 0040 2D93 st X+,r18 50 0042 9F5F subi r25,lo8(-(1)) 51 0044 00C0 rjmp .L2 52 .L3: 53 0046 FA01 movw r30,r20 54 0048 E90F add r30,r25 55 004a F11D adc r31,__zero_reg__ 56 004c 1082 st Z,__zero_reg__ 57 004e CA01 movw r24,r20 GAS LISTING /tmp/ccdqneNU.s page 2 58 0050 0E94 0000 call NutDeviceLookup 59 0054 0097 sbiw r24,0 60 0056 01F4 brne .L5 61 0058 82E0 ldi r24,lo8(2) 62 005a 90E0 ldi r25,0 63 005c 00C0 rjmp .L19 64 .L5: 65 005e E0E0 ldi r30,lo8(__fds) 66 0060 F0E0 ldi r31,hi8(__fds) 67 0062 E12C mov r14,__zero_reg__ 68 0064 F12C mov r15,__zero_reg__ 69 .L7: 70 0066 2191 ld r18,Z+ 71 0068 3191 ld r19,Z+ 72 006a 232B or r18,r19 73 006c 01F0 breq .L22 74 006e 2FEF ldi r18,-1 75 0070 E21A sub r14,r18 76 0072 F20A sbc r15,r18 77 0074 A8E0 ldi r26,8 78 0076 EA16 cp r14,r26 79 0078 F104 cpc r15,__zero_reg__ 80 007a 01F4 brne .L7 81 007c 88E1 ldi r24,lo8(24) 82 007e 90E0 ldi r25,0 83 .L19: 84 0080 9093 0000 sts errno+1,r25 85 0084 8093 0000 sts errno,r24 86 .L20: 87 0088 8FEF ldi r24,lo8(-1) 88 008a 9FEF ldi r25,lo8(-1) 89 008c 00C0 rjmp .L6 90 .L22: 91 008e 8701 movw r16,r14 92 0090 000F lsl r16 93 0092 111F rol r17 94 0094 F801 movw r30,r16 95 0096 E050 subi r30,lo8(-(__fds)) 96 0098 F040 sbci r31,hi8(-(__fds)) 97 009a 2FEF ldi r18,lo8(-1) 98 009c 3FEF ldi r19,lo8(-1) 99 009e 3183 std Z+1,r19 100 00a0 2083 st Z,r18 101 00a2 F601 movw r30,r12 102 00a4 2081 ld r18,Z 103 00a6 2A33 cpi r18,lo8(58) 104 00a8 01F4 brne .L11 105 00aa B601 movw r22,r12 106 00ac 6F5F subi r22,-1 107 00ae 7F4F sbci r23,-1 108 00b0 00C0 rjmp .L9 109 .L11: 110 00b2 60E0 ldi r22,0 111 00b4 70E0 ldi r23,0 112 .L9: 113 00b6 DC01 movw r26,r24 114 00b8 5D96 adiw r26,29 GAS LISTING /tmp/ccdqneNU.s page 3 115 00ba ED91 ld r30,X+ 116 00bc FC91 ld r31,X 117 00be 5E97 sbiw r26,29+1 118 00c0 20E0 ldi r18,0 119 00c2 30E0 ldi r19,0 120 00c4 A501 movw r20,r10 121 00c6 1995 eicall 122 00c8 F801 movw r30,r16 123 00ca E050 subi r30,lo8(-(__fds)) 124 00cc F040 sbci r31,hi8(-(__fds)) 125 00ce 8F3F cpi r24,-1 126 00d0 BFEF ldi r27,-1 127 00d2 9B07 cpc r25,r27 128 00d4 01F4 brne .L10 129 00d6 1182 std Z+1,__zero_reg__ 130 00d8 1082 st Z,__zero_reg__ 131 00da 00C0 rjmp .L20 132 .L10: 133 00dc 9183 std Z+1,r25 134 00de 8083 st Z,r24 135 00e0 C701 movw r24,r14 136 .L6: 137 /* epilogue start */ 138 00e2 2996 adiw r28,9 139 00e4 0FB6 in __tmp_reg__,__SREG__ 140 00e6 F894 cli 141 00e8 DEBF out __SP_H__,r29 142 00ea 0FBE out __SREG__,__tmp_reg__ 143 00ec CDBF out __SP_L__,r28 144 00ee DF91 pop r29 145 00f0 CF91 pop r28 146 00f2 1F91 pop r17 147 00f4 0F91 pop r16 148 00f6 FF90 pop r15 149 00f8 EF90 pop r14 150 00fa DF90 pop r13 151 00fc CF90 pop r12 152 00fe BF90 pop r11 153 0100 AF90 pop r10 154 0102 0895 ret 155 .size _open, .-_open 156 .global __fds 157 .section .bss 158 .type __fds, @object 159 .size __fds, 16 160 __fds: 161 0000 0000 0000 .zero 16 161 0000 0000 161 0000 0000 161 0000 0000 162 .ident "GCC: (GNU) 5.3.0" 163 .global __do_clear_bss GAS LISTING /tmp/ccdqneNU.s page 4 DEFINED SYMBOLS *ABS*:0000000000000000 open.c /tmp/ccdqneNU.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccdqneNU.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccdqneNU.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccdqneNU.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccdqneNU.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccdqneNU.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccdqneNU.s:11 .text._open:0000000000000000 _open /tmp/ccdqneNU.s:160 .bss:0000000000000000 __fds UNDEFINED SYMBOLS NutDeviceLookup errno __do_clear_bss