bankmem.lst 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. GAS LISTING /tmp/cc9x1Tbz.s page 1
  2. 1 .file "bankmem.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.NutSegBufReset,"ax",@progbits
  10. 9 .global NutSegBufReset
  11. 10 .type NutSegBufReset, @function
  12. 11 NutSegBufReset:
  13. 12 /* prologue: function */
  14. 13 /* frame size = 0 */
  15. 14 /* stack size = 0 */
  16. 15 .L__stack_usage = 0
  17. 16 0000 8091 0000 lds r24,segbuf_start
  18. 17 0004 9091 0000 lds r25,segbuf_start+1
  19. 18 0008 9093 0000 sts segbuf_wp+1,r25
  20. 19 000c 8093 0000 sts segbuf_wp,r24
  21. 20 0010 9093 0000 sts segbuf_rp+1,r25
  22. 21 0014 8093 0000 sts segbuf_rp,r24
  23. 22 0018 1092 0000 sts segbuf_ws,__zero_reg__
  24. 23 001c 1092 0000 sts segbuf_rs,__zero_reg__
  25. 24 0020 1092 FFFF sts -1,__zero_reg__
  26. 25 0024 81E0 ldi r24,lo8(1)
  27. 26 0026 8093 0000 sts segbuf_empty,r24
  28. 27 002a 1092 0000 sts segbuf_used,__zero_reg__
  29. 28 002e 1092 0000 sts segbuf_used+1,__zero_reg__
  30. 29 0032 1092 0000 sts segbuf_used+2,__zero_reg__
  31. 30 0036 1092 0000 sts segbuf_used+3,__zero_reg__
  32. 31 003a 8091 0000 lds r24,segbuf_start
  33. 32 003e 9091 0000 lds r25,segbuf_start+1
  34. 33 0042 0895 ret
  35. 34 .size NutSegBufReset, .-NutSegBufReset
  36. 35 .section .text.NutSegBufInit,"ax",@progbits
  37. 36 .global NutSegBufInit
  38. 37 .type NutSegBufInit, @function
  39. 38 NutSegBufInit:
  40. 39 /* prologue: function */
  41. 40 /* frame size = 0 */
  42. 41 /* stack size = 0 */
  43. 42 .L__stack_usage = 0
  44. 43 0000 80E0 ldi r24,0
  45. 44 0002 90E8 ldi r25,lo8(-128)
  46. 45 0004 9093 0000 sts segbuf_start+1,r25
  47. 46 0008 8093 0000 sts segbuf_start,r24
  48. 47 000c 80E0 ldi r24,0
  49. 48 000e 90EC ldi r25,lo8(-64)
  50. 49 0010 9093 0000 sts segbuf_end+1,r25
  51. 50 0014 8093 0000 sts segbuf_end,r24
  52. 51 0018 80E0 ldi r24,0
  53. 52 001a 90E8 ldi r25,lo8(-128)
  54. 53 001c A7E0 ldi r26,lo8(7)
  55. 54 001e B0E0 ldi r27,0
  56. 55 0020 8093 0000 sts segbuf_total,r24
  57. 56 0024 9093 0000 sts segbuf_total+1,r25
  58. 57 0028 A093 0000 sts segbuf_total+2,r26
  59. GAS LISTING /tmp/cc9x1Tbz.s page 2
  60. 58 002c B093 0000 sts segbuf_total+3,r27
  61. 59 0030 0C94 0000 jmp NutSegBufReset
  62. 60 .size NutSegBufInit, .-NutSegBufInit
  63. 61 .section .text.NutSegBufWriteRequest,"ax",@progbits
  64. 62 .global NutSegBufWriteRequest
  65. 63 .type NutSegBufWriteRequest, @function
  66. 64 NutSegBufWriteRequest:
  67. 65 /* prologue: function */
  68. 66 /* frame size = 0 */
  69. 67 /* stack size = 0 */
  70. 68 .L__stack_usage = 0
  71. 69 0000 FC01 movw r30,r24
  72. 70 0002 2091 0000 lds r18,segbuf_empty
  73. 71 0006 4091 0000 lds r20,segbuf_ws
  74. 72 000a 8091 0000 lds r24,segbuf_wp
  75. 73 000e 9091 0000 lds r25,segbuf_wp+1
  76. 74 0012 2111 cpse r18,__zero_reg__
  77. 75 0014 00C0 rjmp .L4
  78. 76 0016 2091 0000 lds r18,segbuf_rs
  79. 77 001a 4213 cpse r20,r18
  80. 78 001c 00C0 rjmp .L4
  81. 79 001e 2091 0000 lds r18,segbuf_rp
  82. 80 0022 3091 0000 lds r19,segbuf_rp+1
  83. 81 0026 2817 cp r18,r24
  84. 82 0028 3907 cpc r19,r25
  85. 83 002a 00F4 brsh .L5
  86. 84 .L4:
  87. 85 002c 2091 0000 lds r18,segbuf_end
  88. 86 0030 3091 0000 lds r19,segbuf_end+1
  89. 87 .L5:
  90. 88 0034 281B sub r18,r24
  91. 89 0036 390B sbc r19,r25
  92. 90 0038 3183 std Z+1,r19
  93. 91 003a 2083 st Z,r18
  94. 92 003c E42F mov r30,r20
  95. 93 003e 042E mov __tmp_reg__,r20
  96. 94 0040 000C lsl r0
  97. 95 0042 FF0B sbc r31,r31
  98. 96 0044 3197 sbiw r30,1
  99. 97 0046 4083 st Z,r20
  100. 98 0048 0895 ret
  101. 99 .size NutSegBufWriteRequest, .-NutSegBufWriteRequest
  102. 100 .section .text.NutSegBufReadRequest,"ax",@progbits
  103. 101 .global NutSegBufReadRequest
  104. 102 .type NutSegBufReadRequest, @function
  105. 103 NutSegBufReadRequest:
  106. 104 /* prologue: function */
  107. 105 /* frame size = 0 */
  108. 106 /* stack size = 0 */
  109. 107 .L__stack_usage = 0
  110. 108 0000 FC01 movw r30,r24
  111. 109 0002 2091 0000 lds r18,segbuf_empty
  112. 110 0006 4091 0000 lds r20,segbuf_rs
  113. 111 000a 8091 0000 lds r24,segbuf_rp
  114. 112 000e 9091 0000 lds r25,segbuf_rp+1
  115. 113 0012 2223 tst r18
  116. 114 0014 01F0 breq .L9
  117. GAS LISTING /tmp/cc9x1Tbz.s page 3
  118. 115 0016 1182 std Z+1,__zero_reg__
  119. 116 0018 1082 st Z,__zero_reg__
  120. 117 001a 00C0 rjmp .L10
  121. 118 .L9:
  122. 119 001c 2091 0000 lds r18,segbuf_ws
  123. 120 0020 2413 cpse r18,r20
  124. 121 0022 00C0 rjmp .L11
  125. 122 0024 2091 0000 lds r18,segbuf_wp
  126. 123 0028 3091 0000 lds r19,segbuf_wp+1
  127. 124 002c 8217 cp r24,r18
  128. 125 002e 9307 cpc r25,r19
  129. 126 0030 00F0 brlo .L12
  130. 127 .L11:
  131. 128 0032 2091 0000 lds r18,segbuf_end
  132. 129 0036 3091 0000 lds r19,segbuf_end+1
  133. 130 003a 281B sub r18,r24
  134. 131 003c 390B sbc r19,r25
  135. 132 003e 3183 std Z+1,r19
  136. 133 0040 2083 st Z,r18
  137. 134 0042 00C0 rjmp .L10
  138. 135 .L12:
  139. 136 0044 281B sub r18,r24
  140. 137 0046 390B sbc r19,r25
  141. 138 0048 3183 std Z+1,r19
  142. 139 004a 2083 st Z,r18
  143. 140 004c 232B or r18,r19
  144. 141 004e 01F4 brne .L10
  145. 142 0050 21E0 ldi r18,lo8(1)
  146. 143 0052 2093 0000 sts segbuf_empty,r18
  147. 144 .L10:
  148. 145 0056 E42F mov r30,r20
  149. 146 0058 042E mov __tmp_reg__,r20
  150. 147 005a 000C lsl r0
  151. 148 005c FF0B sbc r31,r31
  152. 149 005e 3197 sbiw r30,1
  153. 150 0060 4083 st Z,r20
  154. 151 0062 0895 ret
  155. 152 .size NutSegBufReadRequest, .-NutSegBufReadRequest
  156. 153 .section .text.NutSegBufWriteCommit,"ax",@progbits
  157. 154 .global NutSegBufWriteCommit
  158. 155 .type NutSegBufWriteCommit, @function
  159. 156 NutSegBufWriteCommit:
  160. 157 /* prologue: function */
  161. 158 /* frame size = 0 */
  162. 159 /* stack size = 0 */
  163. 160 .L__stack_usage = 0
  164. 161 0000 AC01 movw r20,r24
  165. 162 0002 0097 sbiw r24,0
  166. 163 0004 01F4 brne .+2
  167. 164 0006 00C0 rjmp .L15
  168. 165 0008 2091 0000 lds r18,segbuf_wp
  169. 166 000c 3091 0000 lds r19,segbuf_wp+1
  170. 167 0010 280F add r18,r24
  171. 168 0012 391F adc r19,r25
  172. 169 0014 3093 0000 sts segbuf_wp+1,r19
  173. 170 0018 2093 0000 sts segbuf_wp,r18
  174. 171 001c 1092 0000 sts segbuf_empty,__zero_reg__
  175. GAS LISTING /tmp/cc9x1Tbz.s page 4
  176. 172 0020 8091 0000 lds r24,segbuf_used
  177. 173 0024 9091 0000 lds r25,segbuf_used+1
  178. 174 0028 A091 0000 lds r26,segbuf_used+2
  179. 175 002c B091 0000 lds r27,segbuf_used+3
  180. 176 0030 840F add r24,r20
  181. 177 0032 951F adc r25,r21
  182. 178 0034 A11D adc r26,__zero_reg__
  183. 179 0036 B11D adc r27,__zero_reg__
  184. 180 0038 8093 0000 sts segbuf_used,r24
  185. 181 003c 9093 0000 sts segbuf_used+1,r25
  186. 182 0040 A093 0000 sts segbuf_used+2,r26
  187. 183 0044 B093 0000 sts segbuf_used+3,r27
  188. 184 0048 8091 0000 lds r24,segbuf_end
  189. 185 004c 9091 0000 lds r25,segbuf_end+1
  190. 186 0050 2817 cp r18,r24
  191. 187 0052 3907 cpc r19,r25
  192. 188 0054 01F4 brne .L15
  193. 189 0056 8091 0000 lds r24,segbuf_start
  194. 190 005a 9091 0000 lds r25,segbuf_start+1
  195. 191 005e 9093 0000 sts segbuf_wp+1,r25
  196. 192 0062 8093 0000 sts segbuf_wp,r24
  197. 193 0066 8091 0000 lds r24,segbuf_ws
  198. 194 006a 8F5F subi r24,lo8(-(1))
  199. 195 006c 8E31 cpi r24,lo8(30)
  200. 196 006e 04F4 brge .L17
  201. 197 0070 8093 0000 sts segbuf_ws,r24
  202. 198 0074 00C0 rjmp .L18
  203. 199 .L17:
  204. 200 0076 1092 0000 sts segbuf_ws,__zero_reg__
  205. 201 .L18:
  206. 202 007a 8091 0000 lds r24,segbuf_ws
  207. 203 007e E82F mov r30,r24
  208. 204 0080 082E mov __tmp_reg__,r24
  209. 205 0082 000C lsl r0
  210. 206 0084 FF0B sbc r31,r31
  211. 207 0086 3197 sbiw r30,1
  212. 208 0088 8083 st Z,r24
  213. 209 .L15:
  214. 210 008a 8091 0000 lds r24,segbuf_wp
  215. 211 008e 9091 0000 lds r25,segbuf_wp+1
  216. 212 0092 0895 ret
  217. 213 .size NutSegBufWriteCommit, .-NutSegBufWriteCommit
  218. 214 .section .text.NutSegBufReadCommit,"ax",@progbits
  219. 215 .global NutSegBufReadCommit
  220. 216 .type NutSegBufReadCommit, @function
  221. 217 NutSegBufReadCommit:
  222. 218 /* prologue: function */
  223. 219 /* frame size = 0 */
  224. 220 /* stack size = 0 */
  225. 221 .L__stack_usage = 0
  226. 222 0000 AC01 movw r20,r24
  227. 223 0002 0097 sbiw r24,0
  228. 224 0004 01F4 brne .+2
  229. 225 0006 00C0 rjmp .L21
  230. 226 0008 2091 0000 lds r18,segbuf_rp
  231. 227 000c 3091 0000 lds r19,segbuf_rp+1
  232. 228 0010 280F add r18,r24
  233. GAS LISTING /tmp/cc9x1Tbz.s page 5
  234. 229 0012 391F adc r19,r25
  235. 230 0014 3093 0000 sts segbuf_rp+1,r19
  236. 231 0018 2093 0000 sts segbuf_rp,r18
  237. 232 001c 8091 0000 lds r24,segbuf_used
  238. 233 0020 9091 0000 lds r25,segbuf_used+1
  239. 234 0024 A091 0000 lds r26,segbuf_used+2
  240. 235 0028 B091 0000 lds r27,segbuf_used+3
  241. 236 002c 841B sub r24,r20
  242. 237 002e 950B sbc r25,r21
  243. 238 0030 A109 sbc r26,__zero_reg__
  244. 239 0032 B109 sbc r27,__zero_reg__
  245. 240 0034 8093 0000 sts segbuf_used,r24
  246. 241 0038 9093 0000 sts segbuf_used+1,r25
  247. 242 003c A093 0000 sts segbuf_used+2,r26
  248. 243 0040 B093 0000 sts segbuf_used+3,r27
  249. 244 0044 8091 0000 lds r24,segbuf_end
  250. 245 0048 9091 0000 lds r25,segbuf_end+1
  251. 246 004c 2817 cp r18,r24
  252. 247 004e 3907 cpc r19,r25
  253. 248 0050 01F4 brne .L22
  254. 249 0052 8091 0000 lds r24,segbuf_start
  255. 250 0056 9091 0000 lds r25,segbuf_start+1
  256. 251 005a 9093 0000 sts segbuf_rp+1,r25
  257. 252 005e 8093 0000 sts segbuf_rp,r24
  258. 253 0062 8091 0000 lds r24,segbuf_rs
  259. 254 0066 8F5F subi r24,lo8(-(1))
  260. 255 0068 8E31 cpi r24,lo8(30)
  261. 256 006a 04F4 brge .L23
  262. 257 006c 8093 0000 sts segbuf_rs,r24
  263. 258 0070 00C0 rjmp .L24
  264. 259 .L23:
  265. 260 0072 1092 0000 sts segbuf_rs,__zero_reg__
  266. 261 .L24:
  267. 262 0076 8091 0000 lds r24,segbuf_rs
  268. 263 007a E82F mov r30,r24
  269. 264 007c 082E mov __tmp_reg__,r24
  270. 265 007e 000C lsl r0
  271. 266 0080 FF0B sbc r31,r31
  272. 267 0082 3197 sbiw r30,1
  273. 268 0084 8083 st Z,r24
  274. 269 .L22:
  275. 270 0086 2091 0000 lds r18,segbuf_rp
  276. 271 008a 3091 0000 lds r19,segbuf_rp+1
  277. 272 008e 8091 0000 lds r24,segbuf_wp
  278. 273 0092 9091 0000 lds r25,segbuf_wp+1
  279. 274 0096 2817 cp r18,r24
  280. 275 0098 3907 cpc r19,r25
  281. 276 009a 01F4 brne .L21
  282. 277 009c 9091 0000 lds r25,segbuf_rs
  283. 278 00a0 8091 0000 lds r24,segbuf_ws
  284. 279 00a4 9813 cpse r25,r24
  285. 280 00a6 00C0 rjmp .L21
  286. 281 00a8 81E0 ldi r24,lo8(1)
  287. 282 00aa 8093 0000 sts segbuf_empty,r24
  288. 283 .L21:
  289. 284 00ae 8091 0000 lds r24,segbuf_rp
  290. 285 00b2 9091 0000 lds r25,segbuf_rp+1
  291. GAS LISTING /tmp/cc9x1Tbz.s page 6
  292. 286 00b6 0895 ret
  293. 287 .size NutSegBufReadCommit, .-NutSegBufReadCommit
  294. 288 .section .text.NutSegBufWriteLast,"ax",@progbits
  295. 289 .global NutSegBufWriteLast
  296. 290 .type NutSegBufWriteLast, @function
  297. 291 NutSegBufWriteLast:
  298. 292 /* prologue: function */
  299. 293 /* frame size = 0 */
  300. 294 /* stack size = 0 */
  301. 295 .L__stack_usage = 0
  302. 296 0000 AC01 movw r20,r24
  303. 297 0002 0097 sbiw r24,0
  304. 298 0004 01F0 breq .L28
  305. 299 0006 2091 0000 lds r18,segbuf_wp
  306. 300 000a 3091 0000 lds r19,segbuf_wp+1
  307. 301 000e 280F add r18,r24
  308. 302 0010 391F adc r19,r25
  309. 303 0012 3093 0000 sts segbuf_wp+1,r19
  310. 304 0016 2093 0000 sts segbuf_wp,r18
  311. 305 001a 8091 0000 lds r24,segbuf_used
  312. 306 001e 9091 0000 lds r25,segbuf_used+1
  313. 307 0022 A091 0000 lds r26,segbuf_used+2
  314. 308 0026 B091 0000 lds r27,segbuf_used+3
  315. 309 002a 840F add r24,r20
  316. 310 002c 951F adc r25,r21
  317. 311 002e A11D adc r26,__zero_reg__
  318. 312 0030 B11D adc r27,__zero_reg__
  319. 313 0032 8093 0000 sts segbuf_used,r24
  320. 314 0036 9093 0000 sts segbuf_used+1,r25
  321. 315 003a A093 0000 sts segbuf_used+2,r26
  322. 316 003e B093 0000 sts segbuf_used+3,r27
  323. 317 0042 1092 0000 sts segbuf_empty,__zero_reg__
  324. 318 0046 8091 0000 lds r24,segbuf_end
  325. 319 004a 9091 0000 lds r25,segbuf_end+1
  326. 320 004e 2817 cp r18,r24
  327. 321 0050 3907 cpc r19,r25
  328. 322 0052 01F4 brne .L28
  329. 323 0054 8091 0000 lds r24,segbuf_start
  330. 324 0058 9091 0000 lds r25,segbuf_start+1
  331. 325 005c 9093 0000 sts segbuf_wp+1,r25
  332. 326 0060 8093 0000 sts segbuf_wp,r24
  333. 327 0064 8091 0000 lds r24,segbuf_ws
  334. 328 0068 8F5F subi r24,lo8(-(1))
  335. 329 006a 8E31 cpi r24,lo8(30)
  336. 330 006c 04F4 brge .L30
  337. 331 006e 8093 0000 sts segbuf_ws,r24
  338. 332 0072 00C0 rjmp .L28
  339. 333 .L30:
  340. 334 0074 1092 0000 sts segbuf_ws,__zero_reg__
  341. 335 .L28:
  342. 336 0078 8091 0000 lds r24,segbuf_rs
  343. 337 007c E82F mov r30,r24
  344. 338 007e 082E mov __tmp_reg__,r24
  345. 339 0080 000C lsl r0
  346. 340 0082 FF0B sbc r31,r31
  347. 341 0084 3197 sbiw r30,1
  348. 342 0086 8083 st Z,r24
  349. GAS LISTING /tmp/cc9x1Tbz.s page 7
  350. 343 0088 0895 ret
  351. 344 .size NutSegBufWriteLast, .-NutSegBufWriteLast
  352. 345 .section .text.NutSegBufReadLast,"ax",@progbits
  353. 346 .global NutSegBufReadLast
  354. 347 .type NutSegBufReadLast, @function
  355. 348 NutSegBufReadLast:
  356. 349 /* prologue: function */
  357. 350 /* frame size = 0 */
  358. 351 /* stack size = 0 */
  359. 352 .L__stack_usage = 0
  360. 353 0000 FC01 movw r30,r24
  361. 354 0002 9091 0000 lds r25,segbuf_ws
  362. 355 0006 3097 sbiw r30,0
  363. 356 0008 01F4 brne .+2
  364. 357 000a 00C0 rjmp .L33
  365. 358 000c 2091 0000 lds r18,segbuf_rp
  366. 359 0010 3091 0000 lds r19,segbuf_rp+1
  367. 360 0014 2E0F add r18,r30
  368. 361 0016 3F1F adc r19,r31
  369. 362 0018 3093 0000 sts segbuf_rp+1,r19
  370. 363 001c 2093 0000 sts segbuf_rp,r18
  371. 364 0020 4091 0000 lds r20,segbuf_used
  372. 365 0024 5091 0000 lds r21,segbuf_used+1
  373. 366 0028 6091 0000 lds r22,segbuf_used+2
  374. 367 002c 7091 0000 lds r23,segbuf_used+3
  375. 368 0030 4E1B sub r20,r30
  376. 369 0032 5F0B sbc r21,r31
  377. 370 0034 6109 sbc r22,__zero_reg__
  378. 371 0036 7109 sbc r23,__zero_reg__
  379. 372 0038 4093 0000 sts segbuf_used,r20
  380. 373 003c 5093 0000 sts segbuf_used+1,r21
  381. 374 0040 6093 0000 sts segbuf_used+2,r22
  382. 375 0044 7093 0000 sts segbuf_used+3,r23
  383. 376 0048 4091 0000 lds r20,segbuf_end
  384. 377 004c 5091 0000 lds r21,segbuf_end+1
  385. 378 0050 2417 cp r18,r20
  386. 379 0052 3507 cpc r19,r21
  387. 380 0054 01F4 brne .L35
  388. 381 0056 2091 0000 lds r18,segbuf_start
  389. 382 005a 3091 0000 lds r19,segbuf_start+1
  390. 383 005e 3093 0000 sts segbuf_rp+1,r19
  391. 384 0062 2093 0000 sts segbuf_rp,r18
  392. 385 0066 8091 0000 lds r24,segbuf_rs
  393. 386 006a 8F5F subi r24,lo8(-(1))
  394. 387 006c 8E31 cpi r24,lo8(30)
  395. 388 006e 04F4 brge .L36
  396. 389 0070 8093 0000 sts segbuf_rs,r24
  397. 390 0074 00C0 rjmp .L35
  398. 391 .L36:
  399. 392 0076 1092 0000 sts segbuf_rs,__zero_reg__
  400. 393 .L35:
  401. 394 007a 4091 0000 lds r20,segbuf_rp
  402. 395 007e 5091 0000 lds r21,segbuf_rp+1
  403. 396 0082 2091 0000 lds r18,segbuf_wp
  404. 397 0086 3091 0000 lds r19,segbuf_wp+1
  405. 398 008a 4217 cp r20,r18
  406. 399 008c 5307 cpc r21,r19
  407. GAS LISTING /tmp/cc9x1Tbz.s page 8
  408. 400 008e 01F4 brne .L33
  409. 401 0090 8091 0000 lds r24,segbuf_rs
  410. 402 0094 8913 cpse r24,r25
  411. 403 0096 00C0 rjmp .L33
  412. 404 0098 81E0 ldi r24,lo8(1)
  413. 405 009a 8093 0000 sts segbuf_empty,r24
  414. 406 .L33:
  415. 407 009e E92F mov r30,r25
  416. 408 00a0 092E mov __tmp_reg__,r25
  417. 409 00a2 000C lsl r0
  418. 410 00a4 FF0B sbc r31,r31
  419. 411 00a6 3197 sbiw r30,1
  420. 412 00a8 9083 st Z,r25
  421. 413 00aa 0895 ret
  422. 414 .size NutSegBufReadLast, .-NutSegBufReadLast
  423. 415 .section .text.NutSegBufAvailable,"ax",@progbits
  424. 416 .global NutSegBufAvailable
  425. 417 .type NutSegBufAvailable, @function
  426. 418 NutSegBufAvailable:
  427. 419 0000 0F93 push r16
  428. 420 0002 1F93 push r17
  429. 421 /* prologue: function */
  430. 422 /* frame size = 0 */
  431. 423 /* stack size = 2 */
  432. 424 .L__stack_usage = 2
  433. 425 0004 8091 0000 lds r24,segbuf_total
  434. 426 0008 9091 0000 lds r25,segbuf_total+1
  435. 427 000c A091 0000 lds r26,segbuf_total+2
  436. 428 0010 B091 0000 lds r27,segbuf_total+3
  437. 429 0014 0091 0000 lds r16,segbuf_used
  438. 430 0018 1091 0000 lds r17,segbuf_used+1
  439. 431 001c 2091 0000 lds r18,segbuf_used+2
  440. 432 0020 3091 0000 lds r19,segbuf_used+3
  441. 433 0024 BC01 movw r22,r24
  442. 434 0026 CD01 movw r24,r26
  443. 435 0028 601B sub r22,r16
  444. 436 002a 710B sbc r23,r17
  445. 437 002c 820B sbc r24,r18
  446. 438 002e 930B sbc r25,r19
  447. 439 /* epilogue start */
  448. 440 0030 1F91 pop r17
  449. 441 0032 0F91 pop r16
  450. 442 0034 0895 ret
  451. 443 .size NutSegBufAvailable, .-NutSegBufAvailable
  452. 444 .section .text.NutSegBufUsed,"ax",@progbits
  453. 445 .global NutSegBufUsed
  454. 446 .type NutSegBufUsed, @function
  455. 447 NutSegBufUsed:
  456. 448 /* prologue: function */
  457. 449 /* frame size = 0 */
  458. 450 /* stack size = 0 */
  459. 451 .L__stack_usage = 0
  460. 452 0000 6091 0000 lds r22,segbuf_used
  461. 453 0004 7091 0000 lds r23,segbuf_used+1
  462. 454 0008 8091 0000 lds r24,segbuf_used+2
  463. 455 000c 9091 0000 lds r25,segbuf_used+3
  464. 456 0010 0895 ret
  465. GAS LISTING /tmp/cc9x1Tbz.s page 9
  466. 457 .size NutSegBufUsed, .-NutSegBufUsed
  467. 458 .local segbuf_rs
  468. 459 .comm segbuf_rs,1,1
  469. 460 .local segbuf_rp
  470. 461 .comm segbuf_rp,2,1
  471. 462 .local segbuf_ws
  472. 463 .comm segbuf_ws,1,1
  473. 464 .local segbuf_wp
  474. 465 .comm segbuf_wp,2,1
  475. 466 .local segbuf_end
  476. 467 .comm segbuf_end,2,1
  477. 468 .local segbuf_start
  478. 469 .comm segbuf_start,2,1
  479. 470 .local segbuf_used
  480. 471 .comm segbuf_used,4,1
  481. 472 .local segbuf_total
  482. 473 .comm segbuf_total,4,1
  483. 474 .local segbuf_empty
  484. 475 .comm segbuf_empty,1,1
  485. 476 .ident "GCC: (GNU) 5.3.0"
  486. 477 .global __do_clear_bss
  487. GAS LISTING /tmp/cc9x1Tbz.s page 10
  488. DEFINED SYMBOLS
  489. *ABS*:0000000000000000 bankmem.c
  490. /tmp/cc9x1Tbz.s:2 *ABS*:000000000000003e __SP_H__
  491. /tmp/cc9x1Tbz.s:3 *ABS*:000000000000003d __SP_L__
  492. /tmp/cc9x1Tbz.s:4 *ABS*:000000000000003f __SREG__
  493. /tmp/cc9x1Tbz.s:5 *ABS*:000000000000003b __RAMPZ__
  494. /tmp/cc9x1Tbz.s:6 *ABS*:0000000000000000 __tmp_reg__
  495. /tmp/cc9x1Tbz.s:7 *ABS*:0000000000000001 __zero_reg__
  496. /tmp/cc9x1Tbz.s:11 .text.NutSegBufReset:0000000000000000 NutSegBufReset
  497. /tmp/cc9x1Tbz.s:467 .bss:0000000000000008 segbuf_start
  498. /tmp/cc9x1Tbz.s:463 .bss:0000000000000004 segbuf_wp
  499. /tmp/cc9x1Tbz.s:459 .bss:0000000000000001 segbuf_rp
  500. /tmp/cc9x1Tbz.s:461 .bss:0000000000000003 segbuf_ws
  501. .bss:0000000000000000 segbuf_rs
  502. /tmp/cc9x1Tbz.s:473 .bss:0000000000000012 segbuf_empty
  503. /tmp/cc9x1Tbz.s:469 .bss:000000000000000a segbuf_used
  504. /tmp/cc9x1Tbz.s:38 .text.NutSegBufInit:0000000000000000 NutSegBufInit
  505. /tmp/cc9x1Tbz.s:465 .bss:0000000000000006 segbuf_end
  506. /tmp/cc9x1Tbz.s:471 .bss:000000000000000e segbuf_total
  507. /tmp/cc9x1Tbz.s:64 .text.NutSegBufWriteRequest:0000000000000000 NutSegBufWriteRequest
  508. /tmp/cc9x1Tbz.s:103 .text.NutSegBufReadRequest:0000000000000000 NutSegBufReadRequest
  509. /tmp/cc9x1Tbz.s:156 .text.NutSegBufWriteCommit:0000000000000000 NutSegBufWriteCommit
  510. /tmp/cc9x1Tbz.s:217 .text.NutSegBufReadCommit:0000000000000000 NutSegBufReadCommit
  511. /tmp/cc9x1Tbz.s:291 .text.NutSegBufWriteLast:0000000000000000 NutSegBufWriteLast
  512. /tmp/cc9x1Tbz.s:348 .text.NutSegBufReadLast:0000000000000000 NutSegBufReadLast
  513. /tmp/cc9x1Tbz.s:418 .text.NutSegBufAvailable:0000000000000000 NutSegBufAvailable
  514. /tmp/cc9x1Tbz.s:447 .text.NutSegBufUsed:0000000000000000 NutSegBufUsed
  515. UNDEFINED SYMBOLS
  516. __do_clear_bss