wdt_avr.lst 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. GAS LISTING /tmp/ccbE7do1.s page 1
  2. 1 .file "wdt_avr.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.AvrWatchDogStart,"ax",@progbits
  10. 9 .global AvrWatchDogStart
  11. 10 .type AvrWatchDogStart, @function
  12. 11 AvrWatchDogStart:
  13. 12 0000 0F93 push r16
  14. 13 0002 1F93 push r17
  15. 14 /* prologue: function */
  16. 15 /* frame size = 0 */
  17. 16 /* stack size = 2 */
  18. 17 .L__stack_usage = 2
  19. 18 0004 9B01 movw r18,r22
  20. 19 0006 AC01 movw r20,r24
  21. 20 /* #APP */
  22. 21 ; 79 "../../nut/arch/avr/dev/wdt_avr.c" 1
  23. 22 0008 A895 wdr
  24. 23 ; 0 "" 2
  25. 24 /* #NOAPP */
  26. 25 000a ADE8 ldi r26,lo8(-115)
  27. 26 000c B4E0 ldi r27,lo8(4)
  28. 27 000e 0E94 0000 call __muluhisi3
  29. 28 0012 AB01 movw r20,r22
  30. 29 0014 BC01 movw r22,r24
  31. 30 0016 9EE0 ldi r25,14
  32. 31 1:
  33. 32 0018 7695 lsr r23
  34. 33 001a 6795 ror r22
  35. 34 001c 5795 ror r21
  36. 35 001e 4795 ror r20
  37. 36 0020 9A95 dec r25
  38. 37 0022 01F4 brne 1b
  39. 38 0024 1092 0000 sts wdt_div,__zero_reg__
  40. 39 0028 80E0 ldi r24,0
  41. 40 002a 90E0 ldi r25,0
  42. 41 .L2:
  43. 42 002c 8730 cpi r24,lo8(7)
  44. 43 002e 01F0 breq .L15
  45. 44 0030 21E0 ldi r18,lo8(1)
  46. 45 0032 280F add r18,r24
  47. 46 0034 4115 cp r20,__zero_reg__
  48. 47 0036 5105 cpc r21,__zero_reg__
  49. 48 0038 6105 cpc r22,__zero_reg__
  50. 49 003a 7105 cpc r23,__zero_reg__
  51. 50 003c 01F0 breq .L15
  52. 51 003e 7695 lsr r23
  53. 52 0040 6795 ror r22
  54. 53 0042 5795 ror r21
  55. 54 0044 4795 ror r20
  56. 55 0046 91E0 ldi r25,lo8(1)
  57. 56 0048 822F mov r24,r18
  58. 57 004a 00C0 rjmp .L2
  59. GAS LISTING /tmp/ccbE7do1.s page 2
  60. 58 .L15:
  61. 59 004c 9111 cpse r25,__zero_reg__
  62. 60 004e 8093 0000 sts wdt_div,r24
  63. 61 .L7:
  64. 62 0052 282F mov r18,r24
  65. 63 0054 2860 ori r18,lo8(8)
  66. 64 0056 98E1 ldi r25,lo8(24)
  67. 65 /* #APP */
  68. 66 ; 425 "/usr/avr/include/avr/wdt.h" 1
  69. 67 0058 0FB6 in __tmp_reg__,__SREG__
  70. 68 005a F894 cli
  71. 69 005c A895 wdr
  72. 70 005e 9093 6000 sts 96, r25
  73. 71 0062 0FBE out __SREG__,__tmp_reg__
  74. 72 0064 2093 6000 sts 96, r18
  75. 73
  76. 74 ; 0 "" 2
  77. 75 /* #NOAPP */
  78. 76 0068 91E0 ldi r25,lo8(1)
  79. 77 006a 9093 0000 sts nested,r25
  80. 78 006e 40E0 ldi r20,0
  81. 79 0070 50E4 ldi r21,lo8(64)
  82. 80 0072 60E0 ldi r22,0
  83. 81 0074 70E0 ldi r23,0
  84. 82 0076 8A01 movw r16,r20
  85. 83 0078 9B01 movw r18,r22
  86. 84 007a 00C0 rjmp 2f
  87. 85 1:
  88. 86 007c 000F lsl r16
  89. 87 007e 111F rol r17
  90. 88 0080 221F rol r18
  91. 89 0082 331F rol r19
  92. 90 2:
  93. 91 0084 8A95 dec r24
  94. 92 0086 02F4 brpl 1b
  95. 93 0088 C901 movw r24,r18
  96. 94 008a B801 movw r22,r16
  97. 95 008c 2DE8 ldi r18,lo8(-115)
  98. 96 008e 34E0 ldi r19,lo8(4)
  99. 97 0090 40E0 ldi r20,0
  100. 98 0092 50E0 ldi r21,0
  101. 99 0094 0E94 0000 call __udivmodsi4
  102. 100 0098 CA01 movw r24,r20
  103. 101 009a B901 movw r22,r18
  104. 102 /* epilogue start */
  105. 103 009c 1F91 pop r17
  106. 104 009e 0F91 pop r16
  107. 105 00a0 0895 ret
  108. 106 .size AvrWatchDogStart, .-AvrWatchDogStart
  109. 107 .section .text.AvrWatchDogRestart,"ax",@progbits
  110. 108 .global AvrWatchDogRestart
  111. 109 .type AvrWatchDogRestart, @function
  112. 110 AvrWatchDogRestart:
  113. 111 /* prologue: function */
  114. 112 /* frame size = 0 */
  115. 113 /* stack size = 0 */
  116. 114 .L__stack_usage = 0
  117. GAS LISTING /tmp/ccbE7do1.s page 3
  118. 115 /* #APP */
  119. 116 ; 100 "../../nut/arch/avr/dev/wdt_avr.c" 1
  120. 117 0000 A895 wdr
  121. 118 ; 0 "" 2
  122. 119 /* #NOAPP */
  123. 120 0002 0895 ret
  124. 121 .size AvrWatchDogRestart, .-AvrWatchDogRestart
  125. 122 .section .text.AvrWatchDogDisable,"ax",@progbits
  126. 123 .global AvrWatchDogDisable
  127. 124 .type AvrWatchDogDisable, @function
  128. 125 AvrWatchDogDisable:
  129. 126 /* prologue: function */
  130. 127 /* frame size = 0 */
  131. 128 /* stack size = 0 */
  132. 129 .L__stack_usage = 0
  133. 130 0000 8091 0000 lds r24,nested
  134. 131 0004 8823 tst r24
  135. 132 0006 01F0 breq .L19
  136. 133 0008 8F5F subi r24,lo8(-(1))
  137. 134 000a 8093 0000 sts nested,r24
  138. 135 .L19:
  139. 136 /* #APP */
  140. 137 ; 467 "/usr/avr/include/avr/wdt.h" 1
  141. 138 000e 0FB6 in __tmp_reg__,__SREG__
  142. 139 0010 F894 cli
  143. 140 0012 A895 wdr
  144. 141 0014 8091 6000 lds r24,96
  145. 142 0018 8861 ori r24,24
  146. 143 001a 8093 6000 sts 96,r24
  147. 144 001e 1092 6000 sts 96,__zero_reg__
  148. 145 0022 0FBE out __SREG__,__tmp_reg__
  149. 146
  150. 147 ; 0 "" 2
  151. 148 /* #NOAPP */
  152. 149 0024 0895 ret
  153. 150 .size AvrWatchDogDisable, .-AvrWatchDogDisable
  154. 151 .section .text.AvrWatchDogEnable,"ax",@progbits
  155. 152 .global AvrWatchDogEnable
  156. 153 .type AvrWatchDogEnable, @function
  157. 154 AvrWatchDogEnable:
  158. 155 /* prologue: function */
  159. 156 /* frame size = 0 */
  160. 157 /* stack size = 0 */
  161. 158 .L__stack_usage = 0
  162. 159 0000 8091 0000 lds r24,nested
  163. 160 0004 8230 cpi r24,lo8(2)
  164. 161 0006 00F0 brlo .L23
  165. 162 0008 8150 subi r24,lo8(-(-1))
  166. 163 000a 8093 0000 sts nested,r24
  167. 164 000e 8130 cpi r24,lo8(1)
  168. 165 0010 01F4 brne .L23
  169. 166 0012 9091 0000 lds r25,wdt_div
  170. 167 0016 93FD sbrc r25,3
  171. 168 0018 00C0 rjmp .L28
  172. 169 001a 88E0 ldi r24,lo8(8)
  173. 170 001c 00C0 rjmp .L27
  174. 171 .L28:
  175. GAS LISTING /tmp/ccbE7do1.s page 4
  176. 172 001e 88E2 ldi r24,lo8(40)
  177. 173 .L27:
  178. 174 0020 9770 andi r25,lo8(7)
  179. 175 0022 892B or r24,r25
  180. 176 0024 98E1 ldi r25,lo8(24)
  181. 177 /* #APP */
  182. 178 ; 425 "/usr/avr/include/avr/wdt.h" 1
  183. 179 0026 0FB6 in __tmp_reg__,__SREG__
  184. 180 0028 F894 cli
  185. 181 002a A895 wdr
  186. 182 002c 9093 6000 sts 96, r25
  187. 183 0030 0FBE out __SREG__,__tmp_reg__
  188. 184 0032 8093 6000 sts 96, r24
  189. 185
  190. 186 ; 0 "" 2
  191. 187 /* #NOAPP */
  192. 188 .L23:
  193. 189 0036 0895 ret
  194. 190 .size AvrWatchDogEnable, .-AvrWatchDogEnable
  195. 191 .local wdt_div
  196. 192 .comm wdt_div,1,1
  197. 193 .local nested
  198. 194 .comm nested,1,1
  199. 195 .ident "GCC: (GNU) 5.3.0"
  200. 196 .global __do_clear_bss
  201. GAS LISTING /tmp/ccbE7do1.s page 5
  202. DEFINED SYMBOLS
  203. *ABS*:0000000000000000 wdt_avr.c
  204. /tmp/ccbE7do1.s:2 *ABS*:000000000000003e __SP_H__
  205. /tmp/ccbE7do1.s:3 *ABS*:000000000000003d __SP_L__
  206. /tmp/ccbE7do1.s:4 *ABS*:000000000000003f __SREG__
  207. /tmp/ccbE7do1.s:5 *ABS*:000000000000003b __RAMPZ__
  208. /tmp/ccbE7do1.s:6 *ABS*:0000000000000000 __tmp_reg__
  209. /tmp/ccbE7do1.s:7 *ABS*:0000000000000001 __zero_reg__
  210. /tmp/ccbE7do1.s:11 .text.AvrWatchDogStart:0000000000000000 AvrWatchDogStart
  211. .bss:0000000000000000 wdt_div
  212. /tmp/ccbE7do1.s:192 .bss:0000000000000001 nested
  213. /tmp/ccbE7do1.s:110 .text.AvrWatchDogRestart:0000000000000000 AvrWatchDogRestart
  214. /tmp/ccbE7do1.s:125 .text.AvrWatchDogDisable:0000000000000000 AvrWatchDogDisable
  215. /tmp/ccbE7do1.s:154 .text.AvrWatchDogEnable:0000000000000000 AvrWatchDogEnable
  216. UNDEFINED SYMBOLS
  217. __muluhisi3
  218. __udivmodsi4
  219. __do_clear_bss