spibus_gpio.lst 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. GAS LISTING /tmp/cccZBdln.s page 1
  2. 1 .file "spibus_gpio.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.GpioSpiBusSetRate,"ax",@progbits
  10. 9 .global GpioSpiBusSetRate
  11. 10 .type GpioSpiBusSetRate, @function
  12. 11 GpioSpiBusSetRate:
  13. 12 0000 4F92 push r4
  14. 13 0002 5F92 push r5
  15. 14 0004 6F92 push r6
  16. 15 0006 7F92 push r7
  17. 16 0008 8F92 push r8
  18. 17 000a 9F92 push r9
  19. 18 000c AF92 push r10
  20. 19 000e BF92 push r11
  21. 20 0010 CF92 push r12
  22. 21 0012 DF92 push r13
  23. 22 0014 EF92 push r14
  24. 23 0016 FF92 push r15
  25. 24 0018 0F93 push r16
  26. 25 001a 1F93 push r17
  27. 26 001c CF93 push r28
  28. 27 001e DF93 push r29
  29. 28 /* prologue: function */
  30. 29 /* frame size = 0 */
  31. 30 /* stack size = 16 */
  32. 31 .L__stack_usage = 16
  33. 32 0020 EC01 movw r28,r24
  34. 33 0022 2A01 movw r4,r20
  35. 34 0024 3B01 movw r6,r22
  36. 35 0026 0A81 ldd r16,Y+2
  37. 36 0028 1B81 ldd r17,Y+3
  38. 37 002a F801 movw r30,r16
  39. 38 002c 2081 ld r18,Z
  40. 39 002e 3181 ldd r19,Z+1
  41. 40 0030 4281 ldd r20,Z+2
  42. 41 0032 5381 ldd r21,Z+3
  43. 42 0034 2115 cp r18,__zero_reg__
  44. 43 0036 3105 cpc r19,__zero_reg__
  45. 44 0038 4105 cpc r20,__zero_reg__
  46. 45 003a 5105 cpc r21,__zero_reg__
  47. 46 003c 01F0 breq .L5
  48. 47 003e 60E2 ldi r22,lo8(32)
  49. 48 0040 71EA ldi r23,lo8(-95)
  50. 49 0042 87E0 ldi r24,lo8(7)
  51. 50 0044 90E0 ldi r25,0
  52. 51 0046 0E94 0000 call __udivmodsi4
  53. 52 004a 6901 movw r12,r18
  54. 53 004c 7A01 movw r14,r20
  55. 54 004e 00C0 rjmp .L2
  56. 55 .L5:
  57. 56 0050 90E2 ldi r25,lo8(32)
  58. 57 0052 C92E mov r12,r25
  59. GAS LISTING /tmp/cccZBdln.s page 2
  60. 58 0054 91EA ldi r25,lo8(-95)
  61. 59 0056 D92E mov r13,r25
  62. 60 0058 97E0 ldi r25,lo8(7)
  63. 61 005a E92E mov r14,r25
  64. 62 005c F12C mov r15,__zero_reg__
  65. 63 .L2:
  66. 64 005e FFEF ldi r31,-1
  67. 65 0060 4F16 cp r4,r31
  68. 66 0062 5F06 cpc r5,r31
  69. 67 0064 6F06 cpc r6,r31
  70. 68 0066 7F06 cpc r7,r31
  71. 69 0068 01F0 breq .L3
  72. 70 006a 80E2 ldi r24,lo8(32)
  73. 71 006c 882E mov r8,r24
  74. 72 006e 81EA ldi r24,lo8(-95)
  75. 73 0070 982E mov r9,r24
  76. 74 0072 87E0 ldi r24,lo8(7)
  77. 75 0074 A82E mov r10,r24
  78. 76 0076 B12C mov r11,__zero_reg__
  79. 77 0078 C501 movw r24,r10
  80. 78 007a B401 movw r22,r8
  81. 79 007c A301 movw r20,r6
  82. 80 007e 9201 movw r18,r4
  83. 81 0080 0E94 0000 call __udivmodsi4
  84. 82 0084 F801 movw r30,r16
  85. 83 0086 2083 st Z,r18
  86. 84 0088 3183 std Z+1,r19
  87. 85 008a 4283 std Z+2,r20
  88. 86 008c 5383 std Z+3,r21
  89. 87 008e 2115 cp r18,__zero_reg__
  90. 88 0090 3105 cpc r19,__zero_reg__
  91. 89 0092 4105 cpc r20,__zero_reg__
  92. 90 0094 5105 cpc r21,__zero_reg__
  93. 91 0096 01F0 breq .L6
  94. 92 0098 C501 movw r24,r10
  95. 93 009a B401 movw r22,r8
  96. 94 009c 0E94 0000 call __udivmodsi4
  97. 95 00a0 00C0 rjmp .L4
  98. 96 .L6:
  99. 97 00a2 20E2 ldi r18,lo8(32)
  100. 98 00a4 31EA ldi r19,lo8(-95)
  101. 99 00a6 47E0 ldi r20,lo8(7)
  102. 100 00a8 50E0 ldi r21,0
  103. 101 .L4:
  104. 102 00aa 2C83 std Y+4,r18
  105. 103 00ac 3D83 std Y+5,r19
  106. 104 00ae 4E83 std Y+6,r20
  107. 105 00b0 5F83 std Y+7,r21
  108. 106 00b2 8885 ldd r24,Y+8
  109. 107 00b4 9985 ldd r25,Y+9
  110. 108 00b6 9068 ori r25,128
  111. 109 00b8 9987 std Y+9,r25
  112. 110 00ba 8887 std Y+8,r24
  113. 111 .L3:
  114. 112 00bc C701 movw r24,r14
  115. 113 00be B601 movw r22,r12
  116. 114 /* epilogue start */
  117. GAS LISTING /tmp/cccZBdln.s page 3
  118. 115 00c0 DF91 pop r29
  119. 116 00c2 CF91 pop r28
  120. 117 00c4 1F91 pop r17
  121. 118 00c6 0F91 pop r16
  122. 119 00c8 FF90 pop r15
  123. 120 00ca EF90 pop r14
  124. 121 00cc DF90 pop r13
  125. 122 00ce CF90 pop r12
  126. 123 00d0 BF90 pop r11
  127. 124 00d2 AF90 pop r10
  128. 125 00d4 9F90 pop r9
  129. 126 00d6 8F90 pop r8
  130. 127 00d8 7F90 pop r7
  131. 128 00da 6F90 pop r6
  132. 129 00dc 5F90 pop r5
  133. 130 00de 4F90 pop r4
  134. 131 00e0 0895 ret
  135. 132 .size GpioSpiBusSetRate, .-GpioSpiBusSetRate
  136. 133 .section .text.GpioSpiSetup,"ax",@progbits
  137. 134 .global GpioSpiSetup
  138. 135 .type GpioSpiSetup, @function
  139. 136 GpioSpiSetup:
  140. 137 0000 CF93 push r28
  141. 138 0002 DF93 push r29
  142. 139 /* prologue: function */
  143. 140 /* frame size = 0 */
  144. 141 /* stack size = 2 */
  145. 142 .L__stack_usage = 2
  146. 143 0004 EC01 movw r28,r24
  147. 144 0006 88E0 ldi r24,lo8(8)
  148. 145 0008 8A87 std Y+10,r24
  149. 146 000a 4C81 ldd r20,Y+4
  150. 147 000c 5D81 ldd r21,Y+5
  151. 148 000e 6E81 ldd r22,Y+6
  152. 149 0010 7F81 ldd r23,Y+7
  153. 150 0012 CE01 movw r24,r28
  154. 151 0014 0E94 0000 call GpioSpiBusSetRate
  155. 152 0018 8885 ldd r24,Y+8
  156. 153 001a 9985 ldd r25,Y+9
  157. 154 001c 9F77 andi r25,127
  158. 155 001e 9987 std Y+9,r25
  159. 156 0020 8887 std Y+8,r24
  160. 157 0022 80E0 ldi r24,0
  161. 158 0024 90E0 ldi r25,0
  162. 159 /* epilogue start */
  163. 160 0026 DF91 pop r29
  164. 161 0028 CF91 pop r28
  165. 162 002a 0895 ret
  166. 163 .size GpioSpiSetup, .-GpioSpiSetup
  167. 164 .ident "GCC: (GNU) 5.3.0"
  168. GAS LISTING /tmp/cccZBdln.s page 4
  169. DEFINED SYMBOLS
  170. *ABS*:0000000000000000 spibus_gpio.c
  171. /tmp/cccZBdln.s:2 *ABS*:000000000000003e __SP_H__
  172. /tmp/cccZBdln.s:3 *ABS*:000000000000003d __SP_L__
  173. /tmp/cccZBdln.s:4 *ABS*:000000000000003f __SREG__
  174. /tmp/cccZBdln.s:5 *ABS*:000000000000003b __RAMPZ__
  175. /tmp/cccZBdln.s:6 *ABS*:0000000000000000 __tmp_reg__
  176. /tmp/cccZBdln.s:7 *ABS*:0000000000000001 __zero_reg__
  177. /tmp/cccZBdln.s:11 .text.GpioSpiBusSetRate:0000000000000000 GpioSpiBusSetRate
  178. /tmp/cccZBdln.s:136 .text.GpioSpiSetup:0000000000000000 GpioSpiSetup
  179. UNDEFINED SYMBOLS
  180. __udivmodsi4