| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408 |
- GAS LISTING /tmp/ccIPO1XJ.s page 1
- 1 .file "setenv.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 00 .string ""
- 11 .section .text.save_env,"ax",@progbits
- 12 .type save_env, @function
- 13 save_env:
- 14 0000 CF92 push r12
- 15 0002 DF92 push r13
- 16 0004 EF92 push r14
- 17 0006 FF92 push r15
- 18 0008 0F93 push r16
- 19 000a 1F93 push r17
- 20 000c CF93 push r28
- 21 000e DF93 push r29
- 22 0010 00D0 rcall .
- 23 0012 1F92 push __zero_reg__
- 24 0014 CDB7 in r28,__SP_L__
- 25 0016 DEB7 in r29,__SP_H__
- 26 /* prologue: function */
- 27 /* frame size = 4 */
- 28 /* stack size = 12 */
- 29 .L__stack_usage = 12
- 30 0018 8091 0000 lds r24,nut_environ
- 31 001c 9091 0000 lds r25,nut_environ+1
- 32 0020 892B or r24,r25
- 33 0022 01F4 brne .+2
- 34 0024 00C0 rjmp .L10
- 35 0026 85E4 ldi r24,lo8(69)
- 36 0028 9EE4 ldi r25,lo8(78)
- 37 002a A6E5 ldi r26,lo8(86)
- 38 002c B0E0 ldi r27,0
- 39 002e 8983 std Y+1,r24
- 40 0030 9A83 std Y+2,r25
- 41 0032 AB83 std Y+3,r26
- 42 0034 BC83 std Y+4,r27
- 43 0036 44E0 ldi r20,lo8(4)
- 44 0038 50E0 ldi r21,0
- 45 003a BE01 movw r22,r28
- 46 003c 6F5F subi r22,-1
- 47 003e 7F4F sbci r23,-1
- 48 0040 80E0 ldi r24,0
- 49 0042 91E0 ldi r25,lo8(1)
- 50 0044 0E94 0000 call NutNvMemSave
- 51 0048 892B or r24,r25
- 52 004a 01F0 breq .+2
- 53 004c 00C0 rjmp .L10
- 54 004e E090 0000 lds r14,nut_environ
- 55 0052 F090 0000 lds r15,nut_environ+1
- 56 0056 04E0 ldi r16,lo8(4)
- 57 0058 11E0 ldi r17,lo8(1)
- GAS LISTING /tmp/ccIPO1XJ.s page 2
- 58 .L4:
- 59 005a E114 cp r14,__zero_reg__
- 60 005c F104 cpc r15,__zero_reg__
- 61 005e 01F0 breq .L15
- 62 0060 F701 movw r30,r14
- 63 0062 6481 ldd r22,Z+4
- 64 0064 7581 ldd r23,Z+5
- 65 0066 FB01 movw r30,r22
- 66 0:
- 67 0068 0190 ld __tmp_reg__,Z+
- 68 006a 0020 tst __tmp_reg__
- 69 006c 01F4 brne 0b
- 70 006e 6F01 movw r12,r30
- 71 0070 C61A sub r12,r22
- 72 0072 D70A sbc r13,r23
- 73 0074 A601 movw r20,r12
- 74 0076 C801 movw r24,r16
- 75 0078 0E94 0000 call NutNvMemSave
- 76 007c 0097 sbiw r24,0
- 77 007e 01F4 brne .L12
- 78 0080 0C0D add r16,r12
- 79 0082 1D1D adc r17,r13
- 80 0084 F701 movw r30,r14
- 81 0086 6681 ldd r22,Z+6
- 82 0088 7781 ldd r23,Z+7
- 83 008a 6115 cp r22,__zero_reg__
- 84 008c 7105 cpc r23,__zero_reg__
- 85 008e 01F0 breq .L6
- 86 0090 FB01 movw r30,r22
- 87 0:
- 88 0092 0190 ld __tmp_reg__,Z+
- 89 0094 0020 tst __tmp_reg__
- 90 0096 01F4 brne 0b
- 91 0098 6F01 movw r12,r30
- 92 009a C61A sub r12,r22
- 93 009c D70A sbc r13,r23
- 94 009e A601 movw r20,r12
- 95 00a0 C801 movw r24,r16
- 96 00a2 0E94 0000 call NutNvMemSave
- 97 00a6 0097 sbiw r24,0
- 98 00a8 01F0 breq .L7
- 99 00aa 00C0 rjmp .L12
- 100 .L6:
- 101 00ac 41E0 ldi r20,lo8(1)
- 102 00ae 50E0 ldi r21,0
- 103 00b0 60E0 ldi r22,lo8(.LC0)
- 104 00b2 70E0 ldi r23,hi8(.LC0)
- 105 00b4 C801 movw r24,r16
- 106 00b6 0E94 0000 call NutNvMemSave
- 107 00ba 0097 sbiw r24,0
- 108 00bc 01F4 brne .L12
- 109 00be CC24 clr r12
- 110 00c0 C394 inc r12
- 111 00c2 D12C mov r13,__zero_reg__
- 112 .L7:
- 113 00c4 0C0D add r16,r12
- 114 00c6 1D1D adc r17,r13
- GAS LISTING /tmp/ccIPO1XJ.s page 3
- 115 00c8 F701 movw r30,r14
- 116 00ca E080 ld r14,Z
- 117 00cc F180 ldd r15,Z+1
- 118 00ce 00C0 rjmp .L4
- 119 .L10:
- 120 00d0 80E0 ldi r24,0
- 121 00d2 90E0 ldi r25,0
- 122 00d4 00C0 rjmp .L12
- 123 .L15:
- 124 00d6 41E0 ldi r20,lo8(1)
- 125 00d8 50E0 ldi r21,0
- 126 00da 60E0 ldi r22,lo8(.LC0)
- 127 00dc 70E0 ldi r23,hi8(.LC0)
- 128 00de C801 movw r24,r16
- 129 00e0 0E94 0000 call NutNvMemSave
- 130 .L12:
- 131 /* epilogue start */
- 132 00e4 0F90 pop __tmp_reg__
- 133 00e6 0F90 pop __tmp_reg__
- 134 00e8 0F90 pop __tmp_reg__
- 135 00ea 0F90 pop __tmp_reg__
- 136 00ec DF91 pop r29
- 137 00ee CF91 pop r28
- 138 00f0 1F91 pop r17
- 139 00f2 0F91 pop r16
- 140 00f4 FF90 pop r15
- 141 00f6 EF90 pop r14
- 142 00f8 DF90 pop r13
- 143 00fa CF90 pop r12
- 144 00fc 0895 ret
- 145 .size save_env, .-save_env
- 146 .section .text.setenv,"ax",@progbits
- 147 .global setenv
- 148 .type setenv, @function
- 149 setenv:
- 150 0000 CF92 push r12
- 151 0002 DF92 push r13
- 152 0004 EF92 push r14
- 153 0006 FF92 push r15
- 154 0008 0F93 push r16
- 155 000a 1F93 push r17
- 156 000c CF93 push r28
- 157 000e DF93 push r29
- 158 /* prologue: function */
- 159 /* frame size = 0 */
- 160 /* stack size = 8 */
- 161 .L__stack_usage = 8
- 162 0010 8C01 movw r16,r24
- 163 0012 6B01 movw r12,r22
- 164 0014 7A01 movw r14,r20
- 165 0016 0E94 0000 call findenv
- 166 001a EC01 movw r28,r24
- 167 001c 892B or r24,r25
- 168 001e 01F0 breq .+2
- 169 0020 00C0 rjmp .L17
- 170 0022 88E0 ldi r24,lo8(8)
- 171 0024 90E0 ldi r25,0
- GAS LISTING /tmp/ccIPO1XJ.s page 4
- 172 0026 0E94 0000 call malloc
- 173 002a EC01 movw r28,r24
- 174 002c 892B or r24,r25
- 175 002e 01F0 breq .L48
- 176 0030 88E0 ldi r24,lo8(8)
- 177 0032 DE01 movw r26,r28
- 178 0:
- 179 0034 1D92 st X+,__zero_reg__
- 180 0036 8A95 dec r24
- 181 0038 01F4 brne 0b
- 182 003a C801 movw r24,r16
- 183 003c 0E94 0000 call strdup
- 184 0040 7C01 movw r14,r24
- 185 0042 9D83 std Y+5,r25
- 186 0044 8C83 std Y+4,r24
- 187 0046 892B or r24,r25
- 188 0048 01F4 brne .L20
- 189 004a CE01 movw r24,r28
- 190 004c 0E94 0000 call free
- 191 .L48:
- 192 0050 8FEF ldi r24,lo8(-1)
- 193 0052 9FEF ldi r25,lo8(-1)
- 194 0054 00C0 rjmp .L44
- 195 .L20:
- 196 0056 0091 0000 lds r16,nut_environ
- 197 005a 1091 0000 lds r17,nut_environ+1
- 198 005e E0E0 ldi r30,0
- 199 0060 F0E0 ldi r31,0
- 200 .L21:
- 201 0062 0115 cp r16,__zero_reg__
- 202 0064 1105 cpc r17,__zero_reg__
- 203 0066 01F0 breq .L49
- 204 0068 F801 movw r30,r16
- 205 006a 6481 ldd r22,Z+4
- 206 006c 7581 ldd r23,Z+5
- 207 006e C701 movw r24,r14
- 208 0070 0E94 0000 call strcmp
- 209 0074 97FF sbrs r25,7
- 210 0076 00C0 rjmp .L22
- 211 0078 D801 movw r26,r16
- 212 007a 1296 adiw r26,2
- 213 007c ED91 ld r30,X+
- 214 007e FC91 ld r31,X
- 215 0080 1397 sbiw r26,2+1
- 216 0082 3097 sbiw r30,0
- 217 0084 01F0 breq .L23
- 218 0086 D183 std Z+1,r29
- 219 0088 C083 st Z,r28
- 220 008a 00C0 rjmp .L24
- 221 .L23:
- 222 008c D093 0000 sts nut_environ+1,r29
- 223 0090 C093 0000 sts nut_environ,r28
- 224 .L24:
- 225 0094 1983 std Y+1,r17
- 226 0096 0883 st Y,r16
- 227 0098 FB83 std Y+3,r31
- 228 009a EA83 std Y+2,r30
- GAS LISTING /tmp/ccIPO1XJ.s page 5
- 229 009c F801 movw r30,r16
- 230 009e D383 std Z+3,r29
- 231 00a0 C283 std Z+2,r28
- 232 00a2 00C0 rjmp .L25
- 233 .L22:
- 234 00a4 F801 movw r30,r16
- 235 00a6 0081 ld r16,Z
- 236 00a8 1181 ldd r17,Z+1
- 237 00aa 00C0 rjmp .L21
- 238 .L17:
- 239 00ac EF28 or r14,r15
- 240 00ae 01F4 brne .L25
- 241 .L30:
- 242 00b0 80E0 ldi r24,0
- 243 00b2 90E0 ldi r25,0
- 244 00b4 00C0 rjmp .L44
- 245 .L49:
- 246 00b6 3097 sbiw r30,0
- 247 00b8 01F0 breq .L50
- 248 00ba D183 std Z+1,r29
- 249 00bc C083 st Z,r28
- 250 00be FB83 std Y+3,r31
- 251 00c0 EA83 std Y+2,r30
- 252 .L25:
- 253 00c2 0E81 ldd r16,Y+6
- 254 00c4 1F81 ldd r17,Y+7
- 255 00c6 0115 cp r16,__zero_reg__
- 256 00c8 1105 cpc r17,__zero_reg__
- 257 00ca 01F0 breq .L29
- 258 00cc B601 movw r22,r12
- 259 00ce C801 movw r24,r16
- 260 00d0 0E94 0000 call strcmp
- 261 00d4 892B or r24,r25
- 262 00d6 01F0 breq .L30
- 263 00d8 C801 movw r24,r16
- 264 00da 0E94 0000 call free
- 265 00de 00C0 rjmp .L29
- 266 .L50:
- 267 00e0 D093 0000 sts nut_environ+1,r29
- 268 00e4 C093 0000 sts nut_environ,r28
- 269 00e8 00C0 rjmp .L25
- 270 .L29:
- 271 00ea C601 movw r24,r12
- 272 00ec 0E94 0000 call strdup
- 273 00f0 9F83 std Y+7,r25
- 274 00f2 8E83 std Y+6,r24
- 275 00f4 892B or r24,r25
- 276 00f6 01F4 brne .+2
- 277 00f8 00C0 rjmp .L48
- 278 /* epilogue start */
- 279 00fa DF91 pop r29
- 280 00fc CF91 pop r28
- 281 00fe 1F91 pop r17
- 282 0100 0F91 pop r16
- 283 0102 FF90 pop r15
- 284 0104 EF90 pop r14
- 285 0106 DF90 pop r13
- GAS LISTING /tmp/ccIPO1XJ.s page 6
- 286 0108 CF90 pop r12
- 287 010a 0C94 0000 jmp save_env
- 288 .L44:
- 289 /* epilogue start */
- 290 010e DF91 pop r29
- 291 0110 CF91 pop r28
- 292 0112 1F91 pop r17
- 293 0114 0F91 pop r16
- 294 0116 FF90 pop r15
- 295 0118 EF90 pop r14
- 296 011a DF90 pop r13
- 297 011c CF90 pop r12
- 298 011e 0895 ret
- 299 .size setenv, .-setenv
- 300 .section .text.unsetenv,"ax",@progbits
- 301 .global unsetenv
- 302 .type unsetenv, @function
- 303 unsetenv:
- 304 0000 CF93 push r28
- 305 0002 DF93 push r29
- 306 /* prologue: function */
- 307 /* frame size = 0 */
- 308 /* stack size = 2 */
- 309 .L__stack_usage = 2
- 310 0004 0E94 0000 call findenv
- 311 0008 EC01 movw r28,r24
- 312 000a 892B or r24,r25
- 313 000c 01F4 brne .L52
- 314 000e 82E0 ldi r24,lo8(2)
- 315 0010 90E0 ldi r25,0
- 316 0012 9093 0000 sts errno+1,r25
- 317 0016 8093 0000 sts errno,r24
- 318 /* epilogue start */
- 319 001a DF91 pop r29
- 320 001c CF91 pop r28
- 321 001e 0895 ret
- 322 .L52:
- 323 0020 AA81 ldd r26,Y+2
- 324 0022 BB81 ldd r27,Y+3
- 325 0024 1097 sbiw r26,0
- 326 0026 01F0 breq .L54
- 327 0028 8881 ld r24,Y
- 328 002a 9981 ldd r25,Y+1
- 329 002c 1196 adiw r26,1
- 330 002e 9C93 st X,r25
- 331 0030 8E93 st -X,r24
- 332 .L54:
- 333 0032 E881 ld r30,Y
- 334 0034 F981 ldd r31,Y+1
- 335 0036 3097 sbiw r30,0
- 336 0038 01F0 breq .L55
- 337 003a B383 std Z+3,r27
- 338 003c A283 std Z+2,r26
- 339 .L55:
- 340 003e 8091 0000 lds r24,nut_environ
- 341 0042 9091 0000 lds r25,nut_environ+1
- 342 0046 C817 cp r28,r24
- GAS LISTING /tmp/ccIPO1XJ.s page 7
- 343 0048 D907 cpc r29,r25
- 344 004a 01F4 brne .L56
- 345 004c F093 0000 sts nut_environ+1,r31
- 346 0050 E093 0000 sts nut_environ,r30
- 347 .L56:
- 348 0054 8C81 ldd r24,Y+4
- 349 0056 9D81 ldd r25,Y+5
- 350 0058 0E94 0000 call free
- 351 005c 8E81 ldd r24,Y+6
- 352 005e 9F81 ldd r25,Y+7
- 353 0060 0E94 0000 call free
- 354 0064 CE01 movw r24,r28
- 355 0066 0E94 0000 call free
- 356 /* epilogue start */
- 357 006a DF91 pop r29
- 358 006c CF91 pop r28
- 359 006e 0C94 0000 jmp save_env
- 360 .size unsetenv, .-unsetenv
- 361 .ident "GCC: (GNU) 5.3.0"
- 362 .global __do_copy_data
- GAS LISTING /tmp/ccIPO1XJ.s page 8
- DEFINED SYMBOLS
- *ABS*:0000000000000000 setenv.c
- /tmp/ccIPO1XJ.s:2 *ABS*:000000000000003e __SP_H__
- /tmp/ccIPO1XJ.s:3 *ABS*:000000000000003d __SP_L__
- /tmp/ccIPO1XJ.s:4 *ABS*:000000000000003f __SREG__
- /tmp/ccIPO1XJ.s:5 *ABS*:000000000000003b __RAMPZ__
- /tmp/ccIPO1XJ.s:6 *ABS*:0000000000000000 __tmp_reg__
- /tmp/ccIPO1XJ.s:7 *ABS*:0000000000000001 __zero_reg__
- /tmp/ccIPO1XJ.s:13 .text.save_env:0000000000000000 save_env
- /tmp/ccIPO1XJ.s:149 .text.setenv:0000000000000000 setenv
- /tmp/ccIPO1XJ.s:303 .text.unsetenv:0000000000000000 unsetenv
- UNDEFINED SYMBOLS
- nut_environ
- NutNvMemSave
- findenv
- malloc
- strdup
- free
- strcmp
- errno
- __do_copy_data
|