rfctime.lst 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729
  1. GAS LISTING /tmp/ccY3FIEk.s page 1
  2. 1 .file "rfctime.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.skip_spaces,"ax",@progbits
  10. 9 .type skip_spaces, @function
  11. 10 skip_spaces:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 FC01 movw r30,r24
  17. 16 .L2:
  18. 17 0002 CF01 movw r24,r30
  19. 18 0004 2191 ld r18,Z+
  20. 19 0006 2032 cpi r18,lo8(32)
  21. 20 0008 01F0 breq .L2
  22. 21 000a 2930 cpi r18,lo8(9)
  23. 22 000c 01F0 breq .L2
  24. 23 /* epilogue start */
  25. 24 000e 0895 ret
  26. 25 .size skip_spaces, .-skip_spaces
  27. 26 .section .text.parse_digits,"ax",@progbits
  28. 27 .type parse_digits, @function
  29. 28 parse_digits:
  30. 29 0000 CF93 push r28
  31. 30 0002 DF93 push r29
  32. 31 /* prologue: function */
  33. 32 /* frame size = 0 */
  34. 33 /* stack size = 2 */
  35. 34 .L__stack_usage = 2
  36. 35 0004 FB01 movw r30,r22
  37. 36 0006 1182 std Z+1,__zero_reg__
  38. 37 0008 1082 st Z,__zero_reg__
  39. 38 000a 6AE0 ldi r22,lo8(10)
  40. 39 .L12:
  41. 40 000c DC01 movw r26,r24
  42. 41 000e 2C91 ld r18,X
  43. 42 0010 30E0 ldi r19,0
  44. 43 0012 2053 subi r18,48
  45. 44 0014 3109 sbc r19,__zero_reg__
  46. 45 0016 2A30 cpi r18,10
  47. 46 0018 3105 cpc r19,__zero_reg__
  48. 47 001a 00F4 brsh .L14
  49. 48 001c 2081 ld r18,Z
  50. 49 001e 3181 ldd r19,Z+1
  51. 50 0020 629F mul r22,r18
  52. 51 0022 A001 movw r20,r0
  53. 52 0024 639F mul r22,r19
  54. 53 0026 500D add r21,r0
  55. 54 0028 1124 clr __zero_reg__
  56. 55 002a 5183 std Z+1,r21
  57. 56 002c 4083 st Z,r20
  58. 57 002e 0196 adiw r24,1
  59. GAS LISTING /tmp/ccY3FIEk.s page 2
  60. 58 0030 2C91 ld r18,X
  61. 59 0032 022E mov __tmp_reg__,r18
  62. 60 0034 000C lsl r0
  63. 61 0036 330B sbc r19,r19
  64. 62 0038 2053 subi r18,48
  65. 63 003a 3109 sbc r19,__zero_reg__
  66. 64 003c 240F add r18,r20
  67. 65 003e 351F adc r19,r21
  68. 66 0040 3183 std Z+1,r19
  69. 67 0042 2083 st Z,r18
  70. 68 0044 00C0 rjmp .L12
  71. 69 .L14:
  72. 70 /* epilogue start */
  73. 71 0046 DF91 pop r29
  74. 72 0048 CF91 pop r28
  75. 73 004a 0895 ret
  76. 74 .size parse_digits, .-parse_digits
  77. 75 .section .text.TimeParseYear,"ax",@progbits
  78. 76 .global TimeParseYear
  79. 77 .type TimeParseYear, @function
  80. 78 TimeParseYear:
  81. 79 0000 CF93 push r28
  82. 80 0002 DF93 push r29
  83. 81 /* prologue: function */
  84. 82 /* frame size = 0 */
  85. 83 /* stack size = 2 */
  86. 84 .L__stack_usage = 2
  87. 85 0004 EB01 movw r28,r22
  88. 86 0006 0E94 0000 call parse_digits
  89. 87 000a 2881 ld r18,Y
  90. 88 000c 3981 ldd r19,Y+1
  91. 89 000e 2634 cpi r18,70
  92. 90 0010 3105 cpc r19,__zero_reg__
  93. 91 0012 04F4 brge .L16
  94. 92 0014 2C59 subi r18,-100
  95. 93 0016 3F4F sbci r19,-1
  96. 94 0018 00C0 rjmp .L18
  97. 95 .L16:
  98. 96 001a 2D36 cpi r18,109
  99. 97 001c 47E0 ldi r20,7
  100. 98 001e 3407 cpc r19,r20
  101. 99 0020 04F0 brlt .L17
  102. 100 0022 2C56 subi r18,108
  103. 101 0024 3740 sbci r19,7
  104. 102 .L18:
  105. 103 0026 3983 std Y+1,r19
  106. 104 0028 2883 st Y,r18
  107. 105 .L17:
  108. 106 /* epilogue start */
  109. 107 002a DF91 pop r29
  110. 108 002c CF91 pop r28
  111. 109 002e 0895 ret
  112. 110 .size TimeParseYear, .-TimeParseYear
  113. 111 .section .text.TimeParseMonth,"ax",@progbits
  114. 112 .global TimeParseMonth
  115. 113 .type TimeParseMonth, @function
  116. 114 TimeParseMonth:
  117. GAS LISTING /tmp/ccY3FIEk.s page 3
  118. 115 0000 0F93 push r16
  119. 116 0002 1F93 push r17
  120. 117 0004 CF93 push r28
  121. 118 0006 DF93 push r29
  122. 119 /* prologue: function */
  123. 120 /* frame size = 0 */
  124. 121 /* stack size = 4 */
  125. 122 .L__stack_usage = 4
  126. 123 0008 FC01 movw r30,r24
  127. 124 000a DB01 movw r26,r22
  128. 125 000c 8081 ld r24,Z
  129. 126 000e 8134 cpi r24,lo8(65)
  130. 127 0010 01F4 brne .L20
  131. 128 0012 9F01 movw r18,r30
  132. 129 0014 2F5F subi r18,-1
  133. 130 0016 3F4F sbci r19,-1
  134. 131 0018 8181 ldd r24,Z+1
  135. 132 001a 8F7D andi r24,lo8(-33)
  136. 133 001c 8035 cpi r24,lo8(80)
  137. 134 001e 01F4 brne .L21
  138. 135 0020 83E0 ldi r24,lo8(3)
  139. 136 0022 90E0 ldi r25,0
  140. 137 0024 00C0 rjmp .L40
  141. 138 .L21:
  142. 139 0026 87E0 ldi r24,lo8(7)
  143. 140 0028 90E0 ldi r25,0
  144. 141 .L40:
  145. 142 002a 8D93 st X+,r24
  146. 143 002c 9C93 st X,r25
  147. 144 002e F901 movw r30,r18
  148. 145 .L22:
  149. 146 0030 EF01 movw r28,r30
  150. 147 0032 00C0 rjmp .L23
  151. 148 .L20:
  152. 149 0034 8434 cpi r24,lo8(68)
  153. 150 0036 01F4 brne .L24
  154. 151 0038 8BE0 ldi r24,lo8(11)
  155. 152 003a 90E0 ldi r25,0
  156. 153 003c 00C0 rjmp .L38
  157. 154 .L24:
  158. 155 003e 8634 cpi r24,lo8(70)
  159. 156 0040 01F4 brne .L25
  160. 157 0042 81E0 ldi r24,lo8(1)
  161. 158 0044 90E0 ldi r25,0
  162. 159 0046 00C0 rjmp .L38
  163. 160 .L25:
  164. 161 0048 8A34 cpi r24,lo8(74)
  165. 162 004a 01F4 brne .L26
  166. 163 004c CF01 movw r24,r30
  167. 164 004e 0196 adiw r24,1
  168. 165 0050 2181 ldd r18,Z+1
  169. 166 0052 322F mov r19,r18
  170. 167 0054 3F7D andi r19,lo8(-33)
  171. 168 0056 3134 cpi r19,lo8(65)
  172. 169 0058 01F4 brne .L27
  173. 170 005a 1D92 st X+,__zero_reg__
  174. 171 005c 1C92 st X,__zero_reg__
  175. GAS LISTING /tmp/ccY3FIEk.s page 4
  176. 172 005e 00C0 rjmp .L41
  177. 173 .L27:
  178. 174 0060 2223 tst r18
  179. 175 0062 01F0 breq .L28
  180. 176 0064 CF01 movw r24,r30
  181. 177 0066 0296 adiw r24,2
  182. 178 0068 2281 ldd r18,Z+2
  183. 179 006a 2F7D andi r18,lo8(-33)
  184. 180 006c 2C34 cpi r18,lo8(76)
  185. 181 006e 01F4 brne .L28
  186. 182 0070 26E0 ldi r18,lo8(6)
  187. 183 0072 30E0 ldi r19,0
  188. 184 0074 00C0 rjmp .L39
  189. 185 .L28:
  190. 186 0076 25E0 ldi r18,lo8(5)
  191. 187 0078 30E0 ldi r19,0
  192. 188 007a 00C0 rjmp .L39
  193. 189 .L26:
  194. 190 007c 8D34 cpi r24,lo8(77)
  195. 191 007e 01F4 brne .L29
  196. 192 0080 8181 ldd r24,Z+1
  197. 193 0082 8136 cpi r24,lo8(97)
  198. 194 0084 01F4 brne .L30
  199. 195 0086 CF01 movw r24,r30
  200. 196 0088 0296 adiw r24,2
  201. 197 008a 2281 ldd r18,Z+2
  202. 198 008c 2F7D andi r18,lo8(-33)
  203. 199 008e 2235 cpi r18,lo8(82)
  204. 200 0090 01F4 brne .L31
  205. 201 0092 22E0 ldi r18,lo8(2)
  206. 202 0094 30E0 ldi r19,0
  207. 203 .L39:
  208. 204 0096 2D93 st X+,r18
  209. 205 0098 3C93 st X,r19
  210. 206 .L41:
  211. 207 009a FC01 movw r30,r24
  212. 208 009c 00C0 rjmp .L22
  213. 209 .L30:
  214. 210 009e CF01 movw r24,r30
  215. 211 00a0 0196 adiw r24,1
  216. 212 .L31:
  217. 213 00a2 24E0 ldi r18,lo8(4)
  218. 214 00a4 30E0 ldi r19,0
  219. 215 00a6 00C0 rjmp .L39
  220. 216 .L29:
  221. 217 00a8 8E34 cpi r24,lo8(78)
  222. 218 00aa 01F4 brne .L32
  223. 219 00ac 8AE0 ldi r24,lo8(10)
  224. 220 00ae 90E0 ldi r25,0
  225. 221 .L38:
  226. 222 00b0 8D93 st X+,r24
  227. 223 00b2 9C93 st X,r25
  228. 224 00b4 00C0 rjmp .L22
  229. 225 .L32:
  230. 226 00b6 8F34 cpi r24,lo8(79)
  231. 227 00b8 01F4 brne .L33
  232. 228 00ba 89E0 ldi r24,lo8(9)
  233. GAS LISTING /tmp/ccY3FIEk.s page 5
  234. 229 00bc 90E0 ldi r25,0
  235. 230 00be 00C0 rjmp .L38
  236. 231 .L33:
  237. 232 00c0 88E0 ldi r24,lo8(8)
  238. 233 00c2 90E0 ldi r25,0
  239. 234 00c4 00C0 rjmp .L38
  240. 235 .L23:
  241. 236 00c6 8E01 movw r16,r28
  242. 237 00c8 2196 adiw r28,1
  243. 238 00ca F801 movw r30,r16
  244. 239 00cc 8081 ld r24,Z
  245. 240 00ce 90E0 ldi r25,0
  246. 241 00d0 0E94 0000 call isalpha
  247. 242 00d4 892B or r24,r25
  248. 243 00d6 01F4 brne .L23
  249. 244 00d8 C801 movw r24,r16
  250. 245 /* epilogue start */
  251. 246 00da DF91 pop r29
  252. 247 00dc CF91 pop r28
  253. 248 00de 1F91 pop r17
  254. 249 00e0 0F91 pop r16
  255. 250 00e2 0895 ret
  256. 251 .size TimeParseMonth, .-TimeParseMonth
  257. 252 .section .text.TimeParseDmy,"ax",@progbits
  258. 253 .global TimeParseDmy
  259. 254 .type TimeParseDmy, @function
  260. 255 TimeParseDmy:
  261. 256 0000 CF92 push r12
  262. 257 0002 DF92 push r13
  263. 258 0004 EF92 push r14
  264. 259 0006 FF92 push r15
  265. 260 0008 0F93 push r16
  266. 261 000a 1F93 push r17
  267. 262 000c CF93 push r28
  268. 263 000e DF93 push r29
  269. 264 /* prologue: function */
  270. 265 /* frame size = 0 */
  271. 266 /* stack size = 8 */
  272. 267 .L__stack_usage = 8
  273. 268 0010 7A01 movw r14,r20
  274. 269 0012 8901 movw r16,r18
  275. 270 0014 0E94 0000 call parse_digits
  276. 271 0018 EC01 movw r28,r24
  277. 272 .L45:
  278. 273 001a DC2E mov r13,r28
  279. 274 001c CD2E mov r12,r29
  280. 275 001e 8991 ld r24,Y+
  281. 276 0020 8111 cpse r24,__zero_reg__
  282. 277 0022 00C0 rjmp .L43
  283. 278 .L46:
  284. 279 0024 B701 movw r22,r14
  285. 280 0026 8D2D mov r24,r13
  286. 281 0028 9C2D mov r25,r12
  287. 282 002a 0E94 0000 call TimeParseMonth
  288. 283 002e FC01 movw r30,r24
  289. 284 0030 00C0 rjmp .L44
  290. 285 .L43:
  291. GAS LISTING /tmp/ccY3FIEk.s page 6
  292. 286 0032 90E0 ldi r25,0
  293. 287 0034 0E94 0000 call isalpha
  294. 288 0038 892B or r24,r25
  295. 289 003a 01F0 breq .L45
  296. 290 003c 00C0 rjmp .L46
  297. 291 .L47:
  298. 292 003e 30E0 ldi r19,0
  299. 293 0040 2053 subi r18,48
  300. 294 0042 3109 sbc r19,__zero_reg__
  301. 295 0044 2A30 cpi r18,10
  302. 296 0046 3105 cpc r19,__zero_reg__
  303. 297 0048 00F0 brlo .L48
  304. 298 .L44:
  305. 299 004a CF01 movw r24,r30
  306. 300 004c 2191 ld r18,Z+
  307. 301 004e 2111 cpse r18,__zero_reg__
  308. 302 0050 00C0 rjmp .L47
  309. 303 .L48:
  310. 304 0052 B801 movw r22,r16
  311. 305 /* epilogue start */
  312. 306 0054 DF91 pop r29
  313. 307 0056 CF91 pop r28
  314. 308 0058 1F91 pop r17
  315. 309 005a 0F91 pop r16
  316. 310 005c FF90 pop r15
  317. 311 005e EF90 pop r14
  318. 312 0060 DF90 pop r13
  319. 313 0062 CF90 pop r12
  320. 314 0064 0C94 0000 jmp TimeParseYear
  321. 315 .size TimeParseDmy, .-TimeParseDmy
  322. 316 .section .text.TimeParseHms,"ax",@progbits
  323. 317 .global TimeParseHms
  324. 318 .type TimeParseHms, @function
  325. 319 TimeParseHms:
  326. 320 0000 0F93 push r16
  327. 321 0002 1F93 push r17
  328. 322 0004 CF93 push r28
  329. 323 0006 DF93 push r29
  330. 324 /* prologue: function */
  331. 325 /* frame size = 0 */
  332. 326 /* stack size = 4 */
  333. 327 .L__stack_usage = 4
  334. 328 0008 EA01 movw r28,r20
  335. 329 000a 8901 movw r16,r18
  336. 330 000c 0E94 0000 call parse_digits
  337. 331 0010 FC01 movw r30,r24
  338. 332 0012 2081 ld r18,Z
  339. 333 0014 2A33 cpi r18,lo8(58)
  340. 334 0016 01F4 brne .L53
  341. 335 0018 BE01 movw r22,r28
  342. 336 001a 0196 adiw r24,1
  343. 337 001c 0E94 0000 call parse_digits
  344. 338 0020 FC01 movw r30,r24
  345. 339 0022 2081 ld r18,Z
  346. 340 0024 2A33 cpi r18,lo8(58)
  347. 341 0026 01F4 brne .L54
  348. 342 0028 B801 movw r22,r16
  349. GAS LISTING /tmp/ccY3FIEk.s page 7
  350. 343 002a 0196 adiw r24,1
  351. 344 /* epilogue start */
  352. 345 002c DF91 pop r29
  353. 346 002e CF91 pop r28
  354. 347 0030 1F91 pop r17
  355. 348 0032 0F91 pop r16
  356. 349 0034 0C94 0000 jmp parse_digits
  357. 350 .L54:
  358. 351 0038 F801 movw r30,r16
  359. 352 003a 1182 std Z+1,__zero_reg__
  360. 353 003c 1082 st Z,__zero_reg__
  361. 354 003e 00C0 rjmp .L55
  362. 355 .L53:
  363. 356 0040 1982 std Y+1,__zero_reg__
  364. 357 0042 1882 st Y,__zero_reg__
  365. 358 .L55:
  366. 359 /* epilogue start */
  367. 360 0044 DF91 pop r29
  368. 361 0046 CF91 pop r28
  369. 362 0048 1F91 pop r17
  370. 363 004a 0F91 pop r16
  371. 364 004c 0895 ret
  372. 365 .size TimeParseHms, .-TimeParseHms
  373. 366 .section .rodata.str1.1,"aMS",@progbits,1
  374. 367 .LC0:
  375. 368 0000 474D 5400 .string "GMT"
  376. 369 .section .text.RfcTimeParse,"ax",@progbits
  377. 370 .global RfcTimeParse
  378. 371 .type RfcTimeParse, @function
  379. 372 RfcTimeParse:
  380. 373 0000 DF92 push r13
  381. 374 0002 EF92 push r14
  382. 375 0004 FF92 push r15
  383. 376 0006 0F93 push r16
  384. 377 0008 1F93 push r17
  385. 378 000a CF93 push r28
  386. 379 000c DF93 push r29
  387. 380 000e CDB7 in r28,__SP_L__
  388. 381 0010 DEB7 in r29,__SP_H__
  389. 382 0012 6297 sbiw r28,18
  390. 383 0014 0FB6 in __tmp_reg__,__SREG__
  391. 384 0016 F894 cli
  392. 385 0018 DEBF out __SP_H__,r29
  393. 386 001a 0FBE out __SREG__,__tmp_reg__
  394. 387 001c CDBF out __SP_L__,r28
  395. 388 /* prologue: function */
  396. 389 /* frame size = 18 */
  397. 390 /* stack size = 25 */
  398. 391 .L__stack_usage = 25
  399. 392 001e 9E01 movw r18,r28
  400. 393 0020 2F5F subi r18,-1
  401. 394 0022 3F4F sbci r19,-1
  402. 395 0024 7901 movw r14,r18
  403. 396 0026 22E1 ldi r18,lo8(18)
  404. 397 0028 F701 movw r30,r14
  405. 398 0:
  406. 399 002a 1192 st Z+,__zero_reg__
  407. GAS LISTING /tmp/ccY3FIEk.s page 8
  408. 400 002c 2A95 dec r18
  409. 401 002e 01F4 brne 0b
  410. 402 0030 21E0 ldi r18,lo8(1)
  411. 403 0032 30E0 ldi r19,0
  412. 404 0034 3887 std Y+8,r19
  413. 405 0036 2F83 std Y+7,r18
  414. 406 0038 0E94 0000 call skip_spaces
  415. 407 003c 8C01 movw r16,r24
  416. 408 003e FC01 movw r30,r24
  417. 409 0040 8081 ld r24,Z
  418. 410 0042 90E0 ldi r25,0
  419. 411 0044 0E94 0000 call isalpha
  420. 412 0048 892B or r24,r25
  421. 413 004a 01F0 breq .L57
  422. 414 004c F801 movw r30,r16
  423. 415 .L59:
  424. 416 004e CF01 movw r24,r30
  425. 417 0050 2191 ld r18,Z+
  426. 418 0052 322F mov r19,r18
  427. 419 0054 3F7D andi r19,lo8(-33)
  428. 420 0056 01F4 brne .L58
  429. 421 .L60:
  430. 422 0058 0E94 0000 call skip_spaces
  431. 423 005c 8C01 movw r16,r24
  432. 424 005e 00C0 rjmp .L57
  433. 425 .L58:
  434. 426 0060 2930 cpi r18,lo8(9)
  435. 427 0062 01F4 brne .L59
  436. 428 0064 00C0 rjmp .L60
  437. 429 .L57:
  438. 430 0066 F801 movw r30,r16
  439. 431 0068 D080 ld r13,Z
  440. 432 006a 8D2D mov r24,r13
  441. 433 006c 90E0 ldi r25,0
  442. 434 006e 0E94 0000 call isalpha
  443. 435 0072 892B or r24,r25
  444. 436 0074 01F0 breq .L61
  445. 437 0076 BE01 movw r22,r28
  446. 438 0078 675F subi r22,-9
  447. 439 007a 7F4F sbci r23,-1
  448. 440 007c C801 movw r24,r16
  449. 441 007e 0E94 0000 call TimeParseMonth
  450. 442 0082 0E94 0000 call skip_spaces
  451. 443 0086 BE01 movw r22,r28
  452. 444 0088 695F subi r22,-7
  453. 445 008a 7F4F sbci r23,-1
  454. 446 008c 0E94 0000 call parse_digits
  455. 447 0090 0E94 0000 call skip_spaces
  456. 448 0094 BE01 movw r22,r28
  457. 449 0096 655F subi r22,-11
  458. 450 0098 7F4F sbci r23,-1
  459. 451 009a 0E94 0000 call TimeParseYear
  460. 452 009e 00C0 rjmp .L72
  461. 453 .L61:
  462. 454 00a0 DD20 tst r13
  463. 455 00a2 01F0 breq .L62
  464. 456 00a4 9E01 movw r18,r28
  465. GAS LISTING /tmp/ccY3FIEk.s page 9
  466. 457 00a6 255F subi r18,-11
  467. 458 00a8 3F4F sbci r19,-1
  468. 459 00aa AE01 movw r20,r28
  469. 460 00ac 475F subi r20,-9
  470. 461 00ae 5F4F sbci r21,-1
  471. 462 00b0 BE01 movw r22,r28
  472. 463 00b2 695F subi r22,-7
  473. 464 00b4 7F4F sbci r23,-1
  474. 465 00b6 C801 movw r24,r16
  475. 466 00b8 0E94 0000 call TimeParseDmy
  476. 467 .L72:
  477. 468 00bc 0E94 0000 call skip_spaces
  478. 469 00c0 9701 movw r18,r14
  479. 470 00c2 AE01 movw r20,r28
  480. 471 00c4 4D5F subi r20,-3
  481. 472 00c6 5F4F sbci r21,-1
  482. 473 00c8 BE01 movw r22,r28
  483. 474 00ca 6B5F subi r22,-5
  484. 475 00cc 7F4F sbci r23,-1
  485. 476 00ce 0E94 0000 call TimeParseHms
  486. 477 00d2 8C01 movw r16,r24
  487. 478 .L62:
  488. 479 00d4 C801 movw r24,r16
  489. 480 00d6 0E94 0000 call skip_spaces
  490. 481 00da 60E0 ldi r22,lo8(.LC0)
  491. 482 00dc 70E0 ldi r23,hi8(.LC0)
  492. 483 00de 0E94 0000 call strcmp
  493. 484 00e2 892B or r24,r25
  494. 485 00e4 01F4 brne .L63
  495. 486 00e6 C701 movw r24,r14
  496. 487 00e8 0E94 0000 call mktime
  497. 488 00ec 00C0 rjmp .L64
  498. 489 .L63:
  499. 490 00ee C701 movw r24,r14
  500. 491 00f0 0E94 0000 call _mkgmtime
  501. 492 .L64:
  502. 493 /* epilogue start */
  503. 494 00f4 6296 adiw r28,18
  504. 495 00f6 0FB6 in __tmp_reg__,__SREG__
  505. 496 00f8 F894 cli
  506. 497 00fa DEBF out __SP_H__,r29
  507. 498 00fc 0FBE out __SREG__,__tmp_reg__
  508. 499 00fe CDBF out __SP_L__,r28
  509. 500 0100 DF91 pop r29
  510. 501 0102 CF91 pop r28
  511. 502 0104 1F91 pop r17
  512. 503 0106 0F91 pop r16
  513. 504 0108 FF90 pop r15
  514. 505 010a EF90 pop r14
  515. 506 010c DF90 pop r13
  516. 507 010e 0895 ret
  517. 508 .size RfcTimeParse, .-RfcTimeParse
  518. 509 .section .rodata.str1.1
  519. 510 .LC1:
  520. 511 0004 2573 2C20 .string "%s, %02d %s %04d %02d:%02d:%02d"
  521. 511 2530 3264
  522. 511 2025 7320
  523. GAS LISTING /tmp/ccY3FIEk.s page 10
  524. 511 2530 3464
  525. 511 2025 3032
  526. 512 .section .text.Rfc1123TimeString,"ax",@progbits
  527. 513 .global Rfc1123TimeString
  528. 514 .type Rfc1123TimeString, @function
  529. 515 Rfc1123TimeString:
  530. 516 /* prologue: function */
  531. 517 /* frame size = 0 */
  532. 518 /* stack size = 0 */
  533. 519 .L__stack_usage = 0
  534. 520 0000 FC01 movw r30,r24
  535. 521 0002 8181 ldd r24,Z+1
  536. 522 0004 8F93 push r24
  537. 523 0006 8081 ld r24,Z
  538. 524 0008 8F93 push r24
  539. 525 000a 8381 ldd r24,Z+3
  540. 526 000c 8F93 push r24
  541. 527 000e 8281 ldd r24,Z+2
  542. 528 0010 8F93 push r24
  543. 529 0012 8581 ldd r24,Z+5
  544. 530 0014 8F93 push r24
  545. 531 0016 8481 ldd r24,Z+4
  546. 532 0018 8F93 push r24
  547. 533 001a 8285 ldd r24,Z+10
  548. 534 001c 9385 ldd r25,Z+11
  549. 535 001e 8459 subi r24,-108
  550. 536 0020 984F sbci r25,-8
  551. 537 0022 9F93 push r25
  552. 538 0024 8F93 push r24
  553. 539 0026 A085 ldd r26,Z+8
  554. 540 0028 B185 ldd r27,Z+9
  555. 541 002a AA0F lsl r26
  556. 542 002c BB1F rol r27
  557. 543 002e A050 subi r26,lo8(-(months))
  558. 544 0030 B040 sbci r27,hi8(-(months))
  559. 545 0032 1196 adiw r26,1
  560. 546 0034 8C91 ld r24,X
  561. 547 0036 1197 sbiw r26,1
  562. 548 0038 8F93 push r24
  563. 549 003a 8C91 ld r24,X
  564. 550 003c 8F93 push r24
  565. 551 003e 8781 ldd r24,Z+7
  566. 552 0040 8F93 push r24
  567. 553 0042 8681 ldd r24,Z+6
  568. 554 0044 8F93 push r24
  569. 555 0046 0484 ldd __tmp_reg__,Z+12
  570. 556 0048 F585 ldd r31,Z+13
  571. 557 004a E02D mov r30,__tmp_reg__
  572. 558 004c EE0F lsl r30
  573. 559 004e FF1F rol r31
  574. 560 0050 E050 subi r30,lo8(-(wkdays))
  575. 561 0052 F040 sbci r31,hi8(-(wkdays))
  576. 562 0054 8181 ldd r24,Z+1
  577. 563 0056 8F93 push r24
  578. 564 0058 8081 ld r24,Z
  579. 565 005a 8F93 push r24
  580. 566 005c 80E0 ldi r24,lo8(.LC1)
  581. GAS LISTING /tmp/ccY3FIEk.s page 11
  582. 567 005e 90E0 ldi r25,hi8(.LC1)
  583. 568 0060 9F93 push r25
  584. 569 0062 8F93 push r24
  585. 570 0064 80E0 ldi r24,lo8(rfc1123_buf)
  586. 571 0066 90E0 ldi r25,hi8(rfc1123_buf)
  587. 572 0068 9F93 push r25
  588. 573 006a 8F93 push r24
  589. 574 006c 0E94 0000 call sprintf
  590. 575 0070 8DB7 in r24,__SP_L__
  591. 576 0072 9EB7 in r25,__SP_H__
  592. 577 0074 4296 adiw r24,18
  593. 578 0076 0FB6 in __tmp_reg__,__SREG__
  594. 579 0078 F894 cli
  595. 580 007a 9EBF out __SP_H__,r25
  596. 581 007c 0FBE out __SREG__,__tmp_reg__
  597. 582 007e 8DBF out __SP_L__,r24
  598. 583 0080 80E0 ldi r24,lo8(rfc1123_buf)
  599. 584 0082 90E0 ldi r25,hi8(rfc1123_buf)
  600. 585 0084 0895 ret
  601. 586 .size Rfc1123TimeString, .-Rfc1123TimeString
  602. 587 .section .rodata.str1.1
  603. 588 .LC2:
  604. 589 0024 4A61 6E00 .string "Jan"
  605. 590 .LC3:
  606. 591 0028 4665 6200 .string "Feb"
  607. 592 .LC4:
  608. 593 002c 4D61 7200 .string "Mar"
  609. 594 .LC5:
  610. 595 0030 4170 7200 .string "Apr"
  611. 596 .LC6:
  612. 597 0034 4D61 7900 .string "May"
  613. 598 .LC7:
  614. 599 0038 4A75 6E00 .string "Jun"
  615. 600 .LC8:
  616. 601 003c 4A75 6C00 .string "Jul"
  617. 602 .LC9:
  618. 603 0040 4175 6700 .string "Aug"
  619. 604 .LC10:
  620. 605 0044 5365 7000 .string "Sep"
  621. 606 .LC11:
  622. 607 0048 4F63 7400 .string "Oct"
  623. 608 .LC12:
  624. 609 004c 4E6F 7600 .string "Nov"
  625. 610 .LC13:
  626. 611 0050 4465 6300 .string "Dec"
  627. 612 .section .rodata
  628. 613 .type months, @object
  629. 614 .size months, 24
  630. 615 months:
  631. 616 0000 0000 .word .LC2
  632. 617 0002 0000 .word .LC3
  633. 618 0004 0000 .word .LC4
  634. 619 0006 0000 .word .LC5
  635. 620 0008 0000 .word .LC6
  636. 621 000a 0000 .word .LC7
  637. 622 000c 0000 .word .LC8
  638. 623 000e 0000 .word .LC9
  639. GAS LISTING /tmp/ccY3FIEk.s page 12
  640. 624 0010 0000 .word .LC10
  641. 625 0012 0000 .word .LC11
  642. 626 0014 0000 .word .LC12
  643. 627 0016 0000 .word .LC13
  644. 628 .section .rodata.str1.1
  645. 629 .LC14:
  646. 630 0054 5375 6E00 .string "Sun"
  647. 631 .LC15:
  648. 632 0058 4D6F 6E00 .string "Mon"
  649. 633 .LC16:
  650. 634 005c 5475 6500 .string "Tue"
  651. 635 .LC17:
  652. 636 0060 5765 6400 .string "Wed"
  653. 637 .LC18:
  654. 638 0064 5468 7500 .string "Thu"
  655. 639 .LC19:
  656. 640 0068 4672 6900 .string "Fri"
  657. 641 .LC20:
  658. 642 006c 5361 7400 .string "Sat"
  659. 643 .section .rodata
  660. 644 .type wkdays, @object
  661. 645 .size wkdays, 14
  662. 646 wkdays:
  663. 647 0018 0000 .word .LC14
  664. 648 001a 0000 .word .LC15
  665. 649 001c 0000 .word .LC16
  666. 650 001e 0000 .word .LC17
  667. 651 0020 0000 .word .LC18
  668. 652 0022 0000 .word .LC19
  669. 653 0024 0000 .word .LC20
  670. 654 .local rfc1123_buf
  671. 655 .comm rfc1123_buf,32,1
  672. 656 .ident "GCC: (GNU) 5.3.0"
  673. 657 .global __do_copy_data
  674. 658 .global __do_clear_bss
  675. GAS LISTING /tmp/ccY3FIEk.s page 13
  676. DEFINED SYMBOLS
  677. *ABS*:0000000000000000 rfctime.c
  678. /tmp/ccY3FIEk.s:2 *ABS*:000000000000003e __SP_H__
  679. /tmp/ccY3FIEk.s:3 *ABS*:000000000000003d __SP_L__
  680. /tmp/ccY3FIEk.s:4 *ABS*:000000000000003f __SREG__
  681. /tmp/ccY3FIEk.s:5 *ABS*:000000000000003b __RAMPZ__
  682. /tmp/ccY3FIEk.s:6 *ABS*:0000000000000000 __tmp_reg__
  683. /tmp/ccY3FIEk.s:7 *ABS*:0000000000000001 __zero_reg__
  684. /tmp/ccY3FIEk.s:10 .text.skip_spaces:0000000000000000 skip_spaces
  685. /tmp/ccY3FIEk.s:28 .text.parse_digits:0000000000000000 parse_digits
  686. /tmp/ccY3FIEk.s:78 .text.TimeParseYear:0000000000000000 TimeParseYear
  687. /tmp/ccY3FIEk.s:114 .text.TimeParseMonth:0000000000000000 TimeParseMonth
  688. /tmp/ccY3FIEk.s:255 .text.TimeParseDmy:0000000000000000 TimeParseDmy
  689. /tmp/ccY3FIEk.s:319 .text.TimeParseHms:0000000000000000 TimeParseHms
  690. /tmp/ccY3FIEk.s:372 .text.RfcTimeParse:0000000000000000 RfcTimeParse
  691. /tmp/ccY3FIEk.s:515 .text.Rfc1123TimeString:0000000000000000 Rfc1123TimeString
  692. /tmp/ccY3FIEk.s:615 .rodata:0000000000000000 months
  693. /tmp/ccY3FIEk.s:646 .rodata:0000000000000018 wkdays
  694. .bss:0000000000000000 rfc1123_buf
  695. UNDEFINED SYMBOLS
  696. isalpha
  697. strcmp
  698. mktime
  699. _mkgmtime
  700. sprintf
  701. __do_copy_data
  702. __do_clear_bss