localtime.lst 15 KB

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