sbbif0.lst 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. GAS LISTING /tmp/ccQ13Obf.s page 1
  2. 1 .file "sbbif0.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.Sbbi0Delay,"ax",@progbits
  10. 9 .type Sbbi0Delay, @function
  11. 10 Sbbi0Delay:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 8091 0000 lds r24,sel_delay
  17. 16 .L8:
  18. 17 0004 8823 tst r24
  19. 18 0006 01F0 breq .L1
  20. 19 /* #APP */
  21. 20 ; 125 "../../nut/dev/sbbif0.c" 1
  22. 21 0008 0000 nop
  23. 22 ; 0 "" 2
  24. 23 /* #NOAPP */
  25. 24 000a 8150 subi r24,lo8(-(-1))
  26. 25 000c 00C0 rjmp .L8
  27. 26 .L1:
  28. 27 000e 0895 ret
  29. 28 .size Sbbi0Delay, .-Sbbi0Delay
  30. 29 .section .text.Sbbi0SetMode,"ax",@progbits
  31. 30 .global Sbbi0SetMode
  32. 31 .type Sbbi0SetMode, @function
  33. 32 Sbbi0SetMode:
  34. 33 /* prologue: function */
  35. 34 /* frame size = 0 */
  36. 35 /* stack size = 0 */
  37. 36 .L__stack_usage = 0
  38. 37 0000 8430 cpi r24,lo8(4)
  39. 38 0002 00F4 brsh .L13
  40. 39 0004 6430 cpi r22,lo8(4)
  41. 40 0006 00F4 brsh .L13
  42. 41 0008 E82F mov r30,r24
  43. 42 000a F0E0 ldi r31,0
  44. 43 000c E050 subi r30,lo8(-(sbbi0_mode))
  45. 44 000e F040 sbci r31,hi8(-(sbbi0_mode))
  46. 45 0010 6083 st Z,r22
  47. 46 0012 80E0 ldi r24,0
  48. 47 0014 90E0 ldi r25,0
  49. 48 0016 0895 ret
  50. 49 .L13:
  51. 50 0018 8FEF ldi r24,lo8(-1)
  52. 51 001a 9FEF ldi r25,lo8(-1)
  53. 52 001c 0895 ret
  54. 53 .size Sbbi0SetMode, .-Sbbi0SetMode
  55. 54 .section .text.Sbbi0SetSpeed,"ax",@progbits
  56. 55 .global Sbbi0SetSpeed
  57. 56 .type Sbbi0SetSpeed, @function
  58. 57 Sbbi0SetSpeed:
  59. GAS LISTING /tmp/ccQ13Obf.s page 2
  60. 58 0000 CF92 push r12
  61. 59 0002 DF92 push r13
  62. 60 0004 EF92 push r14
  63. 61 0006 FF92 push r15
  64. 62 0008 CF93 push r28
  65. 63 /* prologue: function */
  66. 64 /* frame size = 0 */
  67. 65 /* stack size = 5 */
  68. 66 .L__stack_usage = 5
  69. 67 000a C82F mov r28,r24
  70. 68 000c 6A01 movw r12,r20
  71. 69 000e 7B01 movw r14,r22
  72. 70 0010 0E94 0000 call NutGetCpuClock
  73. 71 0014 9B01 movw r18,r22
  74. 72 0016 AC01 movw r20,r24
  75. 73 0018 84E0 ldi r24,4
  76. 74 1:
  77. 75 001a 5695 lsr r21
  78. 76 001c 4795 ror r20
  79. 77 001e 3795 ror r19
  80. 78 0020 2795 ror r18
  81. 79 0022 8A95 dec r24
  82. 80 0024 01F4 brne 1b
  83. 81 0026 C114 cp r12,__zero_reg__
  84. 82 0028 D104 cpc r13,__zero_reg__
  85. 83 002a E104 cpc r14,__zero_reg__
  86. 84 002c F104 cpc r15,__zero_reg__
  87. 85 002e 01F0 breq .L15
  88. 86 0030 CA01 movw r24,r20
  89. 87 0032 B901 movw r22,r18
  90. 88 0034 A701 movw r20,r14
  91. 89 0036 9601 movw r18,r12
  92. 90 0038 0E94 0000 call __udivmodsi4
  93. 91 .L15:
  94. 92 003c 8C2F mov r24,r28
  95. 93 003e 90E0 ldi r25,0
  96. 94 0040 FC01 movw r30,r24
  97. 95 0042 E050 subi r30,lo8(-(sbbi0_delay))
  98. 96 0044 F040 sbci r31,hi8(-(sbbi0_delay))
  99. 97 0046 2530 cpi r18,5
  100. 98 0048 3105 cpc r19,__zero_reg__
  101. 99 004a 4105 cpc r20,__zero_reg__
  102. 100 004c 5105 cpc r21,__zero_reg__
  103. 101 004e 00F4 brsh .L16
  104. 102 0050 1082 st Z,__zero_reg__
  105. 103 0052 00C0 rjmp .L14
  106. 104 .L16:
  107. 105 0054 2F3F cpi r18,-1
  108. 106 0056 3105 cpc r19,__zero_reg__
  109. 107 0058 4105 cpc r20,__zero_reg__
  110. 108 005a 5105 cpc r21,__zero_reg__
  111. 109 005c 00F0 brlo .L22
  112. 110 005e 2FEF ldi r18,lo8(-1)
  113. 111 .L22:
  114. 112 0060 2083 st Z,r18
  115. 113 .L14:
  116. 114 /* epilogue start */
  117. GAS LISTING /tmp/ccQ13Obf.s page 3
  118. 115 0062 CF91 pop r28
  119. 116 0064 FF90 pop r15
  120. 117 0066 EF90 pop r14
  121. 118 0068 DF90 pop r13
  122. 119 006a CF90 pop r12
  123. 120 006c 0895 ret
  124. 121 .size Sbbi0SetSpeed, .-Sbbi0SetSpeed
  125. 122 .section .text.Sbbi0Enable,"ax",@progbits
  126. 123 .global Sbbi0Enable
  127. 124 .type Sbbi0Enable, @function
  128. 125 Sbbi0Enable:
  129. 126 /* prologue: function */
  130. 127 /* frame size = 0 */
  131. 128 /* stack size = 0 */
  132. 129 .L__stack_usage = 0
  133. 130 0000 90E0 ldi r25,0
  134. 131 0002 FC01 movw r30,r24
  135. 132 0004 E050 subi r30,lo8(-(sbbi0_mode))
  136. 133 0006 F040 sbci r31,hi8(-(sbbi0_mode))
  137. 134 0008 2081 ld r18,Z
  138. 135 000a 2093 0000 sts sel_mode,r18
  139. 136 000e FC01 movw r30,r24
  140. 137 0010 E050 subi r30,lo8(-(sbbi0_delay))
  141. 138 0012 F040 sbci r31,hi8(-(sbbi0_delay))
  142. 139 0014 8081 ld r24,Z
  143. 140 0016 8093 0000 sts sel_delay,r24
  144. 141 001a 0895 ret
  145. 142 .size Sbbi0Enable, .-Sbbi0Enable
  146. 143 .section .text.Sbbi0ChipReset,"ax",@progbits
  147. 144 .global Sbbi0ChipReset
  148. 145 .type Sbbi0ChipReset, @function
  149. 146 Sbbi0ChipReset:
  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 Sbbi0ChipReset, .-Sbbi0ChipReset
  156. 153 .section .text.Sbbi0ChipSelect,"ax",@progbits
  157. 154 .global Sbbi0ChipSelect
  158. 155 .type Sbbi0ChipSelect, @function
  159. 156 Sbbi0ChipSelect:
  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 Sbbi0ChipSelect, .-Sbbi0ChipSelect
  166. 163 .section .text.Sbbi0SelectDevice,"ax",@progbits
  167. 164 .global Sbbi0SelectDevice
  168. 165 .type Sbbi0SelectDevice, @function
  169. 166 Sbbi0SelectDevice:
  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 Sbbi0Enable
  175. GAS LISTING /tmp/ccQ13Obf.s page 4
  176. 172 .size Sbbi0SelectDevice, .-Sbbi0SelectDevice
  177. 173 .section .text.Sbbi0DeselectDevice,"ax",@progbits
  178. 174 .global Sbbi0DeselectDevice
  179. 175 .type Sbbi0DeselectDevice, @function
  180. 176 Sbbi0DeselectDevice:
  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 Sbbi0DeselectDevice, .-Sbbi0DeselectDevice
  187. 183 .section .text.Sbbi0NegSelectDevice,"ax",@progbits
  188. 184 .global Sbbi0NegSelectDevice
  189. 185 .type Sbbi0NegSelectDevice, @function
  190. 186 Sbbi0NegSelectDevice:
  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 Sbbi0Enable
  196. 192 .size Sbbi0NegSelectDevice, .-Sbbi0NegSelectDevice
  197. 193 .section .text.Sbbi0NegDeselectDevice,"ax",@progbits
  198. 194 .global Sbbi0NegDeselectDevice
  199. 195 .type Sbbi0NegDeselectDevice, @function
  200. 196 Sbbi0NegDeselectDevice:
  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 Sbbi0NegDeselectDevice, .-Sbbi0NegDeselectDevice
  207. 203 .section .text.Sbbi0Byte,"ax",@progbits
  208. 204 .global Sbbi0Byte
  209. 205 .type Sbbi0Byte, @function
  210. 206 Sbbi0Byte:
  211. 207 0000 0F93 push r16
  212. 208 0002 1F93 push r17
  213. 209 0004 CF93 push r28
  214. 210 0006 DF93 push r29
  215. 211 /* prologue: function */
  216. 212 /* frame size = 0 */
  217. 213 /* stack size = 4 */
  218. 214 .L__stack_usage = 4
  219. 215 0008 C82F mov r28,r24
  220. 216 000a 8091 0000 lds r24,sel_mode
  221. 217 000e 08E0 ldi r16,lo8(8)
  222. 218 0010 10E0 ldi r17,0
  223. 219 0012 D0E8 ldi r29,lo8(-128)
  224. 220 0014 8330 cpi r24,lo8(3)
  225. 221 0016 01F4 brne .L31
  226. 222 .L32:
  227. 223 0018 0E94 0000 call Sbbi0Delay
  228. 224 001c 8D2F mov r24,r29
  229. 225 001e 8095 com r24
  230. 226 0020 C823 and r28,r24
  231. 227 0022 0E94 0000 call Sbbi0Delay
  232. 228 0026 D695 lsr r29
  233. GAS LISTING /tmp/ccQ13Obf.s page 5
  234. 229 0028 0150 subi r16,1
  235. 230 002a 1109 sbc r17,__zero_reg__
  236. 231 002c 01F4 brne .L32
  237. 232 002e 00C0 rjmp .L33
  238. 233 .L31:
  239. 234 0030 8230 cpi r24,lo8(2)
  240. 235 0032 01F4 brne .L34
  241. 236 .L35:
  242. 237 0034 0E94 0000 call Sbbi0Delay
  243. 238 0038 8D2F mov r24,r29
  244. 239 003a 8095 com r24
  245. 240 003c C823 and r28,r24
  246. 241 003e 0E94 0000 call Sbbi0Delay
  247. 242 0042 D695 lsr r29
  248. 243 0044 0150 subi r16,1
  249. 244 0046 1109 sbc r17,__zero_reg__
  250. 245 0048 01F4 brne .L35
  251. 246 004a 00C0 rjmp .L33
  252. 247 .L34:
  253. 248 004c 8130 cpi r24,lo8(1)
  254. 249 004e 01F4 brne .L38
  255. 250 .L37:
  256. 251 0050 0E94 0000 call Sbbi0Delay
  257. 252 0054 8D2F mov r24,r29
  258. 253 0056 8095 com r24
  259. 254 0058 C823 and r28,r24
  260. 255 005a 0E94 0000 call Sbbi0Delay
  261. 256 005e D695 lsr r29
  262. 257 0060 0150 subi r16,1
  263. 258 0062 1109 sbc r17,__zero_reg__
  264. 259 0064 01F4 brne .L37
  265. 260 0066 00C0 rjmp .L33
  266. 261 .L38:
  267. 262 0068 0E94 0000 call Sbbi0Delay
  268. 263 006c 8D2F mov r24,r29
  269. 264 006e 8095 com r24
  270. 265 0070 C823 and r28,r24
  271. 266 0072 0E94 0000 call Sbbi0Delay
  272. 267 0076 D695 lsr r29
  273. 268 0078 0150 subi r16,1
  274. 269 007a 1109 sbc r17,__zero_reg__
  275. 270 007c 01F4 brne .L38
  276. 271 .L33:
  277. 272 007e 8C2F mov r24,r28
  278. 273 /* epilogue start */
  279. 274 0080 DF91 pop r29
  280. 275 0082 CF91 pop r28
  281. 276 0084 1F91 pop r17
  282. 277 0086 0F91 pop r16
  283. 278 0088 0895 ret
  284. 279 .size Sbbi0Byte, .-Sbbi0Byte
  285. 280 .section .text.Sbbi0Transact,"ax",@progbits
  286. 281 .global Sbbi0Transact
  287. 282 .type Sbbi0Transact, @function
  288. 283 Sbbi0Transact:
  289. 284 0000 EF92 push r14
  290. 285 0002 FF92 push r15
  291. GAS LISTING /tmp/ccQ13Obf.s page 6
  292. 286 0004 0F93 push r16
  293. 287 0006 1F93 push r17
  294. 288 0008 CF93 push r28
  295. 289 000a DF93 push r29
  296. 290 /* prologue: function */
  297. 291 /* frame size = 0 */
  298. 292 /* stack size = 6 */
  299. 293 .L__stack_usage = 6
  300. 294 000c EC01 movw r28,r24
  301. 295 000e 6115 cp r22,__zero_reg__
  302. 296 0010 7105 cpc r23,__zero_reg__
  303. 297 0012 01F4 brne .L44
  304. 298 0014 8C01 movw r16,r24
  305. 299 0016 040F add r16,r20
  306. 300 0018 151F adc r17,r21
  307. 301 001a 00C0 rjmp .L45
  308. 302 .L44:
  309. 303 001c 8B01 movw r16,r22
  310. 304 001e 7B01 movw r14,r22
  311. 305 0020 E40E add r14,r20
  312. 306 0022 F51E adc r15,r21
  313. 307 .L46:
  314. 308 0024 0E15 cp r16,r14
  315. 309 0026 1F05 cpc r17,r15
  316. 310 0028 01F0 breq .L43
  317. 311 002a 8991 ld r24,Y+
  318. 312 002c 0E94 0000 call Sbbi0Byte
  319. 313 0030 F801 movw r30,r16
  320. 314 0032 8193 st Z+,r24
  321. 315 0034 8F01 movw r16,r30
  322. 316 0036 00C0 rjmp .L46
  323. 317 .L45:
  324. 318 0038 C017 cp r28,r16
  325. 319 003a D107 cpc r29,r17
  326. 320 003c 01F0 breq .L43
  327. 321 003e 8991 ld r24,Y+
  328. 322 0040 0E94 0000 call Sbbi0Byte
  329. 323 0044 00C0 rjmp .L45
  330. 324 .L43:
  331. 325 /* epilogue start */
  332. 326 0046 DF91 pop r29
  333. 327 0048 CF91 pop r28
  334. 328 004a 1F91 pop r17
  335. 329 004c 0F91 pop r16
  336. 330 004e FF90 pop r15
  337. 331 0050 EF90 pop r14
  338. 332 0052 0895 ret
  339. 333 .size Sbbi0Transact, .-Sbbi0Transact
  340. 334 .local sel_delay
  341. 335 .comm sel_delay,1,1
  342. 336 .local sbbi0_delay
  343. 337 .comm sbbi0_delay,4,1
  344. 338 .local sel_mode
  345. 339 .comm sel_mode,1,1
  346. 340 .local sbbi0_mode
  347. 341 .comm sbbi0_mode,4,1
  348. 342 .ident "GCC: (GNU) 5.3.0"
  349. GAS LISTING /tmp/ccQ13Obf.s page 7
  350. 343 .global __do_clear_bss
  351. GAS LISTING /tmp/ccQ13Obf.s page 8
  352. DEFINED SYMBOLS
  353. *ABS*:0000000000000000 sbbif0.c
  354. /tmp/ccQ13Obf.s:2 *ABS*:000000000000003e __SP_H__
  355. /tmp/ccQ13Obf.s:3 *ABS*:000000000000003d __SP_L__
  356. /tmp/ccQ13Obf.s:4 *ABS*:000000000000003f __SREG__
  357. /tmp/ccQ13Obf.s:5 *ABS*:000000000000003b __RAMPZ__
  358. /tmp/ccQ13Obf.s:6 *ABS*:0000000000000000 __tmp_reg__
  359. /tmp/ccQ13Obf.s:7 *ABS*:0000000000000001 __zero_reg__
  360. /tmp/ccQ13Obf.s:10 .text.Sbbi0Delay:0000000000000000 Sbbi0Delay
  361. .bss:0000000000000000 sel_delay
  362. /tmp/ccQ13Obf.s:32 .text.Sbbi0SetMode:0000000000000000 Sbbi0SetMode
  363. /tmp/ccQ13Obf.s:339 .bss:0000000000000006 sbbi0_mode
  364. /tmp/ccQ13Obf.s:57 .text.Sbbi0SetSpeed:0000000000000000 Sbbi0SetSpeed
  365. /tmp/ccQ13Obf.s:335 .bss:0000000000000001 sbbi0_delay
  366. /tmp/ccQ13Obf.s:125 .text.Sbbi0Enable:0000000000000000 Sbbi0Enable
  367. /tmp/ccQ13Obf.s:337 .bss:0000000000000005 sel_mode
  368. /tmp/ccQ13Obf.s:146 .text.Sbbi0ChipReset:0000000000000000 Sbbi0ChipReset
  369. /tmp/ccQ13Obf.s:156 .text.Sbbi0ChipSelect:0000000000000000 Sbbi0ChipSelect
  370. /tmp/ccQ13Obf.s:166 .text.Sbbi0SelectDevice:0000000000000000 Sbbi0SelectDevice
  371. /tmp/ccQ13Obf.s:176 .text.Sbbi0DeselectDevice:0000000000000000 Sbbi0DeselectDevice
  372. /tmp/ccQ13Obf.s:186 .text.Sbbi0NegSelectDevice:0000000000000000 Sbbi0NegSelectDevice
  373. /tmp/ccQ13Obf.s:196 .text.Sbbi0NegDeselectDevice:0000000000000000 Sbbi0NegDeselectDevice
  374. /tmp/ccQ13Obf.s:206 .text.Sbbi0Byte:0000000000000000 Sbbi0Byte
  375. /tmp/ccQ13Obf.s:283 .text.Sbbi0Transact:0000000000000000 Sbbi0Transact
  376. UNDEFINED SYMBOLS
  377. NutGetCpuClock
  378. __udivmodsi4
  379. __do_clear_bss