timeofday.lst 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. GAS LISTING /tmp/cckpER3d.s page 1
  2. 1 .file "timeofday.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.gettimeofday,"ax",@progbits
  10. 9 .global gettimeofday
  11. 10 .type gettimeofday, @function
  12. 11 gettimeofday:
  13. 12 0000 0F93 push r16
  14. 13 0002 1F93 push r17
  15. 14 0004 CF93 push r28
  16. 15 0006 DF93 push r29
  17. 16 /* prologue: function */
  18. 17 /* frame size = 0 */
  19. 18 /* stack size = 4 */
  20. 19 .L__stack_usage = 4
  21. 20 0008 FC01 movw r30,r24
  22. 21 000a EB01 movw r28,r22
  23. 22 000c 892B or r24,r25
  24. 23 000e 01F4 brne .+2
  25. 24 0010 00C0 rjmp .L3
  26. 25 0012 0091 0000 lds r16,system_time
  27. 26 0016 1091 0000 lds r17,system_time+1
  28. 27 001a 2091 0000 lds r18,system_time+2
  29. 28 001e 3091 0000 lds r19,system_time+3
  30. 29 0022 8091 0000 lds r24,epo_offs
  31. 30 0026 9091 0000 lds r25,epo_offs+1
  32. 31 002a A091 0000 lds r26,epo_offs+2
  33. 32 002e B091 0000 lds r27,epo_offs+3
  34. 33 0032 080F add r16,r24
  35. 34 0034 191F adc r17,r25
  36. 35 0036 2A1F adc r18,r26
  37. 36 0038 3B1F adc r19,r27
  38. 37 003a 0083 st Z,r16
  39. 38 003c 1183 std Z+1,r17
  40. 39 003e 2283 std Z+2,r18
  41. 40 0040 3383 std Z+3,r19
  42. 41 0042 4091 0000 lds r20,system_time+4
  43. 42 0046 5091 0000 lds r21,system_time+4+1
  44. 43 004a 6091 0000 lds r22,system_time+4+2
  45. 44 004e 7091 0000 lds r23,system_time+4+3
  46. 45 0052 8091 0000 lds r24,epo_offs+4
  47. 46 0056 9091 0000 lds r25,epo_offs+4+1
  48. 47 005a A091 0000 lds r26,epo_offs+4+2
  49. 48 005e B091 0000 lds r27,epo_offs+4+3
  50. 49 0062 480F add r20,r24
  51. 50 0064 591F adc r21,r25
  52. 51 0066 6A1F adc r22,r26
  53. 52 0068 7B1F adc r23,r27
  54. 53 006a 4483 std Z+4,r20
  55. 54 006c 5583 std Z+5,r21
  56. 55 006e 6683 std Z+6,r22
  57. 56 0070 7783 std Z+7,r23
  58. 57 0072 4034 cpi r20,64
  59. GAS LISTING /tmp/cckpER3d.s page 2
  60. 58 0074 82E4 ldi r24,66
  61. 59 0076 5807 cpc r21,r24
  62. 60 0078 8FE0 ldi r24,15
  63. 61 007a 6807 cpc r22,r24
  64. 62 007c 7105 cpc r23,__zero_reg__
  65. 63 007e 04F0 brlt .L3
  66. 64 0080 0F5F subi r16,-1
  67. 65 0082 1F4F sbci r17,-1
  68. 66 0084 2F4F sbci r18,-1
  69. 67 0086 3F4F sbci r19,-1
  70. 68 0088 0083 st Z,r16
  71. 69 008a 1183 std Z+1,r17
  72. 70 008c 2283 std Z+2,r18
  73. 71 008e 3383 std Z+3,r19
  74. 72 0090 4054 subi r20,64
  75. 73 0092 5244 sbci r21,66
  76. 74 0094 6F40 sbci r22,15
  77. 75 0096 7109 sbc r23,__zero_reg__
  78. 76 0098 4483 std Z+4,r20
  79. 77 009a 5583 std Z+5,r21
  80. 78 009c 6683 std Z+6,r22
  81. 79 009e 7783 std Z+7,r23
  82. 80 .L3:
  83. 81 00a0 2097 sbiw r28,0
  84. 82 00a2 01F0 breq .L5
  85. 83 00a4 6091 0000 lds r22,_timezone
  86. 84 00a8 7091 0000 lds r23,_timezone+1
  87. 85 00ac 8091 0000 lds r24,_timezone+2
  88. 86 00b0 9091 0000 lds r25,_timezone+3
  89. 87 00b4 2CE3 ldi r18,lo8(60)
  90. 88 00b6 30E0 ldi r19,0
  91. 89 00b8 40E0 ldi r20,0
  92. 90 00ba 50E0 ldi r21,0
  93. 91 00bc 0E94 0000 call __divmodsi4
  94. 92 00c0 3983 std Y+1,r19
  95. 93 00c2 2883 st Y,r18
  96. 94 00c4 8091 0000 lds r24,_daylight
  97. 95 00c8 9091 0000 lds r25,_daylight+1
  98. 96 00cc 9B83 std Y+3,r25
  99. 97 00ce 8A83 std Y+2,r24
  100. 98 .L5:
  101. 99 00d0 80E0 ldi r24,0
  102. 100 00d2 90E0 ldi r25,0
  103. 101 /* epilogue start */
  104. 102 00d4 DF91 pop r29
  105. 103 00d6 CF91 pop r28
  106. 104 00d8 1F91 pop r17
  107. 105 00da 0F91 pop r16
  108. 106 00dc 0895 ret
  109. 107 .size gettimeofday, .-gettimeofday
  110. 108 .section .text.settimeofday,"ax",@progbits
  111. 109 .global settimeofday
  112. 110 .type settimeofday, @function
  113. 111 settimeofday:
  114. 112 0000 0F93 push r16
  115. 113 0002 1F93 push r17
  116. 114 0004 CF93 push r28
  117. GAS LISTING /tmp/cckpER3d.s page 3
  118. 115 0006 DF93 push r29
  119. 116 /* prologue: function */
  120. 117 /* frame size = 0 */
  121. 118 /* stack size = 4 */
  122. 119 .L__stack_usage = 4
  123. 120 0008 FB01 movw r30,r22
  124. 121 000a 0097 sbiw r24,0
  125. 122 000c 01F4 brne .+2
  126. 123 000e 00C0 rjmp .L12
  127. 124 0010 0091 0000 lds r16,system_time
  128. 125 0014 1091 0000 lds r17,system_time+1
  129. 126 0018 2091 0000 lds r18,system_time+2
  130. 127 001c 3091 0000 lds r19,system_time+3
  131. 128 0020 DC01 movw r26,r24
  132. 129 0022 4D91 ld r20,X+
  133. 130 0024 5D91 ld r21,X+
  134. 131 0026 6D91 ld r22,X+
  135. 132 0028 7C91 ld r23,X
  136. 133 002a 1397 sbiw r26,3
  137. 134 002c 401B sub r20,r16
  138. 135 002e 510B sbc r21,r17
  139. 136 0030 620B sbc r22,r18
  140. 137 0032 730B sbc r23,r19
  141. 138 0034 4093 0000 sts epo_offs,r20
  142. 139 0038 5093 0000 sts epo_offs+1,r21
  143. 140 003c 6093 0000 sts epo_offs+2,r22
  144. 141 0040 7093 0000 sts epo_offs+3,r23
  145. 142 0044 0091 0000 lds r16,system_time+4
  146. 143 0048 1091 0000 lds r17,system_time+4+1
  147. 144 004c 2091 0000 lds r18,system_time+4+2
  148. 145 0050 3091 0000 lds r19,system_time+4+3
  149. 146 0054 1496 adiw r26,4
  150. 147 0056 8D91 ld r24,X+
  151. 148 0058 9D91 ld r25,X+
  152. 149 005a 0D90 ld __tmp_reg__,X+
  153. 150 005c BC91 ld r27,X
  154. 151 005e A02D mov r26,__tmp_reg__
  155. 152 0060 801B sub r24,r16
  156. 153 0062 910B sbc r25,r17
  157. 154 0064 A20B sbc r26,r18
  158. 155 0066 B30B sbc r27,r19
  159. 156 0068 8093 0000 sts epo_offs+4,r24
  160. 157 006c 9093 0000 sts epo_offs+4+1,r25
  161. 158 0070 A093 0000 sts epo_offs+4+2,r26
  162. 159 0074 B093 0000 sts epo_offs+4+3,r27
  163. 160 0078 B7FF sbrs r27,7
  164. 161 007a 00C0 rjmp .L12
  165. 162 007c 4150 subi r20,1
  166. 163 007e 5109 sbc r21,__zero_reg__
  167. 164 0080 6109 sbc r22,__zero_reg__
  168. 165 0082 7109 sbc r23,__zero_reg__
  169. 166 0084 4093 0000 sts epo_offs,r20
  170. 167 0088 5093 0000 sts epo_offs+1,r21
  171. 168 008c 6093 0000 sts epo_offs+2,r22
  172. 169 0090 7093 0000 sts epo_offs+3,r23
  173. 170 0094 805C subi r24,-64
  174. 171 0096 9D4B sbci r25,-67
  175. GAS LISTING /tmp/cckpER3d.s page 4
  176. 172 0098 A04F sbci r26,-16
  177. 173 009a BF4F sbci r27,-1
  178. 174 009c 8093 0000 sts epo_offs+4,r24
  179. 175 00a0 9093 0000 sts epo_offs+4+1,r25
  180. 176 00a4 A093 0000 sts epo_offs+4+2,r26
  181. 177 00a8 B093 0000 sts epo_offs+4+3,r27
  182. 178 .L12:
  183. 179 00ac 3097 sbiw r30,0
  184. 180 00ae 01F0 breq .L14
  185. 181 00b0 2081 ld r18,Z
  186. 182 00b2 3181 ldd r19,Z+1
  187. 183 00b4 4CE3 ldi r20,lo8(60)
  188. 184 00b6 429F mul r20,r18
  189. 185 00b8 C001 movw r24,r0
  190. 186 00ba 439F mul r20,r19
  191. 187 00bc 900D add r25,r0
  192. 188 00be 1124 clr __zero_reg__
  193. 189 00c0 092E mov __tmp_reg__,r25
  194. 190 00c2 000C lsl r0
  195. 191 00c4 AA0B sbc r26,r26
  196. 192 00c6 BB0B sbc r27,r27
  197. 193 00c8 8093 0000 sts _timezone,r24
  198. 194 00cc 9093 0000 sts _timezone+1,r25
  199. 195 00d0 A093 0000 sts _timezone+2,r26
  200. 196 00d4 B093 0000 sts _timezone+3,r27
  201. 197 00d8 8281 ldd r24,Z+2
  202. 198 00da 9381 ldd r25,Z+3
  203. 199 00dc 9093 0000 sts _daylight+1,r25
  204. 200 00e0 8093 0000 sts _daylight,r24
  205. 201 .L14:
  206. 202 00e4 80E0 ldi r24,0
  207. 203 00e6 90E0 ldi r25,0
  208. 204 /* epilogue start */
  209. 205 00e8 DF91 pop r29
  210. 206 00ea CF91 pop r28
  211. 207 00ec 1F91 pop r17
  212. 208 00ee 0F91 pop r16
  213. 209 00f0 0895 ret
  214. 210 .size settimeofday, .-settimeofday
  215. 211 .ident "GCC: (GNU) 5.3.0"
  216. GAS LISTING /tmp/cckpER3d.s page 5
  217. DEFINED SYMBOLS
  218. *ABS*:0000000000000000 timeofday.c
  219. /tmp/cckpER3d.s:2 *ABS*:000000000000003e __SP_H__
  220. /tmp/cckpER3d.s:3 *ABS*:000000000000003d __SP_L__
  221. /tmp/cckpER3d.s:4 *ABS*:000000000000003f __SREG__
  222. /tmp/cckpER3d.s:5 *ABS*:000000000000003b __RAMPZ__
  223. /tmp/cckpER3d.s:6 *ABS*:0000000000000000 __tmp_reg__
  224. /tmp/cckpER3d.s:7 *ABS*:0000000000000001 __zero_reg__
  225. /tmp/cckpER3d.s:11 .text.gettimeofday:0000000000000000 gettimeofday
  226. /tmp/cckpER3d.s:111 .text.settimeofday:0000000000000000 settimeofday
  227. UNDEFINED SYMBOLS
  228. system_time
  229. epo_offs
  230. _timezone
  231. __divmodsi4
  232. _daylight