sppif0.lst 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. GAS LISTING /tmp/cc5iKKgW.s page 1
  2. 1 .file "sppif0.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.Sppi0SetMode,"ax",@progbits
  10. 9 .global Sppi0SetMode
  11. 10 .type Sppi0SetMode, @function
  12. 11 Sppi0SetMode:
  13. 12 /* prologue: function */
  14. 13 /* frame size = 0 */
  15. 14 /* stack size = 0 */
  16. 15 .L__stack_usage = 0
  17. 16 0000 8430 cpi r24,lo8(4)
  18. 17 0002 00F4 brsh .L4
  19. 18 0004 6430 cpi r22,lo8(4)
  20. 19 0006 00F4 brsh .L4
  21. 20 0008 90E0 ldi r25,0
  22. 21 000a FC01 movw r30,r24
  23. 22 000c E050 subi r30,lo8(-(sppi0_spcr))
  24. 23 000e F040 sbci r31,hi8(-(sppi0_spcr))
  25. 24 0010 24E0 ldi r18,lo8(4)
  26. 25 0012 629F mul r22,r18
  27. 26 0014 B001 movw r22,r0
  28. 27 0016 1124 clr __zero_reg__
  29. 28 0018 6365 ori r22,lo8(83)
  30. 29 001a 6083 st Z,r22
  31. 30 001c FC01 movw r30,r24
  32. 31 001e E050 subi r30,lo8(-(sppi0_spsr))
  33. 32 0020 F040 sbci r31,hi8(-(sppi0_spsr))
  34. 33 0022 1082 st Z,__zero_reg__
  35. 34 0024 80E0 ldi r24,0
  36. 35 0026 90E0 ldi r25,0
  37. 36 0028 0895 ret
  38. 37 .L4:
  39. 38 002a 8FEF ldi r24,lo8(-1)
  40. 39 002c 9FEF ldi r25,lo8(-1)
  41. 40 002e 0895 ret
  42. 41 .size Sppi0SetMode, .-Sppi0SetMode
  43. 42 .section .text.Sppi0SetSpeed,"ax",@progbits
  44. 43 .global Sppi0SetSpeed
  45. 44 .type Sppi0SetSpeed, @function
  46. 45 Sppi0SetSpeed:
  47. 46 0000 8F92 push r8
  48. 47 0002 9F92 push r9
  49. 48 0004 AF92 push r10
  50. 49 0006 BF92 push r11
  51. 50 0008 CF93 push r28
  52. 51 /* prologue: function */
  53. 52 /* frame size = 0 */
  54. 53 /* stack size = 5 */
  55. 54 .L__stack_usage = 5
  56. 55 000a C82F mov r28,r24
  57. 56 000c 4A01 movw r8,r20
  58. 57 000e 5B01 movw r10,r22
  59. GAS LISTING /tmp/cc5iKKgW.s page 2
  60. 58 0010 0E94 0000 call NutGetCpuClock
  61. 59 0014 2C2F mov r18,r28
  62. 60 0016 30E0 ldi r19,0
  63. 61 0018 F901 movw r30,r18
  64. 62 001a E050 subi r30,lo8(-(sppi0_spcr))
  65. 63 001c F040 sbci r31,hi8(-(sppi0_spcr))
  66. 64 001e 4081 ld r20,Z
  67. 65 0020 542F mov r21,r20
  68. 66 0022 5C7F andi r21,lo8(-4)
  69. 67 0024 A0E0 ldi r26,0
  70. 68 .L8:
  71. 69 0026 9695 lsr r25
  72. 70 0028 8795 ror r24
  73. 71 002a 7795 ror r23
  74. 72 002c 6795 ror r22
  75. 73 002e 8616 cp r8,r22
  76. 74 0030 9706 cpc r9,r23
  77. 75 0032 A806 cpc r10,r24
  78. 76 0034 B906 cpc r11,r25
  79. 77 0036 00F4 brsh .L7
  80. 78 0038 AF5F subi r26,lo8(-(1))
  81. 79 003a A730 cpi r26,lo8(7)
  82. 80 003c 01F4 brne .L8
  83. 81 .L7:
  84. 82 003e 4A2F mov r20,r26
  85. 83 0040 4695 lsr r20
  86. 84 0042 842F mov r24,r20
  87. 85 0044 852B or r24,r21
  88. 86 0046 8083 st Z,r24
  89. 87 0048 A630 cpi r26,lo8(6)
  90. 88 004a 00F4 brsh .L6
  91. 89 004c 9A2F mov r25,r26
  92. 90 004e 9095 com r25
  93. 91 0050 9170 andi r25,lo8(1)
  94. 92 0052 F901 movw r30,r18
  95. 93 0054 E050 subi r30,lo8(-(sppi0_spsr))
  96. 94 0056 F040 sbci r31,hi8(-(sppi0_spsr))
  97. 95 0058 9083 st Z,r25
  98. 96 .L6:
  99. 97 /* epilogue start */
  100. 98 005a CF91 pop r28
  101. 99 005c BF90 pop r11
  102. 100 005e AF90 pop r10
  103. 101 0060 9F90 pop r9
  104. 102 0062 8F90 pop r8
  105. 103 0064 0895 ret
  106. 104 .size Sppi0SetSpeed, .-Sppi0SetSpeed
  107. 105 .section .text.Sppi0Enable,"ax",@progbits
  108. 106 .global Sppi0Enable
  109. 107 .type Sppi0Enable, @function
  110. 108 Sppi0Enable:
  111. 109 /* prologue: function */
  112. 110 /* frame size = 0 */
  113. 111 /* stack size = 0 */
  114. 112 .L__stack_usage = 0
  115. 113 0000 90E0 ldi r25,0
  116. 114 0002 FC01 movw r30,r24
  117. GAS LISTING /tmp/cc5iKKgW.s page 3
  118. 115 0004 E050 subi r30,lo8(-(sppi0_spcr))
  119. 116 0006 F040 sbci r31,hi8(-(sppi0_spcr))
  120. 117 0008 2081 ld r18,Z
  121. 118 000a 23FF sbrs r18,3
  122. 119 000c 00C0 rjmp .L12
  123. 120 000e 2998 cbi 0x5,1
  124. 121 0010 00C0 rjmp .L13
  125. 122 .L12:
  126. 123 0012 299A sbi 0x5,1
  127. 124 .L13:
  128. 125 0014 219A sbi 0x4,1
  129. 126 0016 2A98 cbi 0x5,2
  130. 127 0018 229A sbi 0x4,2
  131. 128 001a 2B9A sbi 0x5,3
  132. 129 001c 209B sbis 0x4,0
  133. 130 001e 289A sbi 0x5,0
  134. 131 .L14:
  135. 132 0020 2081 ld r18,Z
  136. 133 0022 2CBD out 0x2c,r18
  137. 134 0024 FC01 movw r30,r24
  138. 135 0026 E050 subi r30,lo8(-(sppi0_spsr))
  139. 136 0028 F040 sbci r31,hi8(-(sppi0_spsr))
  140. 137 002a 8081 ld r24,Z
  141. 138 002c 8DBD out 0x2d,r24
  142. 139 002e 8DB5 in r24,0x2d
  143. 140 0030 8EB5 in r24,0x2e
  144. 141 0032 0895 ret
  145. 142 .size Sppi0Enable, .-Sppi0Enable
  146. 143 .section .text.Sppi0ChipReset,"ax",@progbits
  147. 144 .global Sppi0ChipReset
  148. 145 .type Sppi0ChipReset, @function
  149. 146 Sppi0ChipReset:
  150. 147 /* prologue: function */
  151. 148 /* frame size = 0 */
  152. 149 /* stack size = 0 */
  153. 150 .L__stack_usage = 0
  154. 151 0000 0895 ret
  155. 152 .size Sppi0ChipReset, .-Sppi0ChipReset
  156. 153 .section .text.Sppi0ChipSelect,"ax",@progbits
  157. 154 .global Sppi0ChipSelect
  158. 155 .type Sppi0ChipSelect, @function
  159. 156 Sppi0ChipSelect:
  160. 157 /* prologue: function */
  161. 158 /* frame size = 0 */
  162. 159 /* stack size = 0 */
  163. 160 .L__stack_usage = 0
  164. 161 0000 0895 ret
  165. 162 .size Sppi0ChipSelect, .-Sppi0ChipSelect
  166. 163 .section .text.Sppi0SelectDevice,"ax",@progbits
  167. 164 .global Sppi0SelectDevice
  168. 165 .type Sppi0SelectDevice, @function
  169. 166 Sppi0SelectDevice:
  170. 167 /* prologue: function */
  171. 168 /* frame size = 0 */
  172. 169 /* stack size = 0 */
  173. 170 .L__stack_usage = 0
  174. 171 0000 0C94 0000 jmp Sppi0Enable
  175. GAS LISTING /tmp/cc5iKKgW.s page 4
  176. 172 .size Sppi0SelectDevice, .-Sppi0SelectDevice
  177. 173 .section .text.Sppi0DeselectDevice,"ax",@progbits
  178. 174 .global Sppi0DeselectDevice
  179. 175 .type Sppi0DeselectDevice, @function
  180. 176 Sppi0DeselectDevice:
  181. 177 /* prologue: function */
  182. 178 /* frame size = 0 */
  183. 179 /* stack size = 0 */
  184. 180 .L__stack_usage = 0
  185. 181 0000 0895 ret
  186. 182 .size Sppi0DeselectDevice, .-Sppi0DeselectDevice
  187. 183 .section .text.Sppi0NegSelectDevice,"ax",@progbits
  188. 184 .global Sppi0NegSelectDevice
  189. 185 .type Sppi0NegSelectDevice, @function
  190. 186 Sppi0NegSelectDevice:
  191. 187 /* prologue: function */
  192. 188 /* frame size = 0 */
  193. 189 /* stack size = 0 */
  194. 190 .L__stack_usage = 0
  195. 191 0000 0C94 0000 jmp Sppi0Enable
  196. 192 .size Sppi0NegSelectDevice, .-Sppi0NegSelectDevice
  197. 193 .section .text.Sppi0NegDeselectDevice,"ax",@progbits
  198. 194 .global Sppi0NegDeselectDevice
  199. 195 .type Sppi0NegDeselectDevice, @function
  200. 196 Sppi0NegDeselectDevice:
  201. 197 /* prologue: function */
  202. 198 /* frame size = 0 */
  203. 199 /* stack size = 0 */
  204. 200 .L__stack_usage = 0
  205. 201 0000 0895 ret
  206. 202 .size Sppi0NegDeselectDevice, .-Sppi0NegDeselectDevice
  207. 203 .section .text.Sppi0Byte,"ax",@progbits
  208. 204 .global Sppi0Byte
  209. 205 .type Sppi0Byte, @function
  210. 206 Sppi0Byte:
  211. 207 /* prologue: function */
  212. 208 /* frame size = 0 */
  213. 209 /* stack size = 0 */
  214. 210 .L__stack_usage = 0
  215. 211 0000 8EBD out 0x2e,r24
  216. 212 .L22:
  217. 213 0002 0DB4 in __tmp_reg__,0x2d
  218. 214 0004 07FE sbrs __tmp_reg__,7
  219. 215 0006 00C0 rjmp .L22
  220. 216 0008 8EB5 in r24,0x2e
  221. 217 000a 0895 ret
  222. 218 .size Sppi0Byte, .-Sppi0Byte
  223. 219 .section .text.Sppi0Transact,"ax",@progbits
  224. 220 .global Sppi0Transact
  225. 221 .type Sppi0Transact, @function
  226. 222 Sppi0Transact:
  227. 223 0000 EF92 push r14
  228. 224 0002 FF92 push r15
  229. 225 0004 0F93 push r16
  230. 226 0006 1F93 push r17
  231. 227 0008 CF93 push r28
  232. 228 000a DF93 push r29
  233. GAS LISTING /tmp/cc5iKKgW.s page 5
  234. 229 /* prologue: function */
  235. 230 /* frame size = 0 */
  236. 231 /* stack size = 6 */
  237. 232 .L__stack_usage = 6
  238. 233 000c EC01 movw r28,r24
  239. 234 000e 6115 cp r22,__zero_reg__
  240. 235 0010 7105 cpc r23,__zero_reg__
  241. 236 0012 01F4 brne .L25
  242. 237 0014 8C01 movw r16,r24
  243. 238 0016 040F add r16,r20
  244. 239 0018 151F adc r17,r21
  245. 240 001a 00C0 rjmp .L26
  246. 241 .L25:
  247. 242 001c 8B01 movw r16,r22
  248. 243 001e 7B01 movw r14,r22
  249. 244 0020 E40E add r14,r20
  250. 245 0022 F51E adc r15,r21
  251. 246 .L27:
  252. 247 0024 0E15 cp r16,r14
  253. 248 0026 1F05 cpc r17,r15
  254. 249 0028 01F0 breq .L24
  255. 250 002a 8991 ld r24,Y+
  256. 251 002c 0E94 0000 call Sppi0Byte
  257. 252 0030 F801 movw r30,r16
  258. 253 0032 8193 st Z+,r24
  259. 254 0034 8F01 movw r16,r30
  260. 255 0036 00C0 rjmp .L27
  261. 256 .L26:
  262. 257 0038 C017 cp r28,r16
  263. 258 003a D107 cpc r29,r17
  264. 259 003c 01F0 breq .L24
  265. 260 003e 8991 ld r24,Y+
  266. 261 0040 0E94 0000 call Sppi0Byte
  267. 262 0044 00C0 rjmp .L26
  268. 263 .L24:
  269. 264 /* epilogue start */
  270. 265 0046 DF91 pop r29
  271. 266 0048 CF91 pop r28
  272. 267 004a 1F91 pop r17
  273. 268 004c 0F91 pop r16
  274. 269 004e FF90 pop r15
  275. 270 0050 EF90 pop r14
  276. 271 0052 0895 ret
  277. 272 .size Sppi0Transact, .-Sppi0Transact
  278. 273 .local sppi0_spsr
  279. 274 .comm sppi0_spsr,4,1
  280. 275 .local sppi0_spcr
  281. 276 .comm sppi0_spcr,4,1
  282. 277 .ident "GCC: (GNU) 5.3.0"
  283. 278 .global __do_clear_bss
  284. GAS LISTING /tmp/cc5iKKgW.s page 6
  285. DEFINED SYMBOLS
  286. *ABS*:0000000000000000 sppif0.c
  287. /tmp/cc5iKKgW.s:2 *ABS*:000000000000003e __SP_H__
  288. /tmp/cc5iKKgW.s:3 *ABS*:000000000000003d __SP_L__
  289. /tmp/cc5iKKgW.s:4 *ABS*:000000000000003f __SREG__
  290. /tmp/cc5iKKgW.s:5 *ABS*:000000000000003b __RAMPZ__
  291. /tmp/cc5iKKgW.s:6 *ABS*:0000000000000000 __tmp_reg__
  292. /tmp/cc5iKKgW.s:7 *ABS*:0000000000000001 __zero_reg__
  293. /tmp/cc5iKKgW.s:11 .text.Sppi0SetMode:0000000000000000 Sppi0SetMode
  294. /tmp/cc5iKKgW.s:274 .bss:0000000000000004 sppi0_spcr
  295. .bss:0000000000000000 sppi0_spsr
  296. /tmp/cc5iKKgW.s:45 .text.Sppi0SetSpeed:0000000000000000 Sppi0SetSpeed
  297. /tmp/cc5iKKgW.s:108 .text.Sppi0Enable:0000000000000000 Sppi0Enable
  298. /tmp/cc5iKKgW.s:146 .text.Sppi0ChipReset:0000000000000000 Sppi0ChipReset
  299. /tmp/cc5iKKgW.s:156 .text.Sppi0ChipSelect:0000000000000000 Sppi0ChipSelect
  300. /tmp/cc5iKKgW.s:166 .text.Sppi0SelectDevice:0000000000000000 Sppi0SelectDevice
  301. /tmp/cc5iKKgW.s:176 .text.Sppi0DeselectDevice:0000000000000000 Sppi0DeselectDevice
  302. /tmp/cc5iKKgW.s:186 .text.Sppi0NegSelectDevice:0000000000000000 Sppi0NegSelectDevice
  303. /tmp/cc5iKKgW.s:196 .text.Sppi0NegDeselectDevice:0000000000000000 Sppi0NegDeselectDevice
  304. /tmp/cc5iKKgW.s:206 .text.Sppi0Byte:0000000000000000 Sppi0Byte
  305. /tmp/cc5iKKgW.s:222 .text.Sppi0Transact:0000000000000000 Sppi0Transact
  306. UNDEFINED SYMBOLS
  307. NutGetCpuClock
  308. __do_clear_bss