i2cbus0gpio.lst 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. GAS LISTING /tmp/ccMHhOtt.s page 1
  2. 1 .file "i2cbus0gpio.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.TwiBusConf,"ax",@progbits
  10. 9 .type TwiBusConf, @function
  11. 10 TwiBusConf:
  12. 11 0000 CF93 push r28
  13. 12 0002 DF93 push r29
  14. 13 /* prologue: function */
  15. 14 /* frame size = 0 */
  16. 15 /* stack size = 2 */
  17. 16 .L__stack_usage = 2
  18. 17 0004 FC01 movw r30,r24
  19. 18 0006 C081 ld r28,Z
  20. 19 0008 D181 ldd r29,Z+1
  21. 20 000a 2685 ldd r18,Z+14
  22. 21 000c 3785 ldd r19,Z+15
  23. 22 000e 4089 ldd r20,Z+16
  24. 23 0010 5189 ldd r21,Z+17
  25. 24 0012 2115 cp r18,__zero_reg__
  26. 25 0014 3105 cpc r19,__zero_reg__
  27. 26 0016 4105 cpc r20,__zero_reg__
  28. 27 0018 5105 cpc r21,__zero_reg__
  29. 28 001a 01F0 breq .L5
  30. 29 001c 2138 cpi r18,-127
  31. 30 001e FAE1 ldi r31,26
  32. 31 0020 3F07 cpc r19,r31
  33. 32 0022 F6E0 ldi r31,6
  34. 33 0024 4F07 cpc r20,r31
  35. 34 0026 5105 cpc r21,__zero_reg__
  36. 35 0028 04F0 brlt .L2
  37. 36 002a 00C0 rjmp .L9
  38. 37 .L5:
  39. 38 002c 20EA ldi r18,lo8(-96)
  40. 39 002e 36E8 ldi r19,lo8(-122)
  41. 40 0030 41E0 ldi r20,lo8(1)
  42. 41 0032 50E0 ldi r21,0
  43. 42 .L2:
  44. 43 0034 60E9 ldi r22,lo8(-112)
  45. 44 0036 70ED ldi r23,lo8(-48)
  46. 45 0038 83E0 ldi r24,lo8(3)
  47. 46 003a 90E0 ldi r25,0
  48. 47 003c 0E94 0000 call __divmodsi4
  49. 48 0040 2115 cp r18,__zero_reg__
  50. 49 0042 3105 cpc r19,__zero_reg__
  51. 50 0044 01F0 breq .L4
  52. 51 0046 3983 std Y+1,r19
  53. 52 0048 2883 st Y,r18
  54. 53 004a 00C0 rjmp .L7
  55. 54 .L4:
  56. 55 004c 81E0 ldi r24,lo8(1)
  57. 56 004e 90E0 ldi r25,0
  58. 57 0050 9983 std Y+1,r25
  59. GAS LISTING /tmp/ccMHhOtt.s page 2
  60. 58 0052 8883 st Y,r24
  61. 59 .L7:
  62. 60 0054 80E0 ldi r24,0
  63. 61 0056 90E0 ldi r25,0
  64. 62 0058 00C0 rjmp .L3
  65. 63 .L9:
  66. 64 005a 8FEF ldi r24,lo8(-1)
  67. 65 005c 9FEF ldi r25,lo8(-1)
  68. 66 .L3:
  69. 67 /* epilogue start */
  70. 68 005e DF91 pop r29
  71. 69 0060 CF91 pop r28
  72. 70 0062 0895 ret
  73. 71 .size TwiBusConf, .-TwiBusConf
  74. 72 .section .text.TwiBusInit,"ax",@progbits
  75. 73 .type TwiBusInit, @function
  76. 74 TwiBusInit:
  77. 75 /* prologue: function */
  78. 76 /* frame size = 0 */
  79. 77 /* stack size = 0 */
  80. 78 .L__stack_usage = 0
  81. 79 0000 8FEF ldi r24,lo8(-1)
  82. 80 0002 9FEF ldi r25,lo8(-1)
  83. 81 0004 0895 ret
  84. 82 .size TwiBusInit, .-TwiBusInit
  85. 83 .section .text.unlikely.TwStart,"ax",@progbits
  86. 84 .type TwStart, @function
  87. 85 TwStart:
  88. 86 0000 CF93 push r28
  89. 87 0002 DF93 push r29
  90. 88 /* prologue: function */
  91. 89 /* frame size = 0 */
  92. 90 /* stack size = 2 */
  93. 91 .L__stack_usage = 2
  94. 92 0004 EC01 movw r28,r24
  95. 93 0006 6881 ld r22,Y
  96. 94 0008 7981 ldd r23,Y+1
  97. 95 000a 80E0 ldi r24,0
  98. 96 000c 90E0 ldi r25,0
  99. 97 000e 0E94 0000 call NutMicroDelay
  100. 98 0012 6881 ld r22,Y
  101. 99 0014 7981 ldd r23,Y+1
  102. 100 0016 80E0 ldi r24,0
  103. 101 0018 90E0 ldi r25,0
  104. 102 001a 0E94 0000 call NutMicroDelay
  105. 103 001e 6881 ld r22,Y
  106. 104 0020 7981 ldd r23,Y+1
  107. 105 0022 80E0 ldi r24,0
  108. 106 0024 90E0 ldi r25,0
  109. 107 0026 0E94 0000 call NutMicroDelay
  110. 108 002a 6881 ld r22,Y
  111. 109 002c 7981 ldd r23,Y+1
  112. 110 002e 80E0 ldi r24,0
  113. 111 0030 90E0 ldi r25,0
  114. 112 /* epilogue start */
  115. 113 0032 DF91 pop r29
  116. 114 0034 CF91 pop r28
  117. GAS LISTING /tmp/ccMHhOtt.s page 3
  118. 115 0036 0C94 0000 jmp NutMicroDelay
  119. 116 .size TwStart, .-TwStart
  120. 117 .section .text.unlikely.TwPut.isra.0,"ax",@progbits
  121. 118 .type TwPut.isra.0, @function
  122. 119 TwPut.isra.0:
  123. 120 /* prologue: function */
  124. 121 /* frame size = 0 */
  125. 122 /* stack size = 0 */
  126. 123 .L__stack_usage = 0
  127. 124 0000 EC01 movw r28,r24
  128. 125 .L15:
  129. 126 0002 6881 ld r22,Y
  130. 127 0004 7981 ldd r23,Y+1
  131. 128 0006 660F lsl r22
  132. 129 0008 771F rol r23
  133. 130 000a 80E0 ldi r24,0
  134. 131 000c 90E0 ldi r25,0
  135. 132 000e 0E94 0000 call NutMicroDelay
  136. 133 0012 00C0 rjmp .L15
  137. 134 .size TwPut.isra.0, .-TwPut.isra.0
  138. 135 .section .text.TwiBusTran,"ax",@progbits
  139. 136 .type TwiBusTran, @function
  140. 137 TwiBusTran:
  141. 138 0000 0F93 push r16
  142. 139 0002 1F93 push r17
  143. 140 0004 CF93 push r28
  144. 141 0006 DF93 push r29
  145. 142 /* prologue: function */
  146. 143 /* frame size = 0 */
  147. 144 /* stack size = 4 */
  148. 145 .L__stack_usage = 4
  149. 146 0008 8B01 movw r16,r22
  150. 147 000a DC01 movw r26,r24
  151. 148 000c ED91 ld r30,X+
  152. 149 000e FC91 ld r31,X
  153. 150 0010 C081 ld r28,Z
  154. 151 0012 D181 ldd r29,Z+1
  155. 152 0014 FB01 movw r30,r22
  156. 153 0016 1582 std Z+5,__zero_reg__
  157. 154 0018 1482 std Z+4,__zero_reg__
  158. 155 001a 1386 std Z+11,__zero_reg__
  159. 156 001c 1286 std Z+10,__zero_reg__
  160. 157 001e 8281 ldd r24,Z+2
  161. 158 0020 9381 ldd r25,Z+3
  162. 159 0022 892B or r24,r25
  163. 160 0024 01F4 brne .L19
  164. 161 0026 8085 ldd r24,Z+8
  165. 162 0028 9185 ldd r25,Z+9
  166. 163 002a 892B or r24,r25
  167. 164 002c 01F0 breq .L18
  168. 165 .L19:
  169. 166 002e CE01 movw r24,r28
  170. 167 0030 0E94 0000 call TwStart
  171. 168 0034 CE01 movw r24,r28
  172. 169 0036 0E94 0000 call TwPut.isra.0
  173. 170 .L18:
  174. 171 003a 6881 ld r22,Y
  175. GAS LISTING /tmp/ccMHhOtt.s page 4
  176. 172 003c 7981 ldd r23,Y+1
  177. 173 003e 80E0 ldi r24,0
  178. 174 0040 90E0 ldi r25,0
  179. 175 0042 0E94 0000 call NutMicroDelay
  180. 176 0046 6881 ld r22,Y
  181. 177 0048 7981 ldd r23,Y+1
  182. 178 004a 660F lsl r22
  183. 179 004c 771F rol r23
  184. 180 004e 80E0 ldi r24,0
  185. 181 0050 90E0 ldi r25,0
  186. 182 0052 0E94 0000 call NutMicroDelay
  187. 183 0056 6881 ld r22,Y
  188. 184 0058 7981 ldd r23,Y+1
  189. 185 005a 93E0 ldi r25,3
  190. 186 1:
  191. 187 005c 660F lsl r22
  192. 188 005e 771F rol r23
  193. 189 0060 9A95 dec r25
  194. 190 0062 01F4 brne 1b
  195. 191 0064 80E0 ldi r24,0
  196. 192 0066 90E0 ldi r25,0
  197. 193 0068 0E94 0000 call NutMicroDelay
  198. 194 006c F801 movw r30,r16
  199. 195 006e 8285 ldd r24,Z+10
  200. 196 0070 9385 ldd r25,Z+11
  201. 197 /* epilogue start */
  202. 198 0072 DF91 pop r29
  203. 199 0074 CF91 pop r28
  204. 200 0076 1F91 pop r17
  205. 201 0078 0F91 pop r16
  206. 202 007a 0895 ret
  207. 203 .size TwiBusTran, .-TwiBusTran
  208. 204 .section .text.TwiBusProbe,"ax",@progbits
  209. 205 .type TwiBusProbe, @function
  210. 206 TwiBusProbe:
  211. 207 0000 CF93 push r28
  212. 208 0002 DF93 push r29
  213. 209 /* prologue: function */
  214. 210 /* frame size = 0 */
  215. 211 /* stack size = 2 */
  216. 212 .L__stack_usage = 2
  217. 213 0004 FC01 movw r30,r24
  218. 214 0006 2289 ldd r18,Z+18
  219. 215 0008 20FF sbrs r18,0
  220. 216 000a 00C0 rjmp .L22
  221. 217 000c C081 ld r28,Z
  222. 218 000e D181 ldd r29,Z+1
  223. 219 0010 CE01 movw r24,r28
  224. 220 0012 0E94 0000 call TwStart
  225. 221 0016 CE01 movw r24,r28
  226. 222 0018 0E94 0000 call TwPut.isra.0
  227. 223 .L22:
  228. 224 001c 8FEF ldi r24,lo8(-1)
  229. 225 001e 9FEF ldi r25,lo8(-1)
  230. 226 /* epilogue start */
  231. 227 0020 DF91 pop r29
  232. 228 0022 CF91 pop r28
  233. GAS LISTING /tmp/ccMHhOtt.s page 5
  234. 229 0024 0895 ret
  235. 230 .size TwiBusProbe, .-TwiBusProbe
  236. 231 .global i2cBus0Gpio
  237. 232 .data
  238. 233 .type i2cBus0Gpio, @object
  239. 234 .size i2cBus0Gpio, 21
  240. 235 i2cBus0Gpio:
  241. 236 0000 0000 .word twi0cb
  242. 237 0002 0000 .word gs(TwiBusInit)
  243. 238 0004 0000 .word gs(TwiBusConf)
  244. 239 0006 0000 .word gs(TwiBusProbe)
  245. 240 0008 0000 .word gs(TwiBusTran)
  246. 241 000a 64 .byte 100
  247. 242 000b 00 .byte 0
  248. 243 000c 00 .byte 0
  249. 244 000d 00 .byte 0
  250. 245 000e 00 .byte 0
  251. 246 000f 00 .byte 0
  252. 247 0010 00 .byte 0
  253. 248 0011 00 .byte 0
  254. 249 0012 00 .byte 0
  255. 250 0013 0000 .word 0
  256. 251 .local twi0cb
  257. 252 .comm twi0cb,2,1
  258. 253 .ident "GCC: (GNU) 5.3.0"
  259. 254 .global __do_copy_data
  260. 255 .global __do_clear_bss
  261. GAS LISTING /tmp/ccMHhOtt.s page 6
  262. DEFINED SYMBOLS
  263. *ABS*:0000000000000000 i2cbus0gpio.c
  264. /tmp/ccMHhOtt.s:2 *ABS*:000000000000003e __SP_H__
  265. /tmp/ccMHhOtt.s:3 *ABS*:000000000000003d __SP_L__
  266. /tmp/ccMHhOtt.s:4 *ABS*:000000000000003f __SREG__
  267. /tmp/ccMHhOtt.s:5 *ABS*:000000000000003b __RAMPZ__
  268. /tmp/ccMHhOtt.s:6 *ABS*:0000000000000000 __tmp_reg__
  269. /tmp/ccMHhOtt.s:7 *ABS*:0000000000000001 __zero_reg__
  270. /tmp/ccMHhOtt.s:10 .text.TwiBusConf:0000000000000000 TwiBusConf
  271. /tmp/ccMHhOtt.s:74 .text.TwiBusInit:0000000000000000 TwiBusInit
  272. /tmp/ccMHhOtt.s:85 .text.unlikely.TwStart:0000000000000000 TwStart
  273. /tmp/ccMHhOtt.s:119 .text.unlikely.TwPut.isra.0:0000000000000000 TwPut.isra.0
  274. /tmp/ccMHhOtt.s:137 .text.TwiBusTran:0000000000000000 TwiBusTran
  275. /tmp/ccMHhOtt.s:206 .text.TwiBusProbe:0000000000000000 TwiBusProbe
  276. /tmp/ccMHhOtt.s:235 .data:0000000000000000 i2cBus0Gpio
  277. .bss:0000000000000000 twi0cb
  278. UNDEFINED SYMBOLS
  279. __divmodsi4
  280. NutMicroDelay
  281. __do_copy_data
  282. __do_clear_bss