GAS LISTING /tmp/ccKrwvXe.s page 1 1 .file "dirname.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 .rodata.str1.1,"aMS",@progbits,1 9 .LC0: 10 0000 2F00 .string "/" 11 .LC1: 12 0002 2E00 .string "." 13 .section .text.dirname,"ax",@progbits 14 .global dirname 15 .type dirname, @function 16 dirname: 17 0000 EF92 push r14 18 0002 FF92 push r15 19 0004 0F93 push r16 20 0006 1F93 push r17 21 0008 CF93 push r28 22 000a DF93 push r29 23 /* prologue: function */ 24 /* frame size = 0 */ 25 /* stack size = 6 */ 26 .L__stack_usage = 6 27 000c 7C01 movw r14,r24 28 000e 0091 0000 lds r16,bname.2206 29 0012 1091 0000 lds r17,bname.2206+1 30 0016 0115 cp r16,__zero_reg__ 31 0018 1105 cpc r17,__zero_reg__ 32 001a 01F0 breq .L2 33 .L6: 34 001c E114 cp r14,__zero_reg__ 35 001e F104 cpc r15,__zero_reg__ 36 0020 01F4 brne .L34 37 0022 00C0 rjmp .L3 38 .L2: 39 0024 80E0 ldi r24,0 40 0026 91E0 ldi r25,lo8(1) 41 0028 0E94 0000 call malloc 42 002c 9093 0000 sts bname.2206+1,r25 43 0030 8093 0000 sts bname.2206,r24 44 0034 892B or r24,r25 45 0036 01F4 brne .L6 46 0038 00C0 rjmp .L27 47 .L34: 48 003a F701 movw r30,r14 49 003c 8081 ld r24,Z 50 003e 8111 cpse r24,__zero_reg__ 51 0040 00C0 rjmp .L7 52 .L3: 53 0042 0091 0000 lds r16,bname.2206 54 0046 1091 0000 lds r17,bname.2206+1 55 004a 40E0 ldi r20,0 56 004c 51E0 ldi r21,lo8(1) 57 004e 60E0 ldi r22,lo8(.LC1) GAS LISTING /tmp/ccKrwvXe.s page 2 58 0050 70E0 ldi r23,hi8(.LC1) 59 0052 00C0 rjmp .L37 60 .L7: 61 0054 F701 movw r30,r14 62 0: 63 0056 0190 ld __tmp_reg__,Z+ 64 0058 0020 tst __tmp_reg__ 65 005a 01F4 brne 0b 66 005c 3297 sbiw r30,2 67 .L8: 68 005e EE16 cp r14,r30 69 0060 FF06 cpc r15,r31 70 0062 00F4 brsh .L9 71 0064 9081 ld r25,Z 72 0066 9F32 cpi r25,lo8(47) 73 0068 01F4 brne .L12 74 006a 3197 sbiw r30,1 75 006c 00C0 rjmp .L8 76 .L13: 77 006e 3197 sbiw r30,1 78 0070 EE16 cp r14,r30 79 0072 FF06 cpc r15,r31 80 0074 00F4 brsh .L9 81 .L12: 82 0076 9081 ld r25,Z 83 0078 9F32 cpi r25,lo8(47) 84 007a 01F4 brne .L13 85 007c 00C0 rjmp .L39 86 .L9: 87 007e EE16 cp r14,r30 88 0080 FF06 cpc r15,r31 89 0082 01F4 brne .L20 90 0084 8F32 cpi r24,lo8(47) 91 0086 01F0 breq .L23 92 0088 60E0 ldi r22,lo8(.LC1) 93 008a 70E0 ldi r23,hi8(.LC1) 94 008c 00C0 rjmp .L16 95 .L39: 96 008e EE16 cp r14,r30 97 0090 FF06 cpc r15,r31 98 0092 01F4 brne .L20 99 .L23: 100 0094 60E0 ldi r22,lo8(.LC0) 101 0096 70E0 ldi r23,hi8(.LC0) 102 .L16: 103 0098 0091 0000 lds r16,bname.2206 104 009c 1091 0000 lds r17,bname.2206+1 105 00a0 40E0 ldi r20,0 106 00a2 51E0 ldi r21,lo8(1) 107 .L37: 108 00a4 C801 movw r24,r16 109 00a6 0E94 0000 call strncpy 110 00aa 00C0 rjmp .L27 111 .L17: 112 00ac 8081 ld r24,Z 113 00ae 8F32 cpi r24,lo8(47) 114 00b0 01F4 brne .L21 GAS LISTING /tmp/ccKrwvXe.s page 3 115 .L20: 116 00b2 3197 sbiw r30,1 117 00b4 EE16 cp r14,r30 118 00b6 FF06 cpc r15,r31 119 00b8 00F0 brlo .L17 120 .L21: 121 00ba EF01 movw r28,r30 122 00bc CE19 sub r28,r14 123 00be DF09 sbc r29,r15 124 00c0 CF3F cpi r28,-1 125 00c2 D105 cpc r29,__zero_reg__ 126 00c4 04F0 brlt .L36 127 00c6 8FE3 ldi r24,lo8(63) 128 00c8 90E0 ldi r25,0 129 00ca 9093 0000 sts errno+1,r25 130 00ce 8093 0000 sts errno,r24 131 00d2 00E0 ldi r16,0 132 00d4 10E0 ldi r17,0 133 00d6 00C0 rjmp .L27 134 .L36: 135 00d8 0091 0000 lds r16,bname.2206 136 00dc 1091 0000 lds r17,bname.2206+1 137 00e0 B701 movw r22,r14 138 00e2 C801 movw r24,r16 139 00e4 0E94 0000 call strcpy 140 00e8 F801 movw r30,r16 141 00ea EC0F add r30,r28 142 00ec FD1F adc r31,r29 143 00ee 1182 std Z+1,__zero_reg__ 144 .L27: 145 00f0 C801 movw r24,r16 146 /* epilogue start */ 147 00f2 DF91 pop r29 148 00f4 CF91 pop r28 149 00f6 1F91 pop r17 150 00f8 0F91 pop r16 151 00fa FF90 pop r15 152 00fc EF90 pop r14 153 00fe 0895 ret 154 .size dirname, .-dirname 155 .local bname.2206 156 .comm bname.2206,2,1 157 .ident "GCC: (GNU) 5.3.0" 158 .global __do_copy_data 159 .global __do_clear_bss GAS LISTING /tmp/ccKrwvXe.s page 4 DEFINED SYMBOLS *ABS*:0000000000000000 dirname.c /tmp/ccKrwvXe.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccKrwvXe.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccKrwvXe.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccKrwvXe.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccKrwvXe.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccKrwvXe.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccKrwvXe.s:16 .text.dirname:0000000000000000 dirname .bss:0000000000000000 bname.2206 UNDEFINED SYMBOLS malloc strncpy errno strcpy __do_copy_data __do_clear_bss