i2c_pcf85xx.lst 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609
  1. GAS LISTING /tmp/ccc91ZO7.s page 1
  2. 1 .file "i2c_pcf85xx.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.I2cPcfGetAlarm,"ax",@progbits
  10. 9 .type I2cPcfGetAlarm, @function
  11. 10 I2cPcfGetAlarm:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 8FEF ldi r24,lo8(-1)
  17. 16 0002 9FEF ldi r25,lo8(-1)
  18. 17 0004 0895 ret
  19. 18 .size I2cPcfGetAlarm, .-I2cPcfGetAlarm
  20. 19 .section .text.I2cPcfSetAlarm,"ax",@progbits
  21. 20 .type I2cPcfSetAlarm, @function
  22. 21 I2cPcfSetAlarm:
  23. 22 /* prologue: function */
  24. 23 /* frame size = 0 */
  25. 24 /* stack size = 0 */
  26. 25 .L__stack_usage = 0
  27. 26 0000 8FEF ldi r24,lo8(-1)
  28. 27 0002 9FEF ldi r25,lo8(-1)
  29. 28 0004 0895 ret
  30. 29 .size I2cPcfSetAlarm, .-I2cPcfSetAlarm
  31. 30 .section .text.I2cPcfClearStatus,"ax",@progbits
  32. 31 .type I2cPcfClearStatus, @function
  33. 32 I2cPcfClearStatus:
  34. 33 /* prologue: function */
  35. 34 /* frame size = 0 */
  36. 35 /* stack size = 0 */
  37. 36 .L__stack_usage = 0
  38. 37 0000 4095 com r20
  39. 38 0002 5095 com r21
  40. 39 0004 6095 com r22
  41. 40 0006 7095 com r23
  42. 41 0008 8091 0000 lds r24,rtc_status
  43. 42 000c 9091 0000 lds r25,rtc_status+1
  44. 43 0010 A091 0000 lds r26,rtc_status+2
  45. 44 0014 B091 0000 lds r27,rtc_status+3
  46. 45 0018 4823 and r20,r24
  47. 46 001a 5923 and r21,r25
  48. 47 001c 6A23 and r22,r26
  49. 48 001e 7B23 and r23,r27
  50. 49 0020 4093 0000 sts rtc_status,r20
  51. 50 0024 5093 0000 sts rtc_status+1,r21
  52. 51 0028 6093 0000 sts rtc_status+2,r22
  53. 52 002c 7093 0000 sts rtc_status+3,r23
  54. 53 0030 80E0 ldi r24,0
  55. 54 0032 90E0 ldi r25,0
  56. 55 0034 0895 ret
  57. 56 .size I2cPcfClearStatus, .-I2cPcfClearStatus
  58. 57 .section .text.I2cPcfGetStatus,"ax",@progbits
  59. GAS LISTING /tmp/ccc91ZO7.s page 2
  60. 58 .type I2cPcfGetStatus, @function
  61. 59 I2cPcfGetStatus:
  62. 60 0000 EF92 push r14
  63. 61 0002 FF92 push r15
  64. 62 0004 0F93 push r16
  65. 63 0006 1F93 push r17
  66. 64 0008 CF93 push r28
  67. 65 000a DF93 push r29
  68. 66 000c 1F92 push __zero_reg__
  69. 67 000e CDB7 in r28,__SP_L__
  70. 68 0010 DEB7 in r29,__SP_H__
  71. 69 /* prologue: function */
  72. 70 /* frame size = 1 */
  73. 71 /* stack size = 7 */
  74. 72 .L__stack_usage = 7
  75. 73 0012 7B01 movw r14,r22
  76. 74 0014 22E0 ldi r18,lo8(2)
  77. 75 0016 2983 std Y+1,r18
  78. 76 0018 01E0 ldi r16,lo8(1)
  79. 77 001a 10E0 ldi r17,0
  80. 78 001c 9E01 movw r18,r28
  81. 79 001e 2F5F subi r18,-1
  82. 80 0020 3F4F sbci r19,-1
  83. 81 0022 41E0 ldi r20,lo8(1)
  84. 82 0024 50E0 ldi r21,0
  85. 83 0026 B901 movw r22,r18
  86. 84 0028 FC01 movw r30,r24
  87. 85 002a 8081 ld r24,Z
  88. 86 002c 9181 ldd r25,Z+1
  89. 87 002e 0E94 0000 call NutI2cMasterTransceive
  90. 88 0032 0197 sbiw r24,1
  91. 89 0034 01F4 brne .L7
  92. 90 0036 8981 ldd r24,Y+1
  93. 91 0038 87FF sbrs r24,7
  94. 92 003a 00C0 rjmp .L6
  95. 93 003c 8091 0000 lds r24,rtc_status
  96. 94 0040 9091 0000 lds r25,rtc_status+1
  97. 95 0044 A091 0000 lds r26,rtc_status+2
  98. 96 0048 B091 0000 lds r27,rtc_status+3
  99. 97 004c 8160 ori r24,1
  100. 98 004e 8093 0000 sts rtc_status,r24
  101. 99 0052 9093 0000 sts rtc_status+1,r25
  102. 100 0056 A093 0000 sts rtc_status+2,r26
  103. 101 005a B093 0000 sts rtc_status+3,r27
  104. 102 .L6:
  105. 103 005e 8091 0000 lds r24,rtc_status
  106. 104 0062 9091 0000 lds r25,rtc_status+1
  107. 105 0066 A091 0000 lds r26,rtc_status+2
  108. 106 006a B091 0000 lds r27,rtc_status+3
  109. 107 006e F701 movw r30,r14
  110. 108 0070 8083 st Z,r24
  111. 109 0072 9183 std Z+1,r25
  112. 110 0074 A283 std Z+2,r26
  113. 111 0076 B383 std Z+3,r27
  114. 112 0078 80E0 ldi r24,0
  115. 113 007a 90E0 ldi r25,0
  116. 114 007c 00C0 rjmp .L5
  117. GAS LISTING /tmp/ccc91ZO7.s page 3
  118. 115 .L7:
  119. 116 007e 8FEF ldi r24,lo8(-1)
  120. 117 0080 9FEF ldi r25,lo8(-1)
  121. 118 .L5:
  122. 119 /* epilogue start */
  123. 120 0082 0F90 pop __tmp_reg__
  124. 121 0084 DF91 pop r29
  125. 122 0086 CF91 pop r28
  126. 123 0088 1F91 pop r17
  127. 124 008a 0F91 pop r16
  128. 125 008c FF90 pop r15
  129. 126 008e EF90 pop r14
  130. 127 0090 0895 ret
  131. 128 .size I2cPcfGetStatus, .-I2cPcfGetStatus
  132. 129 .section .text.I2cPcfInit,"ax",@progbits
  133. 130 .type I2cPcfInit, @function
  134. 131 I2cPcfInit:
  135. 132 0000 CF93 push r28
  136. 133 0002 DF93 push r29
  137. 134 0004 00D0 rcall .
  138. 135 0006 1F92 push __zero_reg__
  139. 136 0008 CDB7 in r28,__SP_L__
  140. 137 000a DEB7 in r29,__SP_H__
  141. 138 /* prologue: function */
  142. 139 /* frame size = 4 */
  143. 140 /* stack size = 6 */
  144. 141 .L__stack_usage = 6
  145. 142 000c BE01 movw r22,r28
  146. 143 000e 6F5F subi r22,-1
  147. 144 0010 7F4F sbci r23,-1
  148. 145 0012 0E94 0000 call I2cPcfGetStatus
  149. 146 /* epilogue start */
  150. 147 0016 0F90 pop __tmp_reg__
  151. 148 0018 0F90 pop __tmp_reg__
  152. 149 001a 0F90 pop __tmp_reg__
  153. 150 001c 0F90 pop __tmp_reg__
  154. 151 001e DF91 pop r29
  155. 152 0020 CF91 pop r28
  156. 153 0022 0895 ret
  157. 154 .size I2cPcfInit, .-I2cPcfInit
  158. 155 .section .text.I2cPcfSetClock,"ax",@progbits
  159. 156 .type I2cPcfSetClock, @function
  160. 157 I2cPcfSetClock:
  161. 158 0000 EF92 push r14
  162. 159 0002 FF92 push r15
  163. 160 0004 0F93 push r16
  164. 161 0006 1F93 push r17
  165. 162 0008 CF93 push r28
  166. 163 000a DF93 push r29
  167. 164 000c CDB7 in r28,__SP_L__
  168. 165 000e DEB7 in r29,__SP_H__
  169. 166 0010 2897 sbiw r28,8
  170. 167 0012 0FB6 in __tmp_reg__,__SREG__
  171. 168 0014 F894 cli
  172. 169 0016 DEBF out __SP_H__,r29
  173. 170 0018 0FBE out __SREG__,__tmp_reg__
  174. 171 001a CDBF out __SP_L__,r28
  175. GAS LISTING /tmp/ccc91ZO7.s page 4
  176. 172 /* prologue: function */
  177. 173 /* frame size = 8 */
  178. 174 /* stack size = 14 */
  179. 175 .L__stack_usage = 14
  180. 176 001c 7C01 movw r14,r24
  181. 177 001e FB01 movw r30,r22
  182. 178 0020 82E0 ldi r24,lo8(2)
  183. 179 0022 8983 std Y+1,r24
  184. 180 0024 0081 ld r16,Z
  185. 181 0026 1181 ldd r17,Z+1
  186. 182 0028 C801 movw r24,r16
  187. 183 002a 9927 clr r25
  188. 184 002c 2AE0 ldi r18,lo8(10)
  189. 185 002e 30E0 ldi r19,0
  190. 186 0030 B901 movw r22,r18
  191. 187 0032 0E94 0000 call __divmodhi4
  192. 188 0036 462F mov r20,r22
  193. 189 0038 C801 movw r24,r16
  194. 190 003a B901 movw r22,r18
  195. 191 003c 0E94 0000 call __divmodhi4
  196. 192 0040 90E1 ldi r25,lo8(16)
  197. 193 0042 499F mul r20,r25
  198. 194 0044 800D add r24,r0
  199. 195 0046 1124 clr __zero_reg__
  200. 196 0048 8A83 std Y+2,r24
  201. 197 004a 0281 ldd r16,Z+2
  202. 198 004c 1381 ldd r17,Z+3
  203. 199 004e C801 movw r24,r16
  204. 200 0050 9927 clr r25
  205. 201 0052 B901 movw r22,r18
  206. 202 0054 0E94 0000 call __divmodhi4
  207. 203 0058 462F mov r20,r22
  208. 204 005a C801 movw r24,r16
  209. 205 005c B901 movw r22,r18
  210. 206 005e 0E94 0000 call __divmodhi4
  211. 207 0062 90E1 ldi r25,lo8(16)
  212. 208 0064 499F mul r20,r25
  213. 209 0066 800D add r24,r0
  214. 210 0068 1124 clr __zero_reg__
  215. 211 006a 8B83 std Y+3,r24
  216. 212 006c 0481 ldd r16,Z+4
  217. 213 006e 1581 ldd r17,Z+5
  218. 214 0070 C801 movw r24,r16
  219. 215 0072 9927 clr r25
  220. 216 0074 B901 movw r22,r18
  221. 217 0076 0E94 0000 call __divmodhi4
  222. 218 007a 462F mov r20,r22
  223. 219 007c C801 movw r24,r16
  224. 220 007e B901 movw r22,r18
  225. 221 0080 0E94 0000 call __divmodhi4
  226. 222 0084 90E1 ldi r25,lo8(16)
  227. 223 0086 499F mul r20,r25
  228. 224 0088 800D add r24,r0
  229. 225 008a 1124 clr __zero_reg__
  230. 226 008c 8C83 std Y+4,r24
  231. 227 008e 0681 ldd r16,Z+6
  232. 228 0090 1781 ldd r17,Z+7
  233. GAS LISTING /tmp/ccc91ZO7.s page 5
  234. 229 0092 C801 movw r24,r16
  235. 230 0094 9927 clr r25
  236. 231 0096 B901 movw r22,r18
  237. 232 0098 0E94 0000 call __divmodhi4
  238. 233 009c 462F mov r20,r22
  239. 234 009e C801 movw r24,r16
  240. 235 00a0 B901 movw r22,r18
  241. 236 00a2 0E94 0000 call __divmodhi4
  242. 237 00a6 90E1 ldi r25,lo8(16)
  243. 238 00a8 499F mul r20,r25
  244. 239 00aa 800D add r24,r0
  245. 240 00ac 1124 clr __zero_reg__
  246. 241 00ae 8D83 std Y+5,r24
  247. 242 00b0 8485 ldd r24,Z+12
  248. 243 00b2 8E83 std Y+6,r24
  249. 244 00b4 4085 ldd r20,Z+8
  250. 245 00b6 5185 ldd r21,Z+9
  251. 246 00b8 81E0 ldi r24,lo8(1)
  252. 247 00ba 840F add r24,r20
  253. 248 00bc 1AE0 ldi r17,lo8(10)
  254. 249 00be 612F mov r22,r17
  255. 250 00c0 0E94 0000 call __udivmodqi4
  256. 251 00c4 082F mov r16,r24
  257. 252 00c6 CA01 movw r24,r20
  258. 253 00c8 0196 adiw r24,1
  259. 254 00ca B901 movw r22,r18
  260. 255 00cc 0E94 0000 call __divmodhi4
  261. 256 00d0 482F mov r20,r24
  262. 257 00d2 90E1 ldi r25,lo8(16)
  263. 258 00d4 099F mul r16,r25
  264. 259 00d6 400D add r20,r0
  265. 260 00d8 1124 clr __zero_reg__
  266. 261 00da 4F83 std Y+7,r20
  267. 262 00dc 0284 ldd __tmp_reg__,Z+10
  268. 263 00de F385 ldd r31,Z+11
  269. 264 00e0 E02D mov r30,__tmp_reg__
  270. 265 00e2 E436 cpi r30,100
  271. 266 00e4 F105 cpc r31,__zero_reg__
  272. 267 00e6 04F0 brlt .L11
  273. 268 00e8 8CE9 ldi r24,lo8(-100)
  274. 269 00ea 8E0F add r24,r30
  275. 270 00ec 612F mov r22,r17
  276. 271 00ee 0E94 0000 call __udivmodqi4
  277. 272 00f2 182F mov r17,r24
  278. 273 00f4 CF01 movw r24,r30
  279. 274 00f6 8456 subi r24,100
  280. 275 00f8 9109 sbc r25,__zero_reg__
  281. 276 00fa B901 movw r22,r18
  282. 277 00fc 0E94 0000 call __divmodhi4
  283. 278 0100 E0E1 ldi r30,lo8(16)
  284. 279 0102 1E9F mul r17,r30
  285. 280 0104 800D add r24,r0
  286. 281 0106 1124 clr __zero_reg__
  287. 282 0108 8887 std Y+8,r24
  288. 283 010a 4068 ori r20,lo8(-128)
  289. 284 010c 4F83 std Y+7,r20
  290. 285 010e 00C0 rjmp .L12
  291. GAS LISTING /tmp/ccc91ZO7.s page 6
  292. 286 .L11:
  293. 287 0110 CF01 movw r24,r30
  294. 288 0112 9927 clr r25
  295. 289 0114 B901 movw r22,r18
  296. 290 0116 0E94 0000 call __divmodhi4
  297. 291 011a 462F mov r20,r22
  298. 292 011c CF01 movw r24,r30
  299. 293 011e B901 movw r22,r18
  300. 294 0120 0E94 0000 call __divmodhi4
  301. 295 0124 F0E1 ldi r31,lo8(16)
  302. 296 0126 4F9F mul r20,r31
  303. 297 0128 800D add r24,r0
  304. 298 012a 1124 clr __zero_reg__
  305. 299 012c 8887 std Y+8,r24
  306. 300 .L12:
  307. 301 012e 00E0 ldi r16,0
  308. 302 0130 10E0 ldi r17,0
  309. 303 0132 20E0 ldi r18,0
  310. 304 0134 30E0 ldi r19,0
  311. 305 0136 48E0 ldi r20,lo8(8)
  312. 306 0138 50E0 ldi r21,0
  313. 307 013a BE01 movw r22,r28
  314. 308 013c 6F5F subi r22,-1
  315. 309 013e 7F4F sbci r23,-1
  316. 310 0140 F701 movw r30,r14
  317. 311 0142 8081 ld r24,Z
  318. 312 0144 9181 ldd r25,Z+1
  319. 313 0146 0E94 0000 call NutI2cMasterTransceive
  320. 314 /* epilogue start */
  321. 315 014a 2896 adiw r28,8
  322. 316 014c 0FB6 in __tmp_reg__,__SREG__
  323. 317 014e F894 cli
  324. 318 0150 DEBF out __SP_H__,r29
  325. 319 0152 0FBE out __SREG__,__tmp_reg__
  326. 320 0154 CDBF out __SP_L__,r28
  327. 321 0156 DF91 pop r29
  328. 322 0158 CF91 pop r28
  329. 323 015a 1F91 pop r17
  330. 324 015c 0F91 pop r16
  331. 325 015e FF90 pop r15
  332. 326 0160 EF90 pop r14
  333. 327 0162 0895 ret
  334. 328 .size I2cPcfSetClock, .-I2cPcfSetClock
  335. 329 .section .text.I2cPcfGetClock,"ax",@progbits
  336. 330 .type I2cPcfGetClock, @function
  337. 331 I2cPcfGetClock:
  338. 332 0000 EF92 push r14
  339. 333 0002 FF92 push r15
  340. 334 0004 0F93 push r16
  341. 335 0006 1F93 push r17
  342. 336 0008 CF93 push r28
  343. 337 000a DF93 push r29
  344. 338 000c CDB7 in r28,__SP_L__
  345. 339 000e DEB7 in r29,__SP_H__
  346. 340 0010 2797 sbiw r28,7
  347. 341 0012 0FB6 in __tmp_reg__,__SREG__
  348. 342 0014 F894 cli
  349. GAS LISTING /tmp/ccc91ZO7.s page 7
  350. 343 0016 DEBF out __SP_H__,r29
  351. 344 0018 0FBE out __SREG__,__tmp_reg__
  352. 345 001a CDBF out __SP_L__,r28
  353. 346 /* prologue: function */
  354. 347 /* frame size = 7 */
  355. 348 /* stack size = 13 */
  356. 349 .L__stack_usage = 13
  357. 350 001c 7B01 movw r14,r22
  358. 351 001e 22E0 ldi r18,lo8(2)
  359. 352 0020 2983 std Y+1,r18
  360. 353 0022 07E0 ldi r16,lo8(7)
  361. 354 0024 10E0 ldi r17,0
  362. 355 0026 9E01 movw r18,r28
  363. 356 0028 2F5F subi r18,-1
  364. 357 002a 3F4F sbci r19,-1
  365. 358 002c 41E0 ldi r20,lo8(1)
  366. 359 002e 50E0 ldi r21,0
  367. 360 0030 B901 movw r22,r18
  368. 361 0032 FC01 movw r30,r24
  369. 362 0034 8081 ld r24,Z
  370. 363 0036 9181 ldd r25,Z+1
  371. 364 0038 0E94 0000 call NutI2cMasterTransceive
  372. 365 003c 0797 sbiw r24,7
  373. 366 003e 01F0 breq .+2
  374. 367 0040 00C0 rjmp .L17
  375. 368 0042 2981 ldd r18,Y+1
  376. 369 0044 822F mov r24,r18
  377. 370 0046 8F77 andi r24,lo8(127)
  378. 371 0048 90E0 ldi r25,0
  379. 372 004a 34E0 ldi r19,4
  380. 373 1:
  381. 374 004c 9595 asr r25
  382. 375 004e 8795 ror r24
  383. 376 0050 3A95 dec r19
  384. 377 0052 01F4 brne 1b
  385. 378 0054 4AE0 ldi r20,lo8(10)
  386. 379 0056 489F mul r20,r24
  387. 380 0058 B001 movw r22,r0
  388. 381 005a 499F mul r20,r25
  389. 382 005c 700D add r23,r0
  390. 383 005e 1124 clr __zero_reg__
  391. 384 0060 2F70 andi r18,lo8(15)
  392. 385 0062 CB01 movw r24,r22
  393. 386 0064 820F add r24,r18
  394. 387 0066 911D adc r25,__zero_reg__
  395. 388 0068 F701 movw r30,r14
  396. 389 006a 9183 std Z+1,r25
  397. 390 006c 8083 st Z,r24
  398. 391 006e 2A81 ldd r18,Y+2
  399. 392 0070 822F mov r24,r18
  400. 393 0072 8F77 andi r24,lo8(127)
  401. 394 0074 90E0 ldi r25,0
  402. 395 0076 54E0 ldi r21,4
  403. 396 1:
  404. 397 0078 9595 asr r25
  405. 398 007a 8795 ror r24
  406. 399 007c 5A95 dec r21
  407. GAS LISTING /tmp/ccc91ZO7.s page 8
  408. 400 007e 01F4 brne 1b
  409. 401 0080 489F mul r20,r24
  410. 402 0082 B001 movw r22,r0
  411. 403 0084 499F mul r20,r25
  412. 404 0086 700D add r23,r0
  413. 405 0088 1124 clr __zero_reg__
  414. 406 008a 2F70 andi r18,lo8(15)
  415. 407 008c CB01 movw r24,r22
  416. 408 008e 820F add r24,r18
  417. 409 0090 911D adc r25,__zero_reg__
  418. 410 0092 9383 std Z+3,r25
  419. 411 0094 8283 std Z+2,r24
  420. 412 0096 2B81 ldd r18,Y+3
  421. 413 0098 822F mov r24,r18
  422. 414 009a 8F73 andi r24,lo8(63)
  423. 415 009c 90E0 ldi r25,0
  424. 416 009e 64E0 ldi r22,4
  425. 417 1:
  426. 418 00a0 9595 asr r25
  427. 419 00a2 8795 ror r24
  428. 420 00a4 6A95 dec r22
  429. 421 00a6 01F4 brne 1b
  430. 422 00a8 489F mul r20,r24
  431. 423 00aa B001 movw r22,r0
  432. 424 00ac 499F mul r20,r25
  433. 425 00ae 700D add r23,r0
  434. 426 00b0 1124 clr __zero_reg__
  435. 427 00b2 2F70 andi r18,lo8(15)
  436. 428 00b4 CB01 movw r24,r22
  437. 429 00b6 820F add r24,r18
  438. 430 00b8 911D adc r25,__zero_reg__
  439. 431 00ba 9583 std Z+5,r25
  440. 432 00bc 8483 std Z+4,r24
  441. 433 00be 2C81 ldd r18,Y+4
  442. 434 00c0 822F mov r24,r18
  443. 435 00c2 8F73 andi r24,lo8(63)
  444. 436 00c4 90E0 ldi r25,0
  445. 437 00c6 74E0 ldi r23,4
  446. 438 1:
  447. 439 00c8 9595 asr r25
  448. 440 00ca 8795 ror r24
  449. 441 00cc 7A95 dec r23
  450. 442 00ce 01F4 brne 1b
  451. 443 00d0 489F mul r20,r24
  452. 444 00d2 B001 movw r22,r0
  453. 445 00d4 499F mul r20,r25
  454. 446 00d6 700D add r23,r0
  455. 447 00d8 1124 clr __zero_reg__
  456. 448 00da 2F70 andi r18,lo8(15)
  457. 449 00dc CB01 movw r24,r22
  458. 450 00de 820F add r24,r18
  459. 451 00e0 911D adc r25,__zero_reg__
  460. 452 00e2 9783 std Z+7,r25
  461. 453 00e4 8683 std Z+6,r24
  462. 454 00e6 5E81 ldd r21,Y+6
  463. 455 00e8 252F mov r18,r21
  464. 456 00ea 2F71 andi r18,lo8(31)
  465. GAS LISTING /tmp/ccc91ZO7.s page 9
  466. 457 00ec 30E0 ldi r19,0
  467. 458 00ee A4E0 ldi r26,4
  468. 459 1:
  469. 460 00f0 3595 asr r19
  470. 461 00f2 2795 ror r18
  471. 462 00f4 AA95 dec r26
  472. 463 00f6 01F4 brne 1b
  473. 464 00f8 429F mul r20,r18
  474. 465 00fa C001 movw r24,r0
  475. 466 00fc 439F mul r20,r19
  476. 467 00fe 900D add r25,r0
  477. 468 0100 1124 clr __zero_reg__
  478. 469 0102 252F mov r18,r21
  479. 470 0104 2F70 andi r18,lo8(15)
  480. 471 0106 820F add r24,r18
  481. 472 0108 911D adc r25,__zero_reg__
  482. 473 010a 0197 sbiw r24,1
  483. 474 010c 9187 std Z+9,r25
  484. 475 010e 8087 std Z+8,r24
  485. 476 0110 8F81 ldd r24,Y+7
  486. 477 0112 282F mov r18,r24
  487. 478 0114 2295 swap r18
  488. 479 0116 2F70 andi r18,lo8(15)
  489. 480 0118 8F70 andi r24,lo8(15)
  490. 481 011a 90E0 ldi r25,0
  491. 482 011c FAE0 ldi r31,lo8(10)
  492. 483 011e 2F9F mul r18,r31
  493. 484 0120 800D add r24,r0
  494. 485 0122 911D adc r25,r1
  495. 486 0124 1124 clr __zero_reg__
  496. 487 0126 57FF sbrs r21,7
  497. 488 0128 00C0 rjmp .L18
  498. 489 012a 8C59 subi r24,-100
  499. 490 012c 9F4F sbci r25,-1
  500. 491 .L18:
  501. 492 012e F701 movw r30,r14
  502. 493 0130 9387 std Z+11,r25
  503. 494 0132 8287 std Z+10,r24
  504. 495 0134 8D81 ldd r24,Y+5
  505. 496 0136 8770 andi r24,lo8(7)
  506. 497 0138 90E0 ldi r25,0
  507. 498 013a F701 movw r30,r14
  508. 499 013c 9587 std Z+13,r25
  509. 500 013e 8487 std Z+12,r24
  510. 501 0140 80E0 ldi r24,0
  511. 502 0142 90E0 ldi r25,0
  512. 503 0144 00C0 rjmp .L14
  513. 504 .L17:
  514. 505 0146 8FEF ldi r24,lo8(-1)
  515. 506 0148 9FEF ldi r25,lo8(-1)
  516. 507 .L14:
  517. 508 /* epilogue start */
  518. 509 014a 2796 adiw r28,7
  519. 510 014c 0FB6 in __tmp_reg__,__SREG__
  520. 511 014e F894 cli
  521. 512 0150 DEBF out __SP_H__,r29
  522. 513 0152 0FBE out __SREG__,__tmp_reg__
  523. GAS LISTING /tmp/ccc91ZO7.s page 10
  524. 514 0154 CDBF out __SP_L__,r28
  525. 515 0156 DF91 pop r29
  526. 516 0158 CF91 pop r28
  527. 517 015a 1F91 pop r17
  528. 518 015c 0F91 pop r16
  529. 519 015e FF90 pop r15
  530. 520 0160 EF90 pop r14
  531. 521 0162 0895 ret
  532. 522 .size I2cPcfGetClock, .-I2cPcfGetClock
  533. 523 .global rtcI2cPcf85xx
  534. 524 .data
  535. 525 .type rtcI2cPcf85xx, @object
  536. 526 .size rtcI2cPcf85xx, 18
  537. 527 rtcI2cPcf85xx:
  538. 528 0000 0000 .word i2cPcf85xx
  539. 529 0002 0000 .word gs(I2cPcfInit)
  540. 530 0004 0000 .word gs(I2cPcfGetClock)
  541. 531 0006 0000 .word gs(I2cPcfSetClock)
  542. 532 0008 0000 .word gs(I2cPcfGetAlarm)
  543. 533 000a 0000 .word gs(I2cPcfSetAlarm)
  544. 534 000c 0000 .word gs(I2cPcfGetStatus)
  545. 535 000e 0000 .word gs(I2cPcfClearStatus)
  546. 536 0010 0000 .word 0
  547. 537 .type i2cPcf85xx, @object
  548. 538 .size i2cPcf85xx, 10
  549. 539 i2cPcf85xx:
  550. 540 0012 0000 .word 0
  551. 541 0014 5100 .word 81
  552. 542 0016 64 .byte 100
  553. 543 0017 00 .byte 0
  554. 544 0018 00 .byte 0
  555. 545 0019 00 .byte 0
  556. 546 001a 0000 .word 0
  557. 547 .local rtc_status
  558. 548 .comm rtc_status,4,1
  559. 549 .ident "GCC: (GNU) 5.3.0"
  560. 550 .global __do_copy_data
  561. 551 .global __do_clear_bss
  562. GAS LISTING /tmp/ccc91ZO7.s page 11
  563. DEFINED SYMBOLS
  564. *ABS*:0000000000000000 i2c_pcf85xx.c
  565. /tmp/ccc91ZO7.s:2 *ABS*:000000000000003e __SP_H__
  566. /tmp/ccc91ZO7.s:3 *ABS*:000000000000003d __SP_L__
  567. /tmp/ccc91ZO7.s:4 *ABS*:000000000000003f __SREG__
  568. /tmp/ccc91ZO7.s:5 *ABS*:000000000000003b __RAMPZ__
  569. /tmp/ccc91ZO7.s:6 *ABS*:0000000000000000 __tmp_reg__
  570. /tmp/ccc91ZO7.s:7 *ABS*:0000000000000001 __zero_reg__
  571. /tmp/ccc91ZO7.s:10 .text.I2cPcfGetAlarm:0000000000000000 I2cPcfGetAlarm
  572. /tmp/ccc91ZO7.s:21 .text.I2cPcfSetAlarm:0000000000000000 I2cPcfSetAlarm
  573. /tmp/ccc91ZO7.s:32 .text.I2cPcfClearStatus:0000000000000000 I2cPcfClearStatus
  574. .bss:0000000000000000 rtc_status
  575. /tmp/ccc91ZO7.s:59 .text.I2cPcfGetStatus:0000000000000000 I2cPcfGetStatus
  576. /tmp/ccc91ZO7.s:131 .text.I2cPcfInit:0000000000000000 I2cPcfInit
  577. /tmp/ccc91ZO7.s:157 .text.I2cPcfSetClock:0000000000000000 I2cPcfSetClock
  578. /tmp/ccc91ZO7.s:331 .text.I2cPcfGetClock:0000000000000000 I2cPcfGetClock
  579. /tmp/ccc91ZO7.s:527 .data:0000000000000000 rtcI2cPcf85xx
  580. /tmp/ccc91ZO7.s:539 .data:0000000000000012 i2cPcf85xx
  581. UNDEFINED SYMBOLS
  582. NutI2cMasterTransceive
  583. __divmodhi4
  584. __udivmodqi4
  585. __do_copy_data
  586. __do_clear_bss