spibus0avr.lst 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. GAS LISTING /tmp/ccqTZxXM.s page 1
  2. 1 .file "spibus0avr.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.AvrSpiBus0NodeInit,"ax",@progbits
  10. 9 .global AvrSpiBus0NodeInit
  11. 10 .type AvrSpiBus0NodeInit, @function
  12. 11 AvrSpiBus0NodeInit:
  13. 12 /* prologue: function */
  14. 13 /* frame size = 0 */
  15. 14 /* stack size = 0 */
  16. 15 .L__stack_usage = 0
  17. 16 0000 85E0 ldi r24,lo8(5)
  18. 17 0002 90E0 ldi r25,0
  19. 18 0004 9093 0000 sts errno+1,r25
  20. 19 0008 8093 0000 sts errno,r24
  21. 20 000c 8FEF ldi r24,lo8(-1)
  22. 21 000e 9FEF ldi r25,lo8(-1)
  23. 22 0010 0895 ret
  24. 23 .size AvrSpiBus0NodeInit, .-AvrSpiBus0NodeInit
  25. 24 .section .text.AvrSpiBus0Deselect,"ax",@progbits
  26. 25 .global AvrSpiBus0Deselect
  27. 26 .type AvrSpiBus0Deselect, @function
  28. 27 AvrSpiBus0Deselect:
  29. 28 /* prologue: function */
  30. 29 /* frame size = 0 */
  31. 30 /* stack size = 0 */
  32. 31 .L__stack_usage = 0
  33. 32 0000 25E0 ldi r18,lo8(5)
  34. 33 0002 30E0 ldi r19,0
  35. 34 0004 3093 0000 sts errno+1,r19
  36. 35 0008 2093 0000 sts errno,r18
  37. 36 000c FC01 movw r30,r24
  38. 37 000e 8081 ld r24,Z
  39. 38 0010 9181 ldd r25,Z+1
  40. 39 0012 0E94 0000 call NutEventPost
  41. 40 0016 80E0 ldi r24,0
  42. 41 0018 90E0 ldi r25,0
  43. 42 001a 0895 ret
  44. 43 .size AvrSpiBus0Deselect, .-AvrSpiBus0Deselect
  45. 44 .section .text.AvrSpiBus0Transfer,"ax",@progbits
  46. 45 .global AvrSpiBus0Transfer
  47. 46 .type AvrSpiBus0Transfer, @function
  48. 47 AvrSpiBus0Transfer:
  49. 48 /* prologue: function */
  50. 49 /* frame size = 0 */
  51. 50 /* stack size = 0 */
  52. 51 .L__stack_usage = 0
  53. 52 0000 2115 cp r18,__zero_reg__
  54. 53 0002 3105 cpc r19,__zero_reg__
  55. 54 0004 01F0 breq .L4
  56. 55 0006 7093 0000 sts spi0_txp+1,r23
  57. 56 000a 6093 0000 sts spi0_txp,r22
  58. 57 000e 5093 0000 sts spi0_rxp+1,r21
  59. GAS LISTING /tmp/ccqTZxXM.s page 2
  60. 58 0012 4093 0000 sts spi0_rxp,r20
  61. 59 0016 3093 0000 sts spi0_xc+1,r19
  62. 60 001a 2093 0000 sts spi0_xc,r18
  63. 61 001e 8091 0000 lds r24,spi0_txp
  64. 62 0022 9091 0000 lds r25,spi0_txp+1
  65. 63 0026 892B or r24,r25
  66. 64 0028 01F0 breq .L6
  67. 65 002a E091 0000 lds r30,spi0_txp
  68. 66 002e F091 0000 lds r31,spi0_txp+1
  69. 67 0032 CF01 movw r24,r30
  70. 68 0034 0196 adiw r24,1
  71. 69 0036 9093 0000 sts spi0_txp+1,r25
  72. 70 003a 8093 0000 sts spi0_txp,r24
  73. 71 003e 9081 ld r25,Z
  74. 72 0040 00C0 rjmp .L5
  75. 73 .L6:
  76. 74 0042 9FEF ldi r25,lo8(-1)
  77. 75 .L5:
  78. 76 0044 8CB5 in r24,0x2c
  79. 77 0046 8068 ori r24,lo8(-128)
  80. 78 0048 8CBD out 0x2c,r24
  81. 79 004a 9EBD out 0x2e,r25
  82. 80 004c 40E0 ldi r20,0
  83. 81 004e 50E0 ldi r21,0
  84. 82 0050 BA01 movw r22,r20
  85. 83 0052 80E0 ldi r24,lo8(spi0_que)
  86. 84 0054 90E0 ldi r25,hi8(spi0_que)
  87. 85 0056 0E94 0000 call NutEventWait
  88. 86 005a 8CB5 in r24,0x2c
  89. 87 005c 8F77 andi r24,lo8(127)
  90. 88 005e 8CBD out 0x2c,r24
  91. 89 .L4:
  92. 90 0060 80E0 ldi r24,0
  93. 91 0062 90E0 ldi r25,0
  94. 92 0064 0895 ret
  95. 93 .size AvrSpiBus0Transfer, .-AvrSpiBus0Transfer
  96. 94 .section .text.AvrSpiBus0Select,"ax",@progbits
  97. 95 .global AvrSpiBus0Select
  98. 96 .type AvrSpiBus0Select, @function
  99. 97 AvrSpiBus0Select:
  100. 98 0000 0F93 push r16
  101. 99 0002 1F93 push r17
  102. 100 0004 CF93 push r28
  103. 101 0006 DF93 push r29
  104. 102 /* prologue: function */
  105. 103 /* frame size = 0 */
  106. 104 /* stack size = 4 */
  107. 105 .L__stack_usage = 4
  108. 106 0008 EC01 movw r28,r24
  109. 107 000a 8881 ld r24,Y
  110. 108 000c 9981 ldd r25,Y+1
  111. 109 000e 0E94 0000 call NutEventWait
  112. 110 0012 0097 sbiw r24,0
  113. 111 0014 01F0 breq .L12
  114. 112 0016 25E0 ldi r18,lo8(5)
  115. 113 0018 30E0 ldi r19,0
  116. 114 001a 3093 0000 sts errno+1,r19
  117. GAS LISTING /tmp/ccqTZxXM.s page 3
  118. 115 001e 2093 0000 sts errno,r18
  119. 116 0022 00C0 rjmp .L13
  120. 117 .L12:
  121. 118 0024 0A81 ldd r16,Y+2
  122. 119 0026 1B81 ldd r17,Y+3
  123. 120 0028 8885 ldd r24,Y+8
  124. 121 002a 9985 ldd r25,Y+9
  125. 122 002c 97FF sbrs r25,7
  126. 123 002e 00C0 rjmp .L14
  127. 124 0030 CE01 movw r24,r28
  128. 125 0032 0E94 0000 call AvrSpiSetup
  129. 126 .L14:
  130. 127 0036 F801 movw r30,r16
  131. 128 0038 8081 ld r24,Z
  132. 129 003a 83FF sbrs r24,3
  133. 130 003c 00C0 rjmp .L15
  134. 131 003e 2998 cbi 0x5,1
  135. 132 0040 00C0 rjmp .L16
  136. 133 .L15:
  137. 134 0042 299A sbi 0x5,1
  138. 135 .L16:
  139. 136 0044 219A sbi 0x4,1
  140. 137 0046 2A98 cbi 0x5,2
  141. 138 0048 229A sbi 0x4,2
  142. 139 004a 209B sbis 0x4,0
  143. 140 004c 289A sbi 0x5,0
  144. 141 .L17:
  145. 142 004e 2B9A sbi 0x5,3
  146. 143 0050 F801 movw r30,r16
  147. 144 0052 8081 ld r24,Z
  148. 145 0054 8CBD out 0x2c,r24
  149. 146 0056 8181 ldd r24,Z+1
  150. 147 0058 8DBD out 0x2d,r24
  151. 148 005a 8DB5 in r24,0x2d
  152. 149 005c 8EB5 in r24,0x2e
  153. 150 005e 85E0 ldi r24,lo8(5)
  154. 151 0060 90E0 ldi r25,0
  155. 152 0062 9093 0000 sts errno+1,r25
  156. 153 0066 8093 0000 sts errno,r24
  157. 154 006a 8881 ld r24,Y
  158. 155 006c 9981 ldd r25,Y+1
  159. 156 006e 0E94 0000 call NutEventPost
  160. 157 0072 8FEF ldi r24,lo8(-1)
  161. 158 0074 9FEF ldi r25,lo8(-1)
  162. 159 .L13:
  163. 160 /* epilogue start */
  164. 161 0076 DF91 pop r29
  165. 162 0078 CF91 pop r28
  166. 163 007a 1F91 pop r17
  167. 164 007c 0F91 pop r16
  168. 165 007e 0895 ret
  169. 166 .size AvrSpiBus0Select, .-AvrSpiBus0Select
  170. 167 .global spiBus0Avr
  171. 168 .data
  172. 169 .type spiBus0Avr, @object
  173. 170 .size spiBus0Avr, 24
  174. 171 spiBus0Avr:
  175. GAS LISTING /tmp/ccqTZxXM.s page 4
  176. 172 0000 0000 .word 0
  177. 173 0002 0000 .word 0
  178. 174 0004 0000 .word 0
  179. 175 0006 0000 .word sig_SPI
  180. 176 0008 0000 .word gs(AvrSpiBus0NodeInit)
  181. 177 000a 0000 .word gs(AvrSpiBus0Select)
  182. 178 000c 0000 .word gs(AvrSpiBus0Deselect)
  183. 179 000e 0000 .word gs(AvrSpiBus0Transfer)
  184. 180 0010 0000 .word gs(NutSpiBusWait)
  185. 181 0012 0000 .word gs(NutSpiBusSetMode)
  186. 182 0014 0000 .word gs(NutSpiBusSetRate)
  187. 183 0016 0000 .word gs(NutSpiBusSetBits)
  188. 184 .local spi0_xc
  189. 185 .comm spi0_xc,2,1
  190. 186 .local spi0_que
  191. 187 .comm spi0_que,2,1
  192. 188 .local spi0_rxp
  193. 189 .comm spi0_rxp,2,1
  194. 190 .local spi0_txp
  195. 191 .comm spi0_txp,2,1
  196. 192 .ident "GCC: (GNU) 5.3.0"
  197. 193 .global __do_copy_data
  198. 194 .global __do_clear_bss
  199. GAS LISTING /tmp/ccqTZxXM.s page 5
  200. DEFINED SYMBOLS
  201. *ABS*:0000000000000000 spibus0avr.c
  202. /tmp/ccqTZxXM.s:2 *ABS*:000000000000003e __SP_H__
  203. /tmp/ccqTZxXM.s:3 *ABS*:000000000000003d __SP_L__
  204. /tmp/ccqTZxXM.s:4 *ABS*:000000000000003f __SREG__
  205. /tmp/ccqTZxXM.s:5 *ABS*:000000000000003b __RAMPZ__
  206. /tmp/ccqTZxXM.s:6 *ABS*:0000000000000000 __tmp_reg__
  207. /tmp/ccqTZxXM.s:7 *ABS*:0000000000000001 __zero_reg__
  208. /tmp/ccqTZxXM.s:11 .text.AvrSpiBus0NodeInit:0000000000000000 AvrSpiBus0NodeInit
  209. /tmp/ccqTZxXM.s:27 .text.AvrSpiBus0Deselect:0000000000000000 AvrSpiBus0Deselect
  210. /tmp/ccqTZxXM.s:47 .text.AvrSpiBus0Transfer:0000000000000000 AvrSpiBus0Transfer
  211. /tmp/ccqTZxXM.s:189 .bss:0000000000000006 spi0_txp
  212. /tmp/ccqTZxXM.s:187 .bss:0000000000000004 spi0_rxp
  213. .bss:0000000000000000 spi0_xc
  214. /tmp/ccqTZxXM.s:185 .bss:0000000000000002 spi0_que
  215. /tmp/ccqTZxXM.s:97 .text.AvrSpiBus0Select:0000000000000000 AvrSpiBus0Select
  216. /tmp/ccqTZxXM.s:171 .data:0000000000000000 spiBus0Avr
  217. UNDEFINED SYMBOLS
  218. errno
  219. NutEventPost
  220. NutEventWait
  221. AvrSpiSetup
  222. sig_SPI
  223. NutSpiBusWait
  224. NutSpiBusSetMode
  225. NutSpiBusSetRate
  226. NutSpiBusSetBits
  227. __do_copy_data
  228. __do_clear_bss