owibus0gpio.lst 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. GAS LISTING /tmp/ccS7Aefz.s page 1
  2. 1 .file "owibus0gpio.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.Gpio_Setup,"ax",@progbits
  10. 9 .type Gpio_Setup, @function
  11. 10 Gpio_Setup:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 8EEF ldi r24,lo8(-2)
  17. 16 0002 9FEF ldi r25,lo8(-1)
  18. 17 0004 0895 ret
  19. 18 .size Gpio_Setup, .-Gpio_Setup
  20. 19 .section .text.Gpio_OwiTransaction,"ax",@progbits
  21. 20 .type Gpio_OwiTransaction, @function
  22. 21 Gpio_OwiTransaction:
  23. 22 0000 AF92 push r10
  24. 23 0002 BF92 push r11
  25. 24 0004 CF92 push r12
  26. 25 0006 DF92 push r13
  27. 26 0008 EF92 push r14
  28. 27 000a FF92 push r15
  29. 28 000c 0F93 push r16
  30. 29 000e 1F93 push r17
  31. 30 0010 CF93 push r28
  32. 31 0012 DF93 push r29
  33. 32 0014 1F92 push __zero_reg__
  34. 33 0016 CDB7 in r28,__SP_L__
  35. 34 0018 DEB7 in r29,__SP_H__
  36. 35 /* prologue: function */
  37. 36 /* frame size = 1 */
  38. 37 /* stack size = 11 */
  39. 38 .L__stack_usage = 11
  40. 39 001a FC01 movw r30,r24
  41. 40 001c 8281 ldd r24,Z+2
  42. 41 001e 9381 ldd r25,Z+3
  43. 42 0020 A481 ldd r26,Z+4
  44. 43 0022 B581 ldd r27,Z+5
  45. 44 0024 8170 andi r24,1
  46. 45 0026 9927 clr r25
  47. 46 0028 AA27 clr r26
  48. 47 002a BB27 clr r27
  49. 48 002c 24E1 ldi r18,lo8(20)
  50. 49 002e 289F mul r18,r24
  51. 50 0030 F001 movw r30,r0
  52. 51 0032 299F mul r18,r25
  53. 52 0034 F00D add r31,r0
  54. 53 0036 1124 clr __zero_reg__
  55. 54 0038 8AE0 ldi r24,lo8(10)
  56. 55 003a 6802 muls r22,r24
  57. 56 003c E00D add r30,r0
  58. 57 003e F11D adc r31,r1
  59. GAS LISTING /tmp/ccS7Aefz.s page 2
  60. 58 0040 1124 clr __zero_reg__
  61. 59 0042 E050 subi r30,lo8(-(owi_timervalues_250ns))
  62. 60 0044 F040 sbci r31,hi8(-(owi_timervalues_250ns))
  63. 61 0046 0085 ldd r16,Z+8
  64. 62 0048 1185 ldd r17,Z+9
  65. 63 004a E680 ldd r14,Z+6
  66. 64 004c F780 ldd r15,Z+7
  67. 65 004e 2081 ld r18,Z
  68. 66 0050 3181 ldd r19,Z+1
  69. 67 0052 4423 tst r20
  70. 68 0054 01F0 breq .L3
  71. 69 0056 8281 ldd r24,Z+2
  72. 70 0058 9381 ldd r25,Z+3
  73. 71 005a BC01 movw r22,r24
  74. 72 005c 621B sub r22,r18
  75. 73 005e 730B sbc r23,r19
  76. 74 0060 6B01 movw r12,r22
  77. 75 0062 D694 lsr r13
  78. 76 0064 C794 ror r12
  79. 77 0066 D694 lsr r13
  80. 78 0068 C794 ror r12
  81. 79 006a 5701 movw r10,r14
  82. 80 006c 00C0 rjmp .L7
  83. 81 .L3:
  84. 82 006e 8481 ldd r24,Z+4
  85. 83 0070 9581 ldd r25,Z+5
  86. 84 0072 BC01 movw r22,r24
  87. 85 0074 621B sub r22,r18
  88. 86 0076 730B sbc r23,r19
  89. 87 0078 6B01 movw r12,r22
  90. 88 007a D694 lsr r13
  91. 89 007c C794 ror r12
  92. 90 007e D694 lsr r13
  93. 91 0080 C794 ror r12
  94. 92 0082 5801 movw r10,r16
  95. 93 .L7:
  96. 94 0084 A81A sub r10,r24
  97. 95 0086 B90A sbc r11,r25
  98. 96 0088 B694 lsr r11
  99. 97 008a A794 ror r10
  100. 98 008c B694 lsr r11
  101. 99 008e A794 ror r10
  102. 100 0090 60E0 ldi r22,0
  103. 101 0092 70E0 ldi r23,0
  104. 102 0094 CB01 movw r24,r22
  105. 103 0096 4983 std Y+1,r20
  106. 104 0098 0E94 0000 call NutSleep
  107. 105 009c B601 movw r22,r12
  108. 106 009e DD0C lsl r13
  109. 107 00a0 880B sbc r24,r24
  110. 108 00a2 990B sbc r25,r25
  111. 109 00a4 0E94 0000 call NutMicroDelay
  112. 110 00a8 B501 movw r22,r10
  113. 111 00aa BB0C lsl r11
  114. 112 00ac 880B sbc r24,r24
  115. 113 00ae 990B sbc r25,r25
  116. 114 00b0 4981 ldd r20,Y+1
  117. GAS LISTING /tmp/ccS7Aefz.s page 3
  118. 115 00b2 4423 tst r20
  119. 116 00b4 01F0 breq .L5
  120. 117 00b6 0E94 0000 call NutMicroDelay
  121. 118 00ba B801 movw r22,r16
  122. 119 00bc 6E19 sub r22,r14
  123. 120 00be 7F09 sbc r23,r15
  124. 121 00c0 7695 lsr r23
  125. 122 00c2 6795 ror r22
  126. 123 00c4 7695 lsr r23
  127. 124 00c6 6795 ror r22
  128. 125 00c8 80E0 ldi r24,0
  129. 126 00ca 90E0 ldi r25,0
  130. 127 .L5:
  131. 128 00cc 0E94 0000 call NutMicroDelay
  132. 129 00d0 80E0 ldi r24,0
  133. 130 00d2 90E0 ldi r25,0
  134. 131 /* epilogue start */
  135. 132 00d4 0F90 pop __tmp_reg__
  136. 133 00d6 DF91 pop r29
  137. 134 00d8 CF91 pop r28
  138. 135 00da 1F91 pop r17
  139. 136 00dc 0F91 pop r16
  140. 137 00de FF90 pop r15
  141. 138 00e0 EF90 pop r14
  142. 139 00e2 DF90 pop r13
  143. 140 00e4 CF90 pop r12
  144. 141 00e6 BF90 pop r11
  145. 142 00e8 AF90 pop r10
  146. 143 00ea 0895 ret
  147. 144 .size Gpio_OwiTransaction, .-Gpio_OwiTransaction
  148. 145 .section .text.Gpio_OwiTouchReset,"ax",@progbits
  149. 146 .type Gpio_OwiTouchReset, @function
  150. 147 Gpio_OwiTouchReset:
  151. 148 /* prologue: function */
  152. 149 /* frame size = 0 */
  153. 150 /* stack size = 0 */
  154. 151 .L__stack_usage = 0
  155. 152 0000 41E0 ldi r20,lo8(1)
  156. 153 0002 60E0 ldi r22,0
  157. 154 0004 0C94 0000 jmp Gpio_OwiTransaction
  158. 155 .size Gpio_OwiTouchReset, .-Gpio_OwiTouchReset
  159. 156 .section .text.Gpio_OwiReadBlock,"ax",@progbits
  160. 157 .type Gpio_OwiReadBlock, @function
  161. 158 Gpio_OwiReadBlock:
  162. 159 0000 CF92 push r12
  163. 160 0002 DF92 push r13
  164. 161 0004 EF92 push r14
  165. 162 0006 FF92 push r15
  166. 163 0008 0F93 push r16
  167. 164 000a 1F93 push r17
  168. 165 000c CF93 push r28
  169. 166 000e DF93 push r29
  170. 167 /* prologue: function */
  171. 168 /* frame size = 0 */
  172. 169 /* stack size = 8 */
  173. 170 .L__stack_usage = 8
  174. 171 0010 7C01 movw r14,r24
  175. GAS LISTING /tmp/ccS7Aefz.s page 4
  176. 172 0012 8B01 movw r16,r22
  177. 173 0014 C42E mov r12,r20
  178. 174 0016 4695 lsr r20
  179. 175 0018 4695 lsr r20
  180. 176 001a 4695 lsr r20
  181. 177 001c 50E0 ldi r21,0
  182. 178 001e 4F5F subi r20,-1
  183. 179 0020 5F4F sbci r21,-1
  184. 180 0022 60E0 ldi r22,0
  185. 181 0024 70E0 ldi r23,0
  186. 182 0026 C801 movw r24,r16
  187. 183 0028 0E94 0000 call memset
  188. 184 002c C0E0 ldi r28,0
  189. 185 002e D0E0 ldi r29,0
  190. 186 0030 D12C mov r13,__zero_reg__
  191. 187 .L11:
  192. 188 0032 CC15 cp r28,r12
  193. 189 0034 DD05 cpc r29,r13
  194. 190 0036 04F4 brge .L15
  195. 191 0038 41E0 ldi r20,lo8(1)
  196. 192 003a 61E0 ldi r22,lo8(1)
  197. 193 003c C701 movw r24,r14
  198. 194 003e 0E94 0000 call Gpio_OwiTransaction
  199. 195 0042 97FD sbrc r25,7
  200. 196 0044 00C0 rjmp .L14
  201. 197 0046 FE01 movw r30,r28
  202. 198 0048 23E0 ldi r18,3
  203. 199 1:
  204. 200 004a F595 asr r31
  205. 201 004c E795 ror r30
  206. 202 004e 2A95 dec r18
  207. 203 0050 01F4 brne 1b
  208. 204 0052 E00F add r30,r16
  209. 205 0054 F11F adc r31,r17
  210. 206 0056 9E01 movw r18,r28
  211. 207 0058 2770 andi r18,7
  212. 208 005a 3327 clr r19
  213. 209 005c 00C0 rjmp 2f
  214. 210 1:
  215. 211 005e 880F lsl r24
  216. 212 2:
  217. 213 0060 2A95 dec r18
  218. 214 0062 02F4 brpl 1b
  219. 215 0064 9081 ld r25,Z
  220. 216 0066 892B or r24,r25
  221. 217 0068 8083 st Z,r24
  222. 218 006a 2196 adiw r28,1
  223. 219 006c 00C0 rjmp .L11
  224. 220 .L15:
  225. 221 006e 80E0 ldi r24,0
  226. 222 0070 90E0 ldi r25,0
  227. 223 0072 00C0 rjmp .L12
  228. 224 .L14:
  229. 225 0074 8CEF ldi r24,lo8(-4)
  230. 226 0076 9FEF ldi r25,lo8(-1)
  231. 227 .L12:
  232. 228 /* epilogue start */
  233. GAS LISTING /tmp/ccS7Aefz.s page 5
  234. 229 0078 DF91 pop r29
  235. 230 007a CF91 pop r28
  236. 231 007c 1F91 pop r17
  237. 232 007e 0F91 pop r16
  238. 233 0080 FF90 pop r15
  239. 234 0082 EF90 pop r14
  240. 235 0084 DF90 pop r13
  241. 236 0086 CF90 pop r12
  242. 237 0088 0895 ret
  243. 238 .size Gpio_OwiReadBlock, .-Gpio_OwiReadBlock
  244. 239 .section .text.Gpio_OwiWriteBlock,"ax",@progbits
  245. 240 .type Gpio_OwiWriteBlock, @function
  246. 241 Gpio_OwiWriteBlock:
  247. 242 0000 AF92 push r10
  248. 243 0002 BF92 push r11
  249. 244 0004 CF92 push r12
  250. 245 0006 DF92 push r13
  251. 246 0008 EF92 push r14
  252. 247 000a FF92 push r15
  253. 248 000c 0F93 push r16
  254. 249 000e 1F93 push r17
  255. 250 0010 CF93 push r28
  256. 251 0012 DF93 push r29
  257. 252 /* prologue: function */
  258. 253 /* frame size = 0 */
  259. 254 /* stack size = 10 */
  260. 255 .L__stack_usage = 10
  261. 256 0014 7C01 movw r14,r24
  262. 257 0016 6B01 movw r12,r22
  263. 258 0018 C0E0 ldi r28,0
  264. 259 001a D0E0 ldi r29,0
  265. 260 001c 042F mov r16,r20
  266. 261 001e 10E0 ldi r17,0
  267. 262 0020 AA24 clr r10
  268. 263 0022 A394 inc r10
  269. 264 0024 B12C mov r11,__zero_reg__
  270. 265 .L17:
  271. 266 0026 C017 cp r28,r16
  272. 267 0028 D107 cpc r29,r17
  273. 268 002a 04F4 brge .L21
  274. 269 002c FE01 movw r30,r28
  275. 270 002e 83E0 ldi r24,3
  276. 271 1:
  277. 272 0030 F595 asr r31
  278. 273 0032 E795 ror r30
  279. 274 0034 8A95 dec r24
  280. 275 0036 01F4 brne 1b
  281. 276 0038 EC0D add r30,r12
  282. 277 003a FD1D adc r31,r13
  283. 278 003c CE01 movw r24,r28
  284. 279 003e 8770 andi r24,7
  285. 280 0040 9927 clr r25
  286. 281 0042 9501 movw r18,r10
  287. 282 0044 00C0 rjmp 2f
  288. 283 1:
  289. 284 0046 220F lsl r18
  290. 285 0048 331F rol r19
  291. GAS LISTING /tmp/ccS7Aefz.s page 6
  292. 286 2:
  293. 287 004a 8A95 dec r24
  294. 288 004c 02F4 brpl 1b
  295. 289 004e 4081 ld r20,Z
  296. 290 0050 4223 and r20,r18
  297. 291 0052 61E0 ldi r22,lo8(1)
  298. 292 0054 C701 movw r24,r14
  299. 293 0056 0E94 0000 call Gpio_OwiTransaction
  300. 294 005a 97FD sbrc r25,7
  301. 295 005c 00C0 rjmp .L20
  302. 296 005e 2196 adiw r28,1
  303. 297 0060 00C0 rjmp .L17
  304. 298 .L21:
  305. 299 0062 80E0 ldi r24,0
  306. 300 0064 90E0 ldi r25,0
  307. 301 0066 00C0 rjmp .L18
  308. 302 .L20:
  309. 303 0068 8CEF ldi r24,lo8(-4)
  310. 304 006a 9FEF ldi r25,lo8(-1)
  311. 305 .L18:
  312. 306 /* epilogue start */
  313. 307 006c DF91 pop r29
  314. 308 006e CF91 pop r28
  315. 309 0070 1F91 pop r17
  316. 310 0072 0F91 pop r16
  317. 311 0074 FF90 pop r15
  318. 312 0076 EF90 pop r14
  319. 313 0078 DF90 pop r13
  320. 314 007a CF90 pop r12
  321. 315 007c BF90 pop r11
  322. 316 007e AF90 pop r10
  323. 317 0080 0895 ret
  324. 318 .size Gpio_OwiWriteBlock, .-Gpio_OwiWriteBlock
  325. 319 .global owiBus0Gpio
  326. 320 .data
  327. 321 .type owiBus0Gpio, @object
  328. 322 .size owiBus0Gpio, 14
  329. 323 owiBus0Gpio:
  330. 324 0000 0000 .word 0
  331. 325 0002 00 .byte 0
  332. 326 0003 00 .byte 0
  333. 327 0004 00 .byte 0
  334. 328 0005 00 .byte 0
  335. 329 0006 0000 .word gs(Gpio_Setup)
  336. 330 0008 0000 .word gs(Gpio_OwiTouchReset)
  337. 331 000a 0000 .word gs(Gpio_OwiReadBlock)
  338. 332 000c 0000 .word gs(Gpio_OwiWriteBlock)
  339. 333 .ident "GCC: (GNU) 5.3.0"
  340. 334 .global __do_copy_data
  341. GAS LISTING /tmp/ccS7Aefz.s page 7
  342. DEFINED SYMBOLS
  343. *ABS*:0000000000000000 owibus0gpio.c
  344. /tmp/ccS7Aefz.s:2 *ABS*:000000000000003e __SP_H__
  345. /tmp/ccS7Aefz.s:3 *ABS*:000000000000003d __SP_L__
  346. /tmp/ccS7Aefz.s:4 *ABS*:000000000000003f __SREG__
  347. /tmp/ccS7Aefz.s:5 *ABS*:000000000000003b __RAMPZ__
  348. /tmp/ccS7Aefz.s:6 *ABS*:0000000000000000 __tmp_reg__
  349. /tmp/ccS7Aefz.s:7 *ABS*:0000000000000001 __zero_reg__
  350. /tmp/ccS7Aefz.s:10 .text.Gpio_Setup:0000000000000000 Gpio_Setup
  351. /tmp/ccS7Aefz.s:21 .text.Gpio_OwiTransaction:0000000000000000 Gpio_OwiTransaction
  352. /tmp/ccS7Aefz.s:147 .text.Gpio_OwiTouchReset:0000000000000000 Gpio_OwiTouchReset
  353. /tmp/ccS7Aefz.s:158 .text.Gpio_OwiReadBlock:0000000000000000 Gpio_OwiReadBlock
  354. /tmp/ccS7Aefz.s:241 .text.Gpio_OwiWriteBlock:0000000000000000 Gpio_OwiWriteBlock
  355. /tmp/ccS7Aefz.s:323 .data:0000000000000000 owiBus0Gpio
  356. UNDEFINED SYMBOLS
  357. owi_timervalues_250ns
  358. NutSleep
  359. NutMicroDelay
  360. memset
  361. __do_copy_data