condition.lst 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. GAS LISTING /tmp/ccaRnYSb.s page 1
  2. 1 .file "condition.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.NutConditionInit,"ax",@progbits
  10. 9 .global NutConditionInit
  11. 10 .type NutConditionInit, @function
  12. 11 NutConditionInit:
  13. 12 /* prologue: function */
  14. 13 /* frame size = 0 */
  15. 14 /* stack size = 0 */
  16. 15 .L__stack_usage = 0
  17. 16 0000 68E0 ldi r22,lo8(8)
  18. 17 0002 70E0 ldi r23,0
  19. 18 0004 80E0 ldi r24,lo8(heapFreeList)
  20. 19 0006 90E0 ldi r25,hi8(heapFreeList)
  21. 20 0008 0E94 0000 call NutHeapRootAlloc
  22. 21 000c 0097 sbiw r24,0
  23. 22 000e 01F0 breq .L3
  24. 23 0010 0296 adiw r24,2
  25. 24 0012 0E94 0000 call NutMutexInit
  26. 25 0016 80E0 ldi r24,0
  27. 26 0018 90E0 ldi r25,0
  28. 27 001a 0895 ret
  29. 28 .L3:
  30. 29 001c 81E0 ldi r24,lo8(1)
  31. 30 001e 90E0 ldi r25,0
  32. 31 0020 0895 ret
  33. 32 .size NutConditionInit, .-NutConditionInit
  34. 33 .section .text.NutConditionLock,"ax",@progbits
  35. 34 .global NutConditionLock
  36. 35 .type NutConditionLock, @function
  37. 36 NutConditionLock:
  38. 37 /* prologue: function */
  39. 38 /* frame size = 0 */
  40. 39 /* stack size = 0 */
  41. 40 .L__stack_usage = 0
  42. 41 0000 0097 sbiw r24,0
  43. 42 0002 01F0 breq .L5
  44. 43 0004 0296 adiw r24,2
  45. 44 0006 0C94 0000 jmp NutMutexLock
  46. 45 .L5:
  47. 46 000a 0895 ret
  48. 47 .size NutConditionLock, .-NutConditionLock
  49. 48 .section .text.NutConditionUnlock,"ax",@progbits
  50. 49 .global NutConditionUnlock
  51. 50 .type NutConditionUnlock, @function
  52. 51 NutConditionUnlock:
  53. 52 /* prologue: function */
  54. 53 /* frame size = 0 */
  55. 54 /* stack size = 0 */
  56. 55 .L__stack_usage = 0
  57. 56 0000 0097 sbiw r24,0
  58. 57 0002 01F0 breq .L7
  59. GAS LISTING /tmp/ccaRnYSb.s page 2
  60. 58 0004 0296 adiw r24,2
  61. 59 0006 0C94 0000 jmp NutMutexUnlock
  62. 60 .L7:
  63. 61 000a 0895 ret
  64. 62 .size NutConditionUnlock, .-NutConditionUnlock
  65. 63 .section .text.NutConditionWait,"ax",@progbits
  66. 64 .global NutConditionWait
  67. 65 .type NutConditionWait, @function
  68. 66 NutConditionWait:
  69. 67 0000 0F93 push r16
  70. 68 0002 1F93 push r17
  71. 69 0004 CF93 push r28
  72. 70 0006 DF93 push r29
  73. 71 /* prologue: function */
  74. 72 /* frame size = 0 */
  75. 73 /* stack size = 4 */
  76. 74 .L__stack_usage = 4
  77. 75 0008 EC01 movw r28,r24
  78. 76 000a 0097 sbiw r24,0
  79. 77 000c 01F0 breq .L11
  80. 78 000e 8C01 movw r16,r24
  81. 79 0010 0E5F subi r16,-2
  82. 80 0012 1F4F sbci r17,-1
  83. 81 0014 C801 movw r24,r16
  84. 82 0016 0E94 0000 call NutMutexUnlock
  85. 83 001a 40E0 ldi r20,0
  86. 84 001c 50E0 ldi r21,0
  87. 85 001e BA01 movw r22,r20
  88. 86 0020 8881 ld r24,Y
  89. 87 0022 9981 ldd r25,Y+1
  90. 88 0024 0E94 0000 call NutEventWait
  91. 89 0028 C801 movw r24,r16
  92. 90 002a 0E94 0000 call NutMutexLock
  93. 91 002e 80E0 ldi r24,0
  94. 92 0030 90E0 ldi r25,0
  95. 93 0032 00C0 rjmp .L10
  96. 94 .L11:
  97. 95 0034 8FEF ldi r24,lo8(-1)
  98. 96 0036 9FEF ldi r25,lo8(-1)
  99. 97 .L10:
  100. 98 /* epilogue start */
  101. 99 0038 DF91 pop r29
  102. 100 003a CF91 pop r28
  103. 101 003c 1F91 pop r17
  104. 102 003e 0F91 pop r16
  105. 103 0040 0895 ret
  106. 104 .size NutConditionWait, .-NutConditionWait
  107. 105 .section .text.NutConditionTimedWait,"ax",@progbits
  108. 106 .global NutConditionTimedWait
  109. 107 .type NutConditionTimedWait, @function
  110. 108 NutConditionTimedWait:
  111. 109 0000 AF92 push r10
  112. 110 0002 BF92 push r11
  113. 111 0004 CF92 push r12
  114. 112 0006 DF92 push r13
  115. 113 0008 EF92 push r14
  116. 114 000a FF92 push r15
  117. GAS LISTING /tmp/ccaRnYSb.s page 3
  118. 115 000c 0F93 push r16
  119. 116 000e 1F93 push r17
  120. 117 0010 CF93 push r28
  121. 118 0012 DF93 push r29
  122. 119 0014 00D0 rcall .
  123. 120 0016 1F92 push __zero_reg__
  124. 121 0018 CDB7 in r28,__SP_L__
  125. 122 001a DEB7 in r29,__SP_H__
  126. 123 /* prologue: function */
  127. 124 /* frame size = 4 */
  128. 125 /* stack size = 14 */
  129. 126 .L__stack_usage = 14
  130. 127 001c 5C01 movw r10,r24
  131. 128 001e 6A01 movw r12,r20
  132. 129 0020 7B01 movw r14,r22
  133. 130 0022 892B or r24,r25
  134. 131 0024 01F4 brne .L13
  135. 132 .L15:
  136. 133 0026 8FEF ldi r24,lo8(-1)
  137. 134 0028 9FEF ldi r25,lo8(-1)
  138. 135 002a 00C0 rjmp .L14
  139. 136 .L13:
  140. 137 002c 0E94 0000 call NutGetMillis
  141. 138 0030 9701 movw r18,r14
  142. 139 0032 8601 movw r16,r12
  143. 140 0034 061B sub r16,r22
  144. 141 0036 170B sbc r17,r23
  145. 142 0038 280B sbc r18,r24
  146. 143 003a 390B sbc r19,r25
  147. 144 003c B901 movw r22,r18
  148. 145 003e A801 movw r20,r16
  149. 146 0040 37FD sbrc r19,7
  150. 147 0042 00C0 rjmp .L15
  151. 148 0044 7501 movw r14,r10
  152. 149 0046 12E0 ldi r17,2
  153. 150 0048 E10E add r14,r17
  154. 151 004a F11C adc r15,__zero_reg__
  155. 152 004c C701 movw r24,r14
  156. 153 004e 4983 std Y+1,r20
  157. 154 0050 5A83 std Y+2,r21
  158. 155 0052 6B83 std Y+3,r22
  159. 156 0054 7C83 std Y+4,r23
  160. 157 0056 0E94 0000 call NutMutexUnlock
  161. 158 005a 4981 ldd r20,Y+1
  162. 159 005c 5A81 ldd r21,Y+2
  163. 160 005e 6B81 ldd r22,Y+3
  164. 161 0060 7C81 ldd r23,Y+4
  165. 162 0062 C501 movw r24,r10
  166. 163 0064 0E94 0000 call NutEventWait
  167. 164 0068 C701 movw r24,r14
  168. 165 006a 0E94 0000 call NutMutexLock
  169. 166 006e 80E0 ldi r24,0
  170. 167 0070 90E0 ldi r25,0
  171. 168 .L14:
  172. 169 /* epilogue start */
  173. 170 0072 0F90 pop __tmp_reg__
  174. 171 0074 0F90 pop __tmp_reg__
  175. GAS LISTING /tmp/ccaRnYSb.s page 4
  176. 172 0076 0F90 pop __tmp_reg__
  177. 173 0078 0F90 pop __tmp_reg__
  178. 174 007a DF91 pop r29
  179. 175 007c CF91 pop r28
  180. 176 007e 1F91 pop r17
  181. 177 0080 0F91 pop r16
  182. 178 0082 FF90 pop r15
  183. 179 0084 EF90 pop r14
  184. 180 0086 DF90 pop r13
  185. 181 0088 CF90 pop r12
  186. 182 008a BF90 pop r11
  187. 183 008c AF90 pop r10
  188. 184 008e 0895 ret
  189. 185 .size NutConditionTimedWait, .-NutConditionTimedWait
  190. 186 .section .text.NutConditionSignal,"ax",@progbits
  191. 187 .global NutConditionSignal
  192. 188 .type NutConditionSignal, @function
  193. 189 NutConditionSignal:
  194. 190 /* prologue: function */
  195. 191 /* frame size = 0 */
  196. 192 /* stack size = 0 */
  197. 193 .L__stack_usage = 0
  198. 194 0000 0097 sbiw r24,0
  199. 195 0002 01F0 breq .L17
  200. 196 0004 0C94 0000 jmp NutEventPost
  201. 197 .L17:
  202. 198 0008 8FEF ldi r24,lo8(-1)
  203. 199 000a 9FEF ldi r25,lo8(-1)
  204. 200 000c 0895 ret
  205. 201 .size NutConditionSignal, .-NutConditionSignal
  206. 202 .section .text.NutConditionBroadcast,"ax",@progbits
  207. 203 .global NutConditionBroadcast
  208. 204 .type NutConditionBroadcast, @function
  209. 205 NutConditionBroadcast:
  210. 206 /* prologue: function */
  211. 207 /* frame size = 0 */
  212. 208 /* stack size = 0 */
  213. 209 .L__stack_usage = 0
  214. 210 0000 0097 sbiw r24,0
  215. 211 0002 01F0 breq .L19
  216. 212 0004 0C94 0000 jmp NutEventBroadcast
  217. 213 .L19:
  218. 214 0008 8FEF ldi r24,lo8(-1)
  219. 215 000a 9FEF ldi r25,lo8(-1)
  220. 216 000c 0895 ret
  221. 217 .size NutConditionBroadcast, .-NutConditionBroadcast
  222. 218 .section .text.NutConditionFree,"ax",@progbits
  223. 219 .global NutConditionFree
  224. 220 .type NutConditionFree, @function
  225. 221 NutConditionFree:
  226. 222 0000 CF93 push r28
  227. 223 0002 DF93 push r29
  228. 224 /* prologue: function */
  229. 225 /* frame size = 0 */
  230. 226 /* stack size = 2 */
  231. 227 .L__stack_usage = 2
  232. 228 0004 EC01 movw r28,r24
  233. GAS LISTING /tmp/ccaRnYSb.s page 5
  234. 229 0006 0296 adiw r24,2
  235. 230 0008 0E94 0000 call NutMutexDestroy
  236. 231 000c BE01 movw r22,r28
  237. 232 000e 80E0 ldi r24,lo8(heapFreeList)
  238. 233 0010 90E0 ldi r25,hi8(heapFreeList)
  239. 234 /* epilogue start */
  240. 235 0012 DF91 pop r29
  241. 236 0014 CF91 pop r28
  242. 237 0016 0C94 0000 jmp NutHeapRootFree
  243. 238 .size NutConditionFree, .-NutConditionFree
  244. 239 .ident "GCC: (GNU) 5.3.0"
  245. GAS LISTING /tmp/ccaRnYSb.s page 6
  246. DEFINED SYMBOLS
  247. *ABS*:0000000000000000 condition.c
  248. /tmp/ccaRnYSb.s:2 *ABS*:000000000000003e __SP_H__
  249. /tmp/ccaRnYSb.s:3 *ABS*:000000000000003d __SP_L__
  250. /tmp/ccaRnYSb.s:4 *ABS*:000000000000003f __SREG__
  251. /tmp/ccaRnYSb.s:5 *ABS*:000000000000003b __RAMPZ__
  252. /tmp/ccaRnYSb.s:6 *ABS*:0000000000000000 __tmp_reg__
  253. /tmp/ccaRnYSb.s:7 *ABS*:0000000000000001 __zero_reg__
  254. /tmp/ccaRnYSb.s:11 .text.NutConditionInit:0000000000000000 NutConditionInit
  255. /tmp/ccaRnYSb.s:36 .text.NutConditionLock:0000000000000000 NutConditionLock
  256. /tmp/ccaRnYSb.s:51 .text.NutConditionUnlock:0000000000000000 NutConditionUnlock
  257. /tmp/ccaRnYSb.s:66 .text.NutConditionWait:0000000000000000 NutConditionWait
  258. /tmp/ccaRnYSb.s:108 .text.NutConditionTimedWait:0000000000000000 NutConditionTimedWait
  259. /tmp/ccaRnYSb.s:189 .text.NutConditionSignal:0000000000000000 NutConditionSignal
  260. /tmp/ccaRnYSb.s:205 .text.NutConditionBroadcast:0000000000000000 NutConditionBroadcast
  261. /tmp/ccaRnYSb.s:221 .text.NutConditionFree:0000000000000000 NutConditionFree
  262. UNDEFINED SYMBOLS
  263. heapFreeList
  264. NutHeapRootAlloc
  265. NutMutexInit
  266. NutMutexLock
  267. NutMutexUnlock
  268. NutEventWait
  269. NutGetMillis
  270. NutEventPost
  271. NutEventBroadcast
  272. NutMutexDestroy
  273. NutHeapRootFree