GAS LISTING /tmp/cc0hg0pY.s page 1 1 .file "localtime.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.localtime_r,"ax",@progbits 9 .global localtime_r 10 .type localtime_r, @function 11 localtime_r: 12 0000 8F92 push r8 13 0002 9F92 push r9 14 0004 AF92 push r10 15 0006 BF92 push r11 16 0008 CF92 push r12 17 000a DF92 push r13 18 000c EF92 push r14 19 000e FF92 push r15 20 0010 0F93 push r16 21 0012 1F93 push r17 22 0014 CF93 push r28 23 0016 DF93 push r29 24 0018 00D0 rcall . 25 001a 1F92 push __zero_reg__ 26 001c CDB7 in r28,__SP_L__ 27 001e DEB7 in r29,__SP_H__ 28 /* prologue: function */ 29 /* frame size = 4 */ 30 /* stack size = 16 */ 31 .L__stack_usage = 16 32 0020 8B01 movw r16,r22 33 0022 FC01 movw r30,r24 34 0024 4081 ld r20,Z 35 0026 5181 ldd r21,Z+1 36 0028 6281 ldd r22,Z+2 37 002a 7381 ldd r23,Z+3 38 002c 6A01 movw r12,r20 39 002e 7B01 movw r14,r22 40 0030 F1E8 ldi r31,-127 41 0032 CF1A sub r12,r31 42 0034 F4EF ldi r31,-12 43 0036 DF0A sbc r13,r31 44 0038 F3E0 ldi r31,3 45 003a EF0A sbc r14,r31 46 003c F108 sbc r15,__zero_reg__ 47 003e 2EEF ldi r18,-2 48 0040 C216 cp r12,r18 49 0042 26E1 ldi r18,22 50 0044 D206 cpc r13,r18 51 0046 28EF ldi r18,-8 52 0048 E206 cpc r14,r18 53 004a 2FE7 ldi r18,127 54 004c F206 cpc r15,r18 55 004e 00F0 brlo .+2 56 0050 00C0 rjmp .L2 57 0052 8091 0000 lds r24,_timezone GAS LISTING /tmp/cc0hg0pY.s page 2 58 0056 9091 0000 lds r25,_timezone+1 59 005a A091 0000 lds r26,_timezone+2 60 005e B091 0000 lds r27,_timezone+3 61 0062 481B sub r20,r24 62 0064 590B sbc r21,r25 63 0066 6A0B sbc r22,r26 64 0068 7B0B sbc r23,r27 65 006a 4983 std Y+1,r20 66 006c 5A83 std Y+2,r21 67 006e 6B83 std Y+3,r22 68 0070 7C83 std Y+4,r23 69 0072 B801 movw r22,r16 70 0074 CE01 movw r24,r28 71 0076 0196 adiw r24,1 72 0078 0E94 0000 call gmtime_r 73 007c 8091 0000 lds r24,_daylight 74 0080 9091 0000 lds r25,_daylight+1 75 0084 892B or r24,r25 76 0086 01F4 brne .+2 77 0088 00C0 rjmp .L4 78 008a C801 movw r24,r16 79 008c 0E94 0000 call _isindst 80 0090 892B or r24,r25 81 0092 01F4 brne .+2 82 0094 00C0 rjmp .L4 83 0096 8981 ldd r24,Y+1 84 0098 9A81 ldd r25,Y+2 85 009a AB81 ldd r26,Y+3 86 009c BC81 ldd r27,Y+4 87 009e 4091 0000 lds r20,_dstbias 88 00a2 5091 0000 lds r21,_dstbias+1 89 00a6 6091 0000 lds r22,_dstbias+2 90 00aa 7091 0000 lds r23,_dstbias+3 91 00ae 841B sub r24,r20 92 00b0 950B sbc r25,r21 93 00b2 A60B sbc r26,r22 94 00b4 B70B sbc r27,r23 95 00b6 8983 std Y+1,r24 96 00b8 9A83 std Y+2,r25 97 00ba AB83 std Y+3,r26 98 00bc BC83 std Y+4,r27 99 00be B801 movw r22,r16 100 00c0 CE01 movw r24,r28 101 00c2 0196 adiw r24,1 102 00c4 0E94 0000 call gmtime_r 103 00c8 81E0 ldi r24,lo8(1) 104 00ca 90E0 ldi r25,0 105 00cc F801 movw r30,r16 106 00ce 918B std Z+17,r25 107 00d0 808B std Z+16,r24 108 00d2 00C0 rjmp .L4 109 .L2: 110 00d4 B801 movw r22,r16 111 00d6 0E94 0000 call gmtime_r 112 00da C801 movw r24,r16 113 00dc 0E94 0000 call _isindst 114 00e0 4091 0000 lds r20,_timezone GAS LISTING /tmp/cc0hg0pY.s page 3 115 00e4 5091 0000 lds r21,_timezone+1 116 00e8 6091 0000 lds r22,_timezone+2 117 00ec 7091 0000 lds r23,_timezone+3 118 00f0 F801 movw r30,r16 119 00f2 C080 ld r12,Z 120 00f4 D180 ldd r13,Z+1 121 00f6 0D2C mov __tmp_reg__,r13 122 00f8 000C lsl r0 123 00fa EE08 sbc r14,r14 124 00fc FF08 sbc r15,r15 125 00fe 892B or r24,r25 126 0100 01F0 breq .L6 127 0102 8091 0000 lds r24,_dstbias 128 0106 9091 0000 lds r25,_dstbias+1 129 010a A091 0000 lds r26,_dstbias+2 130 010e B091 0000 lds r27,_dstbias+3 131 0112 840F add r24,r20 132 0114 951F adc r25,r21 133 0116 A61F adc r26,r22 134 0118 B71F adc r27,r23 135 011a C81A sub r12,r24 136 011c D90A sbc r13,r25 137 011e EA0A sbc r14,r26 138 0120 FB0A sbc r15,r27 139 0122 00C0 rjmp .L7 140 .L6: 141 0124 C41A sub r12,r20 142 0126 D50A sbc r13,r21 143 0128 E60A sbc r14,r22 144 012a F70A sbc r15,r23 145 .L7: 146 012c C701 movw r24,r14 147 012e B601 movw r22,r12 148 0130 2CE3 ldi r18,lo8(60) 149 0132 30E0 ldi r19,0 150 0134 40E0 ldi r20,0 151 0136 50E0 ldi r21,0 152 0138 0E94 0000 call __divmodsi4 153 013c 97FD sbrc r25,7 154 013e 00C0 rjmp .L8 155 0140 F801 movw r30,r16 156 0142 7183 std Z+1,r23 157 0144 6083 st Z,r22 158 0146 00C0 rjmp .L9 159 .L8: 160 0148 645C subi r22,-60 161 014a 7F4F sbci r23,-1 162 014c F801 movw r30,r16 163 014e 7183 std Z+1,r23 164 0150 6083 st Z,r22 165 0152 FCE3 ldi r31,60 166 0154 CF1A sub r12,r31 167 0156 D108 sbc r13,__zero_reg__ 168 0158 E108 sbc r14,__zero_reg__ 169 015a F108 sbc r15,__zero_reg__ 170 .L9: 171 015c 8CE3 ldi r24,lo8(60) GAS LISTING /tmp/cc0hg0pY.s page 4 172 015e 882E mov r8,r24 173 0160 912C mov r9,__zero_reg__ 174 0162 A12C mov r10,__zero_reg__ 175 0164 B12C mov r11,__zero_reg__ 176 0166 C701 movw r24,r14 177 0168 B601 movw r22,r12 178 016a A501 movw r20,r10 179 016c 9401 movw r18,r8 180 016e 0E94 0000 call __divmodsi4 181 0172 F801 movw r30,r16 182 0174 C280 ldd r12,Z+2 183 0176 D380 ldd r13,Z+3 184 0178 0D2C mov __tmp_reg__,r13 185 017a 000C lsl r0 186 017c EE08 sbc r14,r14 187 017e FF08 sbc r15,r15 188 0180 C20E add r12,r18 189 0182 D31E adc r13,r19 190 0184 E41E adc r14,r20 191 0186 F51E adc r15,r21 192 0188 C701 movw r24,r14 193 018a B601 movw r22,r12 194 018c A501 movw r20,r10 195 018e 9401 movw r18,r8 196 0190 0E94 0000 call __divmodsi4 197 0194 97FD sbrc r25,7 198 0196 00C0 rjmp .L10 199 0198 F801 movw r30,r16 200 019a 7383 std Z+3,r23 201 019c 6283 std Z+2,r22 202 019e 00C0 rjmp .L11 203 .L10: 204 01a0 645C subi r22,-60 205 01a2 7F4F sbci r23,-1 206 01a4 F801 movw r30,r16 207 01a6 7383 std Z+3,r23 208 01a8 6283 std Z+2,r22 209 01aa FCE3 ldi r31,60 210 01ac CF1A sub r12,r31 211 01ae D108 sbc r13,__zero_reg__ 212 01b0 E108 sbc r14,__zero_reg__ 213 01b2 F108 sbc r15,__zero_reg__ 214 .L11: 215 01b4 C701 movw r24,r14 216 01b6 B601 movw r22,r12 217 01b8 2CE3 ldi r18,lo8(60) 218 01ba 30E0 ldi r19,0 219 01bc 40E0 ldi r20,0 220 01be 50E0 ldi r21,0 221 01c0 0E94 0000 call __divmodsi4 222 01c4 F801 movw r30,r16 223 01c6 C480 ldd r12,Z+4 224 01c8 D580 ldd r13,Z+5 225 01ca 0D2C mov __tmp_reg__,r13 226 01cc 000C lsl r0 227 01ce EE08 sbc r14,r14 228 01d0 FF08 sbc r15,r15 GAS LISTING /tmp/cc0hg0pY.s page 5 229 01d2 C20E add r12,r18 230 01d4 D31E adc r13,r19 231 01d6 E41E adc r14,r20 232 01d8 F51E adc r15,r21 233 01da C701 movw r24,r14 234 01dc B601 movw r22,r12 235 01de 28E1 ldi r18,lo8(24) 236 01e0 30E0 ldi r19,0 237 01e2 40E0 ldi r20,0 238 01e4 50E0 ldi r21,0 239 01e6 0E94 0000 call __divmodsi4 240 01ea 97FD sbrc r25,7 241 01ec 00C0 rjmp .L12 242 01ee F801 movw r30,r16 243 01f0 7583 std Z+5,r23 244 01f2 6483 std Z+4,r22 245 01f4 00C0 rjmp .L13 246 .L12: 247 01f6 685E subi r22,-24 248 01f8 7F4F sbci r23,-1 249 01fa F801 movw r30,r16 250 01fc 7583 std Z+5,r23 251 01fe 6483 std Z+4,r22 252 0200 F8E1 ldi r31,24 253 0202 CF1A sub r12,r31 254 0204 D108 sbc r13,__zero_reg__ 255 0206 E108 sbc r14,__zero_reg__ 256 0208 F108 sbc r15,__zero_reg__ 257 .L13: 258 020a C701 movw r24,r14 259 020c B601 movw r22,r12 260 020e 28E1 ldi r18,lo8(24) 261 0210 30E0 ldi r19,0 262 0212 40E0 ldi r20,0 263 0214 50E0 ldi r21,0 264 0216 0E94 0000 call __divmodsi4 265 021a 6901 movw r12,r18 266 021c 7A01 movw r14,r20 267 021e 1216 cp __zero_reg__,r18 268 0220 1306 cpc __zero_reg__,r19 269 0222 1406 cpc __zero_reg__,r20 270 0224 1506 cpc __zero_reg__,r21 271 0226 04F4 brge .L14 272 0228 F801 movw r30,r16 273 022a 6485 ldd r22,Z+12 274 022c 7585 ldd r23,Z+13 275 022e CB01 movw r24,r22 276 0230 770F lsl r23 277 0232 AA0B sbc r26,r26 278 0234 BB0B sbc r27,r27 279 0236 BC01 movw r22,r24 280 0238 CD01 movw r24,r26 281 023a 620F add r22,r18 282 023c 731F adc r23,r19 283 023e 841F adc r24,r20 284 0240 951F adc r25,r21 285 0242 27E0 ldi r18,lo8(7) GAS LISTING /tmp/cc0hg0pY.s page 6 286 0244 30E0 ldi r19,0 287 0246 40E0 ldi r20,0 288 0248 50E0 ldi r21,0 289 024a 0E94 0000 call __divmodsi4 290 024e F801 movw r30,r16 291 0250 7587 std Z+13,r23 292 0252 6487 std Z+12,r22 293 0254 8681 ldd r24,Z+6 294 0256 9781 ldd r25,Z+7 295 0258 8C0D add r24,r12 296 025a 9D1D adc r25,r13 297 025c 9783 std Z+7,r25 298 025e 8683 std Z+6,r24 299 0260 00C0 rjmp .L22 300 .L14: 301 0262 2115 cp r18,__zero_reg__ 302 0264 3105 cpc r19,__zero_reg__ 303 0266 4105 cpc r20,__zero_reg__ 304 0268 5105 cpc r21,__zero_reg__ 305 026a 01F0 breq .L4 306 026c F801 movw r30,r16 307 026e 6485 ldd r22,Z+12 308 0270 7585 ldd r23,Z+13 309 0272 695F subi r22,-7 310 0274 7F4F sbci r23,-1 311 0276 CB01 movw r24,r22 312 0278 770F lsl r23 313 027a AA0B sbc r26,r26 314 027c BB0B sbc r27,r27 315 027e BC01 movw r22,r24 316 0280 CD01 movw r24,r26 317 0282 620F add r22,r18 318 0284 731F adc r23,r19 319 0286 841F adc r24,r20 320 0288 951F adc r25,r21 321 028a 27E0 ldi r18,lo8(7) 322 028c 30E0 ldi r19,0 323 028e 40E0 ldi r20,0 324 0290 50E0 ldi r21,0 325 0292 0E94 0000 call __divmodsi4 326 0296 F801 movw r30,r16 327 0298 7587 std Z+13,r23 328 029a 6487 std Z+12,r22 329 029c 8681 ldd r24,Z+6 330 029e 9781 ldd r25,Z+7 331 02a0 8C0D add r24,r12 332 02a2 9D1D adc r25,r13 333 02a4 9783 std Z+7,r25 334 02a6 8683 std Z+6,r24 335 02a8 1816 cp __zero_reg__,r24 336 02aa 1906 cpc __zero_reg__,r25 337 02ac 04F0 brlt .L15 338 02ae 4F96 adiw r24,31 339 02b0 9783 std Z+7,r25 340 02b2 8683 std Z+6,r24 341 02b4 8CE6 ldi r24,lo8(108) 342 02b6 91E0 ldi r25,lo8(1) GAS LISTING /tmp/cc0hg0pY.s page 7 343 02b8 9787 std Z+15,r25 344 02ba 8687 std Z+14,r24 345 02bc 8BE0 ldi r24,lo8(11) 346 02be 90E0 ldi r25,0 347 02c0 9187 std Z+9,r25 348 02c2 8087 std Z+8,r24 349 02c4 8285 ldd r24,Z+10 350 02c6 9385 ldd r25,Z+11 351 02c8 0197 sbiw r24,1 352 02ca 9387 std Z+11,r25 353 02cc 8287 std Z+10,r24 354 02ce 00C0 rjmp .L4 355 .L15: 356 02d0 F801 movw r30,r16 357 .L22: 358 02d2 8685 ldd r24,Z+14 359 02d4 9785 ldd r25,Z+15 360 02d6 C80E add r12,r24 361 02d8 D91E adc r13,r25 362 02da D786 std Z+15,r13 363 02dc C686 std Z+14,r12 364 .L4: 365 02de 80E0 ldi r24,0 366 02e0 90E0 ldi r25,0 367 /* epilogue start */ 368 02e2 0F90 pop __tmp_reg__ 369 02e4 0F90 pop __tmp_reg__ 370 02e6 0F90 pop __tmp_reg__ 371 02e8 0F90 pop __tmp_reg__ 372 02ea DF91 pop r29 373 02ec CF91 pop r28 374 02ee 1F91 pop r17 375 02f0 0F91 pop r16 376 02f2 FF90 pop r15 377 02f4 EF90 pop r14 378 02f6 DF90 pop r13 379 02f8 CF90 pop r12 380 02fa BF90 pop r11 381 02fc AF90 pop r10 382 02fe 9F90 pop r9 383 0300 8F90 pop r8 384 0302 0895 ret 385 .size localtime_r, .-localtime_r 386 .section .text.localtime,"ax",@progbits 387 .global localtime 388 .type localtime, @function 389 localtime: 390 /* prologue: function */ 391 /* frame size = 0 */ 392 /* stack size = 0 */ 393 .L__stack_usage = 0 394 0000 60E0 ldi r22,lo8(_tb) 395 0002 70E0 ldi r23,hi8(_tb) 396 0004 0E94 0000 call localtime_r 397 0008 892B or r24,r25 398 000a 01F4 brne .L26 399 000c 80E0 ldi r24,lo8(_tb) GAS LISTING /tmp/cc0hg0pY.s page 8 400 000e 90E0 ldi r25,hi8(_tb) 401 0010 0895 ret 402 .L26: 403 0012 80E0 ldi r24,0 404 0014 90E0 ldi r25,0 405 0016 0895 ret 406 .size localtime, .-localtime 407 .ident "GCC: (GNU) 5.3.0" GAS LISTING /tmp/cc0hg0pY.s page 9 DEFINED SYMBOLS *ABS*:0000000000000000 localtime.c /tmp/cc0hg0pY.s:2 *ABS*:000000000000003e __SP_H__ /tmp/cc0hg0pY.s:3 *ABS*:000000000000003d __SP_L__ /tmp/cc0hg0pY.s:4 *ABS*:000000000000003f __SREG__ /tmp/cc0hg0pY.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/cc0hg0pY.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/cc0hg0pY.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/cc0hg0pY.s:11 .text.localtime_r:0000000000000000 localtime_r /tmp/cc0hg0pY.s:389 .text.localtime:0000000000000000 localtime UNDEFINED SYMBOLS _timezone gmtime_r _daylight _isindst _dstbias __divmodsi4 _tb