spi_vscodec.lst 73 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201
  1. GAS LISTING /tmp/cclioYfa.s page 1
  2. 1 .file "spi_vscodec.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.VsCodecWaitReady,"ax",@progbits
  10. 9 .global VsCodecWaitReady
  11. 10 .type VsCodecWaitReady, @function
  12. 11 VsCodecWaitReady:
  13. 12 0000 CF92 push r12
  14. 13 0002 DF92 push r13
  15. 14 0004 EF92 push r14
  16. 15 0006 FF92 push r15
  17. 16 0008 0F93 push r16
  18. 17 000a 1F93 push r17
  19. 18 000c CF93 push r28
  20. 19 000e DF93 push r29
  21. 20 /* prologue: function */
  22. 21 /* frame size = 0 */
  23. 22 /* stack size = 8 */
  24. 23 .L__stack_usage = 8
  25. 24 0010 6A01 movw r12,r20
  26. 25 0012 7B01 movw r14,r22
  27. 26 0014 FC01 movw r30,r24
  28. 27 0016 C189 ldd r28,Z+17
  29. 28 0018 D289 ldd r29,Z+18
  30. 29 001a 8E01 movw r16,r28
  31. 30 001c 0A5D subi r16,-38
  32. 31 001e 1F4F sbci r17,-1
  33. 32 .L2:
  34. 33 0020 EBAD ldd r30,Y+59
  35. 34 0022 FCAD ldd r31,Y+60
  36. 35 0024 1995 eicall
  37. 36 0026 892B or r24,r25
  38. 37 0028 01F4 brne .L7
  39. 38 002a B701 movw r22,r14
  40. 39 002c A601 movw r20,r12
  41. 40 002e C801 movw r24,r16
  42. 41 0030 0E94 0000 call NutEventWait
  43. 42 0034 892B or r24,r25
  44. 43 0036 01F0 breq .L2
  45. 44 0038 8FEF ldi r24,lo8(-1)
  46. 45 003a 9FEF ldi r25,lo8(-1)
  47. 46 003c 00C0 rjmp .L3
  48. 47 .L7:
  49. 48 003e 80E0 ldi r24,0
  50. 49 0040 90E0 ldi r25,0
  51. 50 .L3:
  52. 51 /* epilogue start */
  53. 52 0042 DF91 pop r29
  54. 53 0044 CF91 pop r28
  55. 54 0046 1F91 pop r17
  56. 55 0048 0F91 pop r16
  57. 56 004a FF90 pop r15
  58. 57 004c EF90 pop r14
  59. GAS LISTING /tmp/cclioYfa.s page 2
  60. 58 004e DF90 pop r13
  61. 59 0050 CF90 pop r12
  62. 60 0052 0895 ret
  63. 61 .size VsCodecWaitReady, .-VsCodecWaitReady
  64. 62 .section .text.VsCodecReg,"ax",@progbits
  65. 63 .global VsCodecReg
  66. 64 .type VsCodecReg, @function
  67. 65 VsCodecReg:
  68. 66 0000 0F93 push r16
  69. 67 0002 1F93 push r17
  70. 68 0004 CF93 push r28
  71. 69 0006 DF93 push r29
  72. 70 0008 00D0 rcall .
  73. 71 000a 1F92 push __zero_reg__
  74. 72 000c CDB7 in r28,__SP_L__
  75. 73 000e DEB7 in r29,__SP_H__
  76. 74 /* prologue: function */
  77. 75 /* frame size = 4 */
  78. 76 /* stack size = 8 */
  79. 77 .L__stack_usage = 8
  80. 78 0010 DC01 movw r26,r24
  81. 79 0012 5196 adiw r26,17
  82. 80 0014 0D91 ld r16,X+
  83. 81 0016 1C91 ld r17,X
  84. 82 0018 5297 sbiw r26,17+1
  85. 83 001a 6983 std Y+1,r22
  86. 84 001c 4A83 std Y+2,r20
  87. 85 001e 3B83 std Y+3,r19
  88. 86 0020 2C83 std Y+4,r18
  89. 87 0022 40E0 ldi r20,0
  90. 88 0024 50E0 ldi r21,0
  91. 89 0026 BA01 movw r22,r20
  92. 90 0028 0E94 0000 call VsCodecWaitReady
  93. 91 002c D801 movw r26,r16
  94. 92 002e DD96 adiw r26,61
  95. 93 0030 ED91 ld r30,X+
  96. 94 0032 FC91 ld r31,X
  97. 95 0034 DE97 sbiw r26,61+1
  98. 96 0036 64E0 ldi r22,lo8(4)
  99. 97 0038 70E0 ldi r23,0
  100. 98 003a CE01 movw r24,r28
  101. 99 003c 0196 adiw r24,1
  102. 100 003e 1995 eicall
  103. 101 0040 8B81 ldd r24,Y+3
  104. 102 0042 9C81 ldd r25,Y+4
  105. 103 0044 9827 eor r25,r24
  106. 104 0046 8927 eor r24,r25
  107. 105 0048 9827 eor r25,r24
  108. 106 /* epilogue start */
  109. 107 004a 0F90 pop __tmp_reg__
  110. 108 004c 0F90 pop __tmp_reg__
  111. 109 004e 0F90 pop __tmp_reg__
  112. 110 0050 0F90 pop __tmp_reg__
  113. 111 0052 DF91 pop r29
  114. 112 0054 CF91 pop r28
  115. 113 0056 1F91 pop r17
  116. 114 0058 0F91 pop r16
  117. GAS LISTING /tmp/cclioYfa.s page 3
  118. 115 005a 0895 ret
  119. 116 .size VsCodecReg, .-VsCodecReg
  120. 117 .section .text.VsCodecMode,"ax",@progbits
  121. 118 .global VsCodecMode
  122. 119 .type VsCodecMode, @function
  123. 120 VsCodecMode:
  124. 121 0000 CF92 push r12
  125. 122 0002 DF92 push r13
  126. 123 0004 EF92 push r14
  127. 124 0006 FF92 push r15
  128. 125 0008 0F93 push r16
  129. 126 000a 1F93 push r17
  130. 127 000c CF93 push r28
  131. 128 000e DF93 push r29
  132. 129 /* prologue: function */
  133. 130 /* frame size = 0 */
  134. 131 /* stack size = 8 */
  135. 132 .L__stack_usage = 8
  136. 133 0010 6C01 movw r12,r24
  137. 134 0012 8B01 movw r16,r22
  138. 135 0014 EA01 movw r28,r20
  139. 136 0016 20E0 ldi r18,0
  140. 137 0018 30E0 ldi r19,0
  141. 138 001a 40E0 ldi r20,0
  142. 139 001c 63E0 ldi r22,lo8(3)
  143. 140 001e 0E94 0000 call VsCodecReg
  144. 141 0022 7C01 movw r14,r24
  145. 142 0024 CE01 movw r24,r28
  146. 143 0026 802B or r24,r16
  147. 144 0028 912B or r25,r17
  148. 145 002a 892B or r24,r25
  149. 146 002c 01F0 breq .L11
  150. 147 002e 9E01 movw r18,r28
  151. 148 0030 2095 com r18
  152. 149 0032 3095 com r19
  153. 150 0034 2E21 and r18,r14
  154. 151 0036 3F21 and r19,r15
  155. 152 0038 202B or r18,r16
  156. 153 003a 312B or r19,r17
  157. 154 003c 40E0 ldi r20,0
  158. 155 003e 62E0 ldi r22,lo8(2)
  159. 156 0040 C601 movw r24,r12
  160. 157 0042 0E94 0000 call VsCodecReg
  161. 158 0046 02FF sbrs r16,2
  162. 159 0048 00C0 rjmp .L11
  163. 160 004a 60E0 ldi r22,0
  164. 161 004c 70E0 ldi r23,0
  165. 162 004e CB01 movw r24,r22
  166. 163 0050 0E94 0000 call NutSleep
  167. 164 .L11:
  168. 165 0054 C701 movw r24,r14
  169. 166 /* epilogue start */
  170. 167 0056 DF91 pop r29
  171. 168 0058 CF91 pop r28
  172. 169 005a 1F91 pop r17
  173. 170 005c 0F91 pop r16
  174. 171 005e FF90 pop r15
  175. GAS LISTING /tmp/cclioYfa.s page 4
  176. 172 0060 EF90 pop r14
  177. 173 0062 DF90 pop r13
  178. 174 0064 CF90 pop r12
  179. 175 0066 0895 ret
  180. 176 .size VsCodecMode, .-VsCodecMode
  181. 177 .section .text.VsDecoderSetVolume,"ax",@progbits
  182. 178 .global VsDecoderSetVolume
  183. 179 .type VsDecoderSetVolume, @function
  184. 180 VsDecoderSetVolume:
  185. 181 0000 EF92 push r14
  186. 182 0002 FF92 push r15
  187. 183 0004 0F93 push r16
  188. 184 0006 1F93 push r17
  189. 185 0008 CF93 push r28
  190. 186 000a DF93 push r29
  191. 187 /* prologue: function */
  192. 188 /* frame size = 0 */
  193. 189 /* stack size = 6 */
  194. 190 .L__stack_usage = 6
  195. 191 000c FC01 movw r30,r24
  196. 192 000e E188 ldd r14,Z+17
  197. 193 0010 F288 ldd r15,Z+18
  198. 194 0012 8B01 movw r16,r22
  199. 195 0014 1616 cp __zero_reg__,r22
  200. 196 0016 1706 cpc __zero_reg__,r23
  201. 197 0018 04F4 brge .L17
  202. 198 001a 00E0 ldi r16,0
  203. 199 001c 10E0 ldi r17,0
  204. 200 .L17:
  205. 201 001e 0138 cpi r16,-127
  206. 202 0020 FFEF ldi r31,-1
  207. 203 0022 1F07 cpc r17,r31
  208. 204 0024 04F4 brge .L18
  209. 205 0026 01E8 ldi r16,lo8(-127)
  210. 206 0028 1FEF ldi r17,lo8(-1)
  211. 207 .L18:
  212. 208 002a 9A01 movw r18,r20
  213. 209 002c 1416 cp __zero_reg__,r20
  214. 210 002e 1506 cpc __zero_reg__,r21
  215. 211 0030 04F4 brge .L19
  216. 212 0032 20E0 ldi r18,0
  217. 213 0034 30E0 ldi r19,0
  218. 214 .L19:
  219. 215 0036 E901 movw r28,r18
  220. 216 0038 C138 cpi r28,-127
  221. 217 003a 2FEF ldi r18,-1
  222. 218 003c D207 cpc r29,r18
  223. 219 003e 04F4 brge .L20
  224. 220 0040 C1E8 ldi r28,lo8(-127)
  225. 221 0042 DFEF ldi r29,lo8(-1)
  226. 222 .L20:
  227. 223 0044 2227 clr r18
  228. 224 0046 3327 clr r19
  229. 225 0048 201B sub r18,r16
  230. 226 004a 310B sbc r19,r17
  231. 227 004c A901 movw r20,r18
  232. 228 004e 542F mov r21,r20
  233. GAS LISTING /tmp/cclioYfa.s page 5
  234. 229 0050 4427 clr r20
  235. 230 0052 550F lsl r21
  236. 231 0054 2227 clr r18
  237. 232 0056 3327 clr r19
  238. 233 0058 2C1B sub r18,r28
  239. 234 005a 3D0B sbc r19,r29
  240. 235 005c 220F lsl r18
  241. 236 005e 331F rol r19
  242. 237 0060 242B or r18,r20
  243. 238 0062 352B or r19,r21
  244. 239 0064 4BE0 ldi r20,lo8(11)
  245. 240 0066 62E0 ldi r22,lo8(2)
  246. 241 0068 0E94 0000 call VsCodecReg
  247. 242 006c F701 movw r30,r14
  248. 243 006e 1187 std Z+9,r17
  249. 244 0070 0087 std Z+8,r16
  250. 245 0072 D783 std Z+7,r29
  251. 246 0074 C683 std Z+6,r28
  252. 247 0076 80E0 ldi r24,0
  253. 248 0078 90E0 ldi r25,0
  254. 249 /* epilogue start */
  255. 250 007a DF91 pop r29
  256. 251 007c CF91 pop r28
  257. 252 007e 1F91 pop r17
  258. 253 0080 0F91 pop r16
  259. 254 0082 FF90 pop r15
  260. 255 0084 EF90 pop r14
  261. 256 0086 0895 ret
  262. 257 .size VsDecoderSetVolume, .-VsDecoderSetVolume
  263. 258 .section .text.VsDecoderSetBass,"ax",@progbits
  264. 259 .global VsDecoderSetBass
  265. 260 .type VsDecoderSetBass, @function
  266. 261 VsDecoderSetBass:
  267. 262 /* prologue: function */
  268. 263 /* frame size = 0 */
  269. 264 /* stack size = 0 */
  270. 265 .L__stack_usage = 0
  271. 266 0000 80E0 ldi r24,0
  272. 267 0002 90E0 ldi r25,0
  273. 268 0004 0895 ret
  274. 269 .size VsDecoderSetBass, .-VsDecoderSetBass
  275. 270 .section .text.VsCodecBeep,"ax",@progbits
  276. 271 .global VsCodecBeep
  277. 272 .type VsCodecBeep, @function
  278. 273 VsCodecBeep:
  279. 274 0000 2F92 push r2
  280. 275 0002 3F92 push r3
  281. 276 0004 4F92 push r4
  282. 277 0006 5F92 push r5
  283. 278 0008 6F92 push r6
  284. 279 000a 7F92 push r7
  285. 280 000c 8F92 push r8
  286. 281 000e 9F92 push r9
  287. 282 0010 AF92 push r10
  288. 283 0012 BF92 push r11
  289. 284 0014 CF92 push r12
  290. 285 0016 DF92 push r13
  291. GAS LISTING /tmp/cclioYfa.s page 6
  292. 286 0018 EF92 push r14
  293. 287 001a FF92 push r15
  294. 288 001c 0F93 push r16
  295. 289 001e 1F93 push r17
  296. 290 0020 CF93 push r28
  297. 291 0022 DF93 push r29
  298. 292 0024 CDB7 in r28,__SP_L__
  299. 293 0026 DEB7 in r29,__SP_H__
  300. 294 0028 2E97 sbiw r28,14
  301. 295 002a 0FB6 in __tmp_reg__,__SREG__
  302. 296 002c F894 cli
  303. 297 002e DEBF out __SP_H__,r29
  304. 298 0030 0FBE out __SREG__,__tmp_reg__
  305. 299 0032 CDBF out __SP_L__,r28
  306. 300 /* prologue: function */
  307. 301 /* frame size = 14 */
  308. 302 /* stack size = 32 */
  309. 303 .L__stack_usage = 32
  310. 304 0034 5C01 movw r10,r24
  311. 305 0036 8B01 movw r16,r22
  312. 306 0038 DC01 movw r26,r24
  313. 307 003a 5196 adiw r26,17
  314. 308 003c 8D90 ld r8,X+
  315. 309 003e 9C90 ld r9,X
  316. 310 0040 5297 sbiw r26,17+1
  317. 311 0042 6115 cp r22,__zero_reg__
  318. 312 0044 7105 cpc r23,__zero_reg__
  319. 313 0046 01F4 brne .+2
  320. 314 0048 00C0 rjmp .L23
  321. 315 004a 7B83 std Y+3,r23
  322. 316 004c 6A83 std Y+2,r22
  323. 317 004e CB01 movw r24,r22
  324. 318 0050 A0E0 ldi r26,0
  325. 319 0052 B0E0 ldi r27,0
  326. 320 0054 9C01 movw r18,r24
  327. 321 0056 AD01 movw r20,r26
  328. 322 0058 67E0 ldi r22,7
  329. 323 1:
  330. 324 005a 220F lsl r18
  331. 325 005c 331F rol r19
  332. 326 005e 441F rol r20
  333. 327 0060 551F rol r21
  334. 328 0062 6A95 dec r22
  335. 329 0064 01F4 brne 1b
  336. 330 0066 2D83 std Y+5,r18
  337. 331 0068 3E83 std Y+6,r19
  338. 332 006a 4F83 std Y+7,r20
  339. 333 006c 5887 std Y+8,r21
  340. 334 006e 3091 0000 lds r19,on.2731+3
  341. 335 0072 3C83 std Y+4,r19
  342. 336 0074 47E0 ldi r20,lo8(7)
  343. 337 0076 4D87 std Y+13,r20
  344. 338 0078 1E86 std Y+14,__zero_reg__
  345. 339 007a 1982 std Y+1,__zero_reg__
  346. 340 007c 212C mov r2,__zero_reg__
  347. 341 007e 312C mov r3,__zero_reg__
  348. 342 0080 8987 std Y+9,r24
  349. GAS LISTING /tmp/cclioYfa.s page 7
  350. 343 0082 9A87 std Y+10,r25
  351. 344 0084 AB87 std Y+11,r26
  352. 345 0086 BC87 std Y+12,r27
  353. 346 .L24:
  354. 347 0088 3981 ldd r19,Y+1
  355. 348 008a 4D85 ldd r20,Y+13
  356. 349 008c 4317 cp r20,r19
  357. 350 008e 04F4 brge .+2
  358. 351 0090 00C0 rjmp .L35
  359. 352 0092 5D85 ldd r21,Y+13
  360. 353 0094 E52F mov r30,r21
  361. 354 0096 EE0F lsl r30
  362. 355 0098 FF0B sbc r31,r31
  363. 356 009a E050 subi r30,lo8(-(ftab.2733))
  364. 357 009c F040 sbci r31,hi8(-(ftab.2733))
  365. 358 009e C080 ld r12,Z
  366. 359 00a0 D180 ldd r13,Z+1
  367. 360 00a2 E12C mov r14,__zero_reg__
  368. 361 00a4 F12C mov r15,__zero_reg__
  369. 362 00a6 D701 movw r26,r14
  370. 363 00a8 C601 movw r24,r12
  371. 364 00aa B695 lsr r27
  372. 365 00ac A795 ror r26
  373. 366 00ae 9795 ror r25
  374. 367 00b0 8795 ror r24
  375. 368 00b2 2D81 ldd r18,Y+5
  376. 369 00b4 3E81 ldd r19,Y+6
  377. 370 00b6 4F81 ldd r20,Y+7
  378. 371 00b8 5885 ldd r21,Y+8
  379. 372 00ba 280F add r18,r24
  380. 373 00bc 391F adc r19,r25
  381. 374 00be 4A1F adc r20,r26
  382. 375 00c0 5B1F adc r21,r27
  383. 376 00c2 CA01 movw r24,r20
  384. 377 00c4 B901 movw r22,r18
  385. 378 00c6 A701 movw r20,r14
  386. 379 00c8 9601 movw r18,r12
  387. 380 00ca 0E94 0000 call __udivmodsi4
  388. 381 00ce 2901 movw r4,r18
  389. 382 00d0 3A01 movw r6,r20
  390. 383 00d2 C901 movw r24,r18
  391. 384 00d4 0197 sbiw r24,1
  392. 385 00d6 4F97 sbiw r24,31
  393. 386 00d8 00F4 brsh .L25
  394. 387 00da 4427 clr r20
  395. 388 00dc 5527 clr r21
  396. 389 00de C701 movw r24,r14
  397. 390 00e0 B601 movw r22,r12
  398. 391 00e2 0E94 0000 call __mulsi3
  399. 392 00e6 AB01 movw r20,r22
  400. 393 00e8 BC01 movw r22,r24
  401. 394 00ea 405C subi r20,-64
  402. 395 00ec 5F4F sbci r21,-1
  403. 396 00ee 6F4F sbci r22,-1
  404. 397 00f0 7F4F sbci r23,-1
  405. 398 00f2 87E0 ldi r24,7
  406. 399 1:
  407. GAS LISTING /tmp/cclioYfa.s page 8
  408. 400 00f4 7695 lsr r23
  409. 401 00f6 6795 ror r22
  410. 402 00f8 5795 ror r21
  411. 403 00fa 4795 ror r20
  412. 404 00fc 8A95 dec r24
  413. 405 00fe 01F4 brne 1b
  414. 406 0100 8985 ldd r24,Y+9
  415. 407 0102 9A85 ldd r25,Y+10
  416. 408 0104 AB85 ldd r26,Y+11
  417. 409 0106 BC85 ldd r27,Y+12
  418. 410 0108 4817 cp r20,r24
  419. 411 010a 5907 cpc r21,r25
  420. 412 010c 6A07 cpc r22,r26
  421. 413 010e 7B07 cpc r23,r27
  422. 414 0110 00F4 brsh .L26
  423. 415 0112 C801 movw r24,r16
  424. 416 0114 841B sub r24,r20
  425. 417 0116 950B sbc r25,r21
  426. 418 0118 00C0 rjmp .L27
  427. 419 .L26:
  428. 420 011a CA01 movw r24,r20
  429. 421 011c 801B sub r24,r16
  430. 422 011e 910B sbc r25,r17
  431. 423 .L27:
  432. 424 0120 AA81 ldd r26,Y+2
  433. 425 0122 BB81 ldd r27,Y+3
  434. 426 0124 8A17 cp r24,r26
  435. 427 0126 9B07 cpc r25,r27
  436. 428 0128 00F4 brsh .L25
  437. 429 012a 9B83 std Y+3,r25
  438. 430 012c 8A83 std Y+2,r24
  439. 431 012e 1A01 movw r2,r20
  440. 432 0130 8D85 ldd r24,Y+13
  441. 433 0132 8295 swap r24
  442. 434 0134 880F lsl r24
  443. 435 0136 807E andi r24,lo8(-32)
  444. 436 0138 8429 or r24,r4
  445. 437 013a 8C83 std Y+4,r24
  446. 438 013c BD85 ldd r27,Y+13
  447. 439 013e B230 cpi r27,lo8(2)
  448. 440 0140 04F0 brlt .L31
  449. 441 0142 B250 subi r27,lo8(-(-2))
  450. 442 0144 B983 std Y+1,r27
  451. 443 0146 E1E0 ldi r30,lo8(1)
  452. 444 0148 EE87 std Y+14,r30
  453. 445 014a 00C0 rjmp .L25
  454. 446 .L31:
  455. 447 014c F1E0 ldi r31,lo8(1)
  456. 448 014e FE87 std Y+14,r31
  457. 449 .L25:
  458. 450 0150 2D85 ldd r18,Y+13
  459. 451 0152 2150 subi r18,lo8(-(-1))
  460. 452 0154 2D87 std Y+13,r18
  461. 453 0156 00C0 rjmp .L24
  462. 454 .L35:
  463. 455 0158 5E85 ldd r21,Y+14
  464. 456 015a 5523 tst r21
  465. GAS LISTING /tmp/cclioYfa.s page 9
  466. 457 015c 01F0 breq .L29
  467. 458 015e 8C81 ldd r24,Y+4
  468. 459 0160 8093 0000 sts on.2731+3,r24
  469. 460 .L29:
  470. 461 0164 44E0 ldi r20,lo8(4)
  471. 462 0166 50E0 ldi r21,0
  472. 463 0168 64E0 ldi r22,lo8(4)
  473. 464 016a 70E0 ldi r23,0
  474. 465 016c C501 movw r24,r10
  475. 466 016e 0E94 0000 call VsCodecMode
  476. 467 0172 9093 0000 sts mode.2734+1,r25
  477. 468 0176 8093 0000 sts mode.2734,r24
  478. 469 017a F401 movw r30,r8
  479. 470 017c FF96 adiw r30,63
  480. 471 017e 0190 ld __tmp_reg__,Z+
  481. 472 0180 F081 ld r31,Z
  482. 473 0182 E02D mov r30,__tmp_reg__
  483. 474 0184 68E0 ldi r22,lo8(8)
  484. 475 0186 70E0 ldi r23,0
  485. 476 0188 80E0 ldi r24,lo8(on.2731)
  486. 477 018a 90E0 ldi r25,hi8(on.2731)
  487. 478 018c 1995 eicall
  488. 479 018e 00C0 rjmp .L30
  489. 480 .L23:
  490. 481 0190 F401 movw r30,r8
  491. 482 0192 FF96 adiw r30,63
  492. 483 0194 0190 ld __tmp_reg__,Z+
  493. 484 0196 F081 ld r31,Z
  494. 485 0198 E02D mov r30,__tmp_reg__
  495. 486 019a 68E0 ldi r22,lo8(8)
  496. 487 019c 70E0 ldi r23,0
  497. 488 019e 80E0 ldi r24,lo8(off.2732)
  498. 489 01a0 90E0 ldi r25,hi8(off.2732)
  499. 490 01a2 1995 eicall
  500. 491 01a4 44E0 ldi r20,lo8(4)
  501. 492 01a6 50E0 ldi r21,0
  502. 493 01a8 64E0 ldi r22,lo8(4)
  503. 494 01aa 70E0 ldi r23,0
  504. 495 01ac C501 movw r24,r10
  505. 496 01ae 0E94 0000 call VsCodecMode
  506. 497 01b2 6091 0000 lds r22,mode.2734
  507. 498 01b6 7091 0000 lds r23,mode.2734+1
  508. 499 01ba 4FEF ldi r20,lo8(-1)
  509. 500 01bc 5FEF ldi r21,lo8(-1)
  510. 501 01be C501 movw r24,r10
  511. 502 01c0 0E94 0000 call VsCodecMode
  512. 503 01c4 212C mov r2,__zero_reg__
  513. 504 01c6 312C mov r3,__zero_reg__
  514. 505 .L30:
  515. 506 01c8 C101 movw r24,r2
  516. 507 /* epilogue start */
  517. 508 01ca 2E96 adiw r28,14
  518. 509 01cc 0FB6 in __tmp_reg__,__SREG__
  519. 510 01ce F894 cli
  520. 511 01d0 DEBF out __SP_H__,r29
  521. 512 01d2 0FBE out __SREG__,__tmp_reg__
  522. 513 01d4 CDBF out __SP_L__,r28
  523. GAS LISTING /tmp/cclioYfa.s page 10
  524. 514 01d6 DF91 pop r29
  525. 515 01d8 CF91 pop r28
  526. 516 01da 1F91 pop r17
  527. 517 01dc 0F91 pop r16
  528. 518 01de FF90 pop r15
  529. 519 01e0 EF90 pop r14
  530. 520 01e2 DF90 pop r13
  531. 521 01e4 CF90 pop r12
  532. 522 01e6 BF90 pop r11
  533. 523 01e8 AF90 pop r10
  534. 524 01ea 9F90 pop r9
  535. 525 01ec 8F90 pop r8
  536. 526 01ee 7F90 pop r7
  537. 527 01f0 6F90 pop r6
  538. 528 01f2 5F90 pop r5
  539. 529 01f4 4F90 pop r4
  540. 530 01f6 3F90 pop r3
  541. 531 01f8 2F90 pop r2
  542. 532 01fa 0895 ret
  543. 533 .size VsCodecBeep, .-VsCodecBeep
  544. 534 .section .text.VsDecoderBufferInit,"ax",@progbits
  545. 535 .global VsDecoderBufferInit
  546. 536 .type VsDecoderBufferInit, @function
  547. 537 VsDecoderBufferInit:
  548. 538 0000 0F93 push r16
  549. 539 0002 1F93 push r17
  550. 540 0004 CF93 push r28
  551. 541 0006 DF93 push r29
  552. 542 /* prologue: function */
  553. 543 /* frame size = 0 */
  554. 544 /* stack size = 4 */
  555. 545 .L__stack_usage = 4
  556. 546 0008 FC01 movw r30,r24
  557. 547 000a 0189 ldd r16,Z+17
  558. 548 000c 1289 ldd r17,Z+18
  559. 549 000e F801 movw r30,r16
  560. 550 0010 C081 ld r28,Z
  561. 551 0012 D181 ldd r29,Z+1
  562. 552 0014 2097 sbiw r28,0
  563. 553 0016 01F0 breq .L37
  564. 554 .L39:
  565. 555 0018 CFEF ldi r28,lo8(-1)
  566. 556 001a DFEF ldi r29,lo8(-1)
  567. 557 001c 00C0 rjmp .L38
  568. 558 .L37:
  569. 559 001e CA01 movw r24,r20
  570. 560 0020 0E94 0000 call NutSegBufInit
  571. 561 0024 892B or r24,r25
  572. 562 0026 01F0 breq .L39
  573. 563 0028 0E94 0000 call NutSegBufAvailable
  574. 564 002c 23E0 ldi r18,lo8(3)
  575. 565 002e 30E0 ldi r19,0
  576. 566 0030 40E0 ldi r20,0
  577. 567 0032 50E0 ldi r21,0
  578. 568 0034 0E94 0000 call __udivmodsi4
  579. 569 0038 F801 movw r30,r16
  580. 570 003a 248B std Z+20,r18
  581. GAS LISTING /tmp/cclioYfa.s page 11
  582. 571 003c 358B std Z+21,r19
  583. 572 003e 468B std Z+22,r20
  584. 573 0040 578B std Z+23,r21
  585. 574 0042 DA01 movw r26,r20
  586. 575 0044 C901 movw r24,r18
  587. 576 0046 880F lsl r24
  588. 577 0048 991F rol r25
  589. 578 004a AA1F rol r26
  590. 579 004c BB1F rol r27
  591. 580 004e 808F std Z+24,r24
  592. 581 0050 918F std Z+25,r25
  593. 582 0052 A28F std Z+26,r26
  594. 583 0054 B38F std Z+27,r27
  595. 584 .L38:
  596. 585 0056 CE01 movw r24,r28
  597. 586 /* epilogue start */
  598. 587 0058 DF91 pop r29
  599. 588 005a CF91 pop r28
  600. 589 005c 1F91 pop r17
  601. 590 005e 0F91 pop r16
  602. 591 0060 0895 ret
  603. 592 .size VsDecoderBufferInit, .-VsDecoderBufferInit
  604. 593 .section .text.FeederThread,"ax",@progbits
  605. 594 .global FeederThread
  606. 595 .type FeederThread, @function
  607. 596 FeederThread:
  608. 597 0000 CF93 push r28
  609. 598 0002 DF93 push r29
  610. 599 0004 00D0 rcall .
  611. 600 0006 CDB7 in r28,__SP_L__
  612. 601 0008 DEB7 in r29,__SP_H__
  613. 602 /* prologue: function */
  614. 603 /* frame size = 3 */
  615. 604 /* stack size = 5 */
  616. 605 .L__stack_usage = 5
  617. 606 000a 6C01 movw r12,r24
  618. 607 000c DC01 movw r26,r24
  619. 608 000e 5196 adiw r26,17
  620. 609 0010 0D91 ld r16,X+
  621. 610 0012 1C91 ld r17,X
  622. 611 0014 5297 sbiw r26,17+1
  623. 612 0016 87E0 ldi r24,lo8(7)
  624. 613 0018 0E94 0000 call NutThreadSetPriority
  625. 614 001c E12C mov r14,__zero_reg__
  626. 615 001e F12C mov r15,__zero_reg__
  627. 616 0020 1801 movw r2,r16
  628. 617 0022 B6E2 ldi r27,38
  629. 618 0024 2B0E add r2,r27
  630. 619 0026 311C adc r3,__zero_reg__
  631. 620 0028 4424 clr r4
  632. 621 002a 4394 inc r4
  633. 622 002c 512C mov r5,__zero_reg__
  634. 623 002e 52E0 ldi r21,lo8(2)
  635. 624 0030 652E mov r6,r21
  636. 625 0032 712C mov r7,__zero_reg__
  637. 626 0034 5801 movw r10,r16
  638. 627 0036 E4E2 ldi r30,36
  639. GAS LISTING /tmp/cclioYfa.s page 12
  640. 628 0038 AE0E add r10,r30
  641. 629 003a B11C adc r11,__zero_reg__
  642. 630 003c 4801 movw r8,r16
  643. 631 003e FFE3 ldi r31,63
  644. 632 0040 8F0E add r8,r31
  645. 633 0042 911C adc r9,__zero_reg__
  646. 634 .L44:
  647. 635 0044 D801 movw r26,r16
  648. 636 0046 8D91 ld r24,X+
  649. 637 0048 9C91 ld r25,X
  650. 638 004a 892B or r24,r25
  651. 639 004c 01F0 breq .+2
  652. 640 004e 00C0 rjmp .L46
  653. 641 0050 1B82 std Y+3,__zero_reg__
  654. 642 .L80:
  655. 643 0052 40E0 ldi r20,0
  656. 644 0054 50E0 ldi r21,0
  657. 645 0056 BA01 movw r22,r20
  658. 646 0058 C101 movw r24,r2
  659. 647 005a 0E94 0000 call NutEventWait
  660. 648 005e F801 movw r30,r16
  661. 649 0060 8281 ldd r24,Z+2
  662. 650 0062 84FF sbrs r24,4
  663. 651 0064 00C0 rjmp .L47
  664. 652 0066 03AC ldd __tmp_reg__,Z+59
  665. 653 0068 F4AD ldd r31,Z+60
  666. 654 006a E02D mov r30,__tmp_reg__
  667. 655 006c 1995 eicall
  668. 656 006e 892B or r24,r25
  669. 657 0070 01F0 breq .L47
  670. 658 0072 F801 movw r30,r16
  671. 659 0074 8281 ldd r24,Z+2
  672. 660 0076 9381 ldd r25,Z+3
  673. 661 0078 A481 ldd r26,Z+4
  674. 662 007a B581 ldd r27,Z+5
  675. 663 007c 8F7E andi r24,239
  676. 664 007e 8283 std Z+2,r24
  677. 665 0080 9383 std Z+3,r25
  678. 666 0082 A483 std Z+4,r26
  679. 667 0084 B583 std Z+5,r27
  680. 668 0086 6289 ldd r22,Z+18
  681. 669 0088 7389 ldd r23,Z+19
  682. 670 008a C601 movw r24,r12
  683. 671 008c 0E94 0000 call VsCodecBeep
  684. 672 0090 21E0 ldi r18,lo8(1)
  685. 673 0092 2B83 std Y+3,r18
  686. 674 0094 892B or r24,r25
  687. 675 0096 01F4 brne .L80
  688. 676 0098 00C0 rjmp .L88
  689. 677 .L47:
  690. 678 009a 2B81 ldd r18,Y+3
  691. 679 009c 2111 cpse r18,__zero_reg__
  692. 680 009e 00C0 rjmp .L80
  693. 681 .L88:
  694. 682 00a0 F801 movw r30,r16
  695. 683 00a2 8281 ldd r24,Z+2
  696. 684 00a4 9381 ldd r25,Z+3
  697. GAS LISTING /tmp/cclioYfa.s page 13
  698. 685 00a6 A481 ldd r26,Z+4
  699. 686 00a8 B581 ldd r27,Z+5
  700. 687 00aa 85FF sbrs r24,5
  701. 688 00ac 00C0 rjmp .L50
  702. 689 00ae 8D7D andi r24,221
  703. 690 00b0 8283 std Z+2,r24
  704. 691 00b2 9383 std Z+3,r25
  705. 692 00b4 A483 std Z+4,r26
  706. 693 00b6 B583 std Z+5,r27
  707. 694 00b8 7182 std Z+1,r7
  708. 695 00ba 6082 st Z,r6
  709. 696 00bc 24E3 ldi r18,lo8(52)
  710. 697 00be 30E0 ldi r19,0
  711. 698 00c0 4AE0 ldi r20,lo8(10)
  712. 699 00c2 62E0 ldi r22,lo8(2)
  713. 700 00c4 C601 movw r24,r12
  714. 701 00c6 0E94 0000 call VsCodecReg
  715. 702 00ca 00C0 rjmp .L46
  716. 703 .L50:
  717. 704 00cc 80FF sbrs r24,0
  718. 705 00ce 00C0 rjmp .L51
  719. 706 .L52:
  720. 707 00d0 F801 movw r30,r16
  721. 708 00d2 8281 ldd r24,Z+2
  722. 709 00d4 9381 ldd r25,Z+3
  723. 710 00d6 A481 ldd r26,Z+4
  724. 711 00d8 B581 ldd r27,Z+5
  725. 712 00da 8C7F andi r24,252
  726. 713 00dc 8283 std Z+2,r24
  727. 714 00de 9383 std Z+3,r25
  728. 715 00e0 A483 std Z+4,r26
  729. 716 00e2 B583 std Z+5,r27
  730. 717 00e4 5182 std Z+1,r5
  731. 718 00e6 4082 st Z,r4
  732. 719 00e8 4681 ldd r20,Z+6
  733. 720 00ea 5781 ldd r21,Z+7
  734. 721 00ec 6085 ldd r22,Z+8
  735. 722 00ee 7185 ldd r23,Z+9
  736. 723 00f0 C601 movw r24,r12
  737. 724 00f2 0E94 0000 call VsDecoderSetVolume
  738. 725 00f6 00C0 rjmp .L46
  739. 726 .L51:
  740. 727 00f8 0E94 0000 call NutSegBufUsed
  741. 728 00fc D801 movw r26,r16
  742. 729 00fe 5896 adiw r26,24
  743. 730 0100 2D91 ld r18,X+
  744. 731 0102 3D91 ld r19,X+
  745. 732 0104 4D91 ld r20,X+
  746. 733 0106 5C91 ld r21,X
  747. 734 0108 5B97 sbiw r26,24+3
  748. 735 010a 6217 cp r22,r18
  749. 736 010c 7307 cpc r23,r19
  750. 737 010e 8407 cpc r24,r20
  751. 738 0110 9507 cpc r25,r21
  752. 739 0112 00F4 brsh .L52
  753. 740 .L46:
  754. 741 0114 F801 movw r30,r16
  755. GAS LISTING /tmp/cclioYfa.s page 14
  756. 742 0116 8081 ld r24,Z
  757. 743 0118 9181 ldd r25,Z+1
  758. 744 011a 8130 cpi r24,1
  759. 745 011c 9105 cpc r25,__zero_reg__
  760. 746 011e 01F0 breq .+2
  761. 747 0120 00C0 rjmp .L54
  762. 748 0122 40E0 ldi r20,0
  763. 749 0124 50E0 ldi r21,0
  764. 750 0126 BA01 movw r22,r20
  765. 751 0128 C601 movw r24,r12
  766. 752 012a 0E94 0000 call VsCodecWaitReady
  767. 753 012e F801 movw r30,r16
  768. 754 0130 8281 ldd r24,Z+2
  769. 755 0132 9381 ldd r25,Z+3
  770. 756 0134 A481 ldd r26,Z+4
  771. 757 0136 B581 ldd r27,Z+5
  772. 758 0138 81FF sbrs r24,1
  773. 759 013a 00C0 rjmp .L55
  774. 760 013c 8D7F andi r24,253
  775. 761 013e 8283 std Z+2,r24
  776. 762 0140 9383 std Z+3,r25
  777. 763 0142 A483 std Z+4,r26
  778. 764 0144 B583 std Z+5,r27
  779. 765 0146 0E94 0000 call NutSegBufReset
  780. 766 .L55:
  781. 767 014a CE01 movw r24,r28
  782. 768 014c 0196 adiw r24,1
  783. 769 014e 0E94 0000 call NutSegBufReadRequest
  784. 770 0152 6981 ldd r22,Y+1
  785. 771 0154 7A81 ldd r23,Y+2
  786. 772 0156 6115 cp r22,__zero_reg__
  787. 773 0158 7105 cpc r23,__zero_reg__
  788. 774 015a 01F0 breq .L56
  789. 775 015c D401 movw r26,r8
  790. 776 015e ED91 ld r30,X+
  791. 777 0160 FC91 ld r31,X
  792. 778 0162 1995 eicall
  793. 779 0164 0097 sbiw r24,0
  794. 780 0166 01F0 breq .L57
  795. 781 0168 0E94 0000 call NutSegBufReadLast
  796. 782 016c C501 movw r24,r10
  797. 783 016e 0E94 0000 call NutEventPost
  798. 784 0172 E12C mov r14,__zero_reg__
  799. 785 0174 38E0 ldi r19,lo8(8)
  800. 786 0176 F32E mov r15,r19
  801. 787 .L57:
  802. 788 0178 F801 movw r30,r16
  803. 789 017a 8281 ldd r24,Z+2
  804. 790 017c 82FF sbrs r24,2
  805. 791 017e 00C0 rjmp .L58
  806. 792 0180 4681 ldd r20,Z+6
  807. 793 0182 5781 ldd r21,Z+7
  808. 794 0184 6085 ldd r22,Z+8
  809. 795 0186 7185 ldd r23,Z+9
  810. 796 0188 C601 movw r24,r12
  811. 797 018a 0E94 0000 call VsDecoderSetVolume
  812. 798 018e F801 movw r30,r16
  813. GAS LISTING /tmp/cclioYfa.s page 15
  814. 799 0190 8281 ldd r24,Z+2
  815. 800 0192 9381 ldd r25,Z+3
  816. 801 0194 A481 ldd r26,Z+4
  817. 802 0196 B581 ldd r27,Z+5
  818. 803 0198 8B7F andi r24,251
  819. 804 019a 8283 std Z+2,r24
  820. 805 019c 9383 std Z+3,r25
  821. 806 019e A483 std Z+4,r26
  822. 807 01a0 B583 std Z+5,r27
  823. 808 .L58:
  824. 809 01a2 F801 movw r30,r16
  825. 810 01a4 8281 ldd r24,Z+2
  826. 811 01a6 9381 ldd r25,Z+3
  827. 812 01a8 A481 ldd r26,Z+4
  828. 813 01aa B581 ldd r27,Z+5
  829. 814 01ac 83FF sbrs r24,3
  830. 815 01ae 00C0 rjmp .L44
  831. 816 01b0 877F andi r24,247
  832. 817 01b2 8283 std Z+2,r24
  833. 818 01b4 9383 std Z+3,r25
  834. 819 01b6 A483 std Z+4,r26
  835. 820 01b8 B583 std Z+5,r27
  836. 821 01ba 00C0 rjmp .L44
  837. 822 .L56:
  838. 823 01bc 0E94 0000 call NutSegBufUsed
  839. 824 01c0 672B or r22,r23
  840. 825 01c2 682B or r22,r24
  841. 826 01c4 692B or r22,r25
  842. 827 01c6 01F0 breq .+2
  843. 828 01c8 00C0 rjmp .L44
  844. 829 01ca E114 cp r14,__zero_reg__
  845. 830 01cc F104 cpc r15,__zero_reg__
  846. 831 01ce 01F4 brne .L60
  847. 832 .L61:
  848. 833 01d0 D801 movw r26,r16
  849. 834 01d2 1D92 st X+,__zero_reg__
  850. 835 01d4 1C92 st X,__zero_reg__
  851. 836 01d6 C501 movw r24,r10
  852. 837 01d8 0E94 0000 call NutEventPost
  853. 838 01dc E12C mov r14,__zero_reg__
  854. 839 01de F12C mov r15,__zero_reg__
  855. 840 01e0 00C0 rjmp .L44
  856. 841 .L60:
  857. 842 01e2 D401 movw r26,r8
  858. 843 01e4 ED91 ld r30,X+
  859. 844 01e6 FC91 ld r31,X
  860. 845 01e8 B701 movw r22,r14
  861. 846 01ea 80E0 ldi r24,0
  862. 847 01ec 90E0 ldi r25,0
  863. 848 01ee 1995 eicall
  864. 849 01f0 E81A sub r14,r24
  865. 850 01f2 F90A sbc r15,r25
  866. 851 01f4 01F0 breq .+2
  867. 852 01f6 00C0 rjmp .L44
  868. 853 01f8 00C0 rjmp .L61
  869. 854 .L54:
  870. 855 01fa 0297 sbiw r24,2
  871. GAS LISTING /tmp/cclioYfa.s page 16
  872. 856 01fc 01F0 breq .+2
  873. 857 01fe 00C0 rjmp .L44
  874. 858 .L64:
  875. 859 0200 F801 movw r30,r16
  876. 860 0202 8281 ldd r24,Z+2
  877. 861 0204 9381 ldd r25,Z+3
  878. 862 0206 A481 ldd r26,Z+4
  879. 863 0208 B581 ldd r27,Z+5
  880. 864 020a 81FF sbrs r24,1
  881. 865 020c 00C0 rjmp .L62
  882. 866 020e 8D7F andi r24,253
  883. 867 0210 8283 std Z+2,r24
  884. 868 0212 9383 std Z+3,r25
  885. 869 0214 A483 std Z+4,r26
  886. 870 0216 B583 std Z+5,r27
  887. 871 0218 1182 std Z+1,__zero_reg__
  888. 872 021a 1082 st Z,__zero_reg__
  889. 873 021c 00C0 rjmp .L63
  890. 874 .L62:
  891. 875 021e CE01 movw r24,r28
  892. 876 0220 0196 adiw r24,1
  893. 877 0222 0E94 0000 call NutSegBufWriteRequest
  894. 878 0226 8981 ldd r24,Y+1
  895. 879 0228 9A81 ldd r25,Y+2
  896. 880 022a 9695 lsr r25
  897. 881 022c 8795 ror r24
  898. 882 022e 9A83 std Y+2,r25
  899. 883 0230 8983 std Y+1,r24
  900. 884 0232 892B or r24,r25
  901. 885 0234 01F4 brne .L64
  902. 886 0236 D801 movw r26,r16
  903. 887 0238 1D92 st X+,__zero_reg__
  904. 888 023a 1C92 st X,__zero_reg__
  905. 889 .L63:
  906. 890 023c C501 movw r24,r10
  907. 891 023e 0E94 0000 call NutEventPost
  908. 892 0242 00C0 rjmp .L44
  909. 893 .size FeederThread, .-FeederThread
  910. 894 .section .text.VsCodecIOCtl,"ax",@progbits
  911. 895 .global VsCodecIOCtl
  912. 896 .type VsCodecIOCtl, @function
  913. 897 VsCodecIOCtl:
  914. 898 0000 9F92 push r9
  915. 899 0002 AF92 push r10
  916. 900 0004 BF92 push r11
  917. 901 0006 CF92 push r12
  918. 902 0008 DF92 push r13
  919. 903 000a EF92 push r14
  920. 904 000c FF92 push r15
  921. 905 000e 0F93 push r16
  922. 906 0010 1F93 push r17
  923. 907 0012 CF93 push r28
  924. 908 0014 DF93 push r29
  925. 909 /* prologue: function */
  926. 910 /* frame size = 0 */
  927. 911 /* stack size = 11 */
  928. 912 .L__stack_usage = 11
  929. GAS LISTING /tmp/cclioYfa.s page 17
  930. 913 0016 8C01 movw r16,r24
  931. 914 0018 CB01 movw r24,r22
  932. 915 001a EA01 movw r28,r20
  933. 916 001c D801 movw r26,r16
  934. 917 001e 5196 adiw r26,17
  935. 918 0020 ED91 ld r30,X+
  936. 919 0022 FC91 ld r31,X
  937. 920 0024 5297 sbiw r26,17+1
  938. 921 0026 6A30 cpi r22,10
  939. 922 0028 B0E3 ldi r27,48
  940. 923 002a 7B07 cpc r23,r27
  941. 924 002c 01F4 brne .+2
  942. 925 002e 00C0 rjmp .L91
  943. 926 0030 04F0 brlt .+2
  944. 927 0032 00C0 rjmp .L92
  945. 928 0034 6430 cpi r22,4
  946. 929 0036 A0E3 ldi r26,48
  947. 930 0038 7A07 cpc r23,r26
  948. 931 003a 01F4 brne .+2
  949. 932 003c 00C0 rjmp .L93
  950. 933 003e 04F4 brge .L94
  951. 934 0040 6130 cpi r22,1
  952. 935 0042 20E3 ldi r18,48
  953. 936 0044 7207 cpc r23,r18
  954. 937 0046 01F4 brne .+2
  955. 938 0048 00C0 rjmp .L95
  956. 939 004a 04F4 brge .L96
  957. 940 004c 6D30 cpi r22,13
  958. 941 004e B1E0 ldi r27,1
  959. 942 0050 7B07 cpc r23,r27
  960. 943 0052 01F4 brne .+2
  961. 944 0054 00C0 rjmp .L97
  962. 945 0056 6E30 cpi r22,14
  963. 946 0058 7140 sbci r23,1
  964. 947 005a 01F0 breq .+2
  965. 948 005c 00C0 rjmp .L90
  966. 949 005e 848D ldd r24,Z+28
  967. 950 0060 958D ldd r25,Z+29
  968. 951 0062 A68D ldd r26,Z+30
  969. 952 0064 B78D ldd r27,Z+31
  970. 953 0066 00C0 rjmp .L145
  971. 954 .L96:
  972. 955 0068 6230 cpi r22,2
  973. 956 006a A0E3 ldi r26,48
  974. 957 006c 7A07 cpc r23,r26
  975. 958 006e 01F4 brne .+2
  976. 959 0070 00C0 rjmp .L99
  977. 960 0072 6330 cpi r22,3
  978. 961 0074 7043 sbci r23,48
  979. 962 0076 01F0 breq .+2
  980. 963 0078 00C0 rjmp .L90
  981. 964 007a 8081 ld r24,Z
  982. 965 007c 9181 ldd r25,Z+1
  983. 966 007e 00C0 rjmp .L125
  984. 967 .L94:
  985. 968 0080 6730 cpi r22,7
  986. 969 0082 20E3 ldi r18,48
  987. GAS LISTING /tmp/cclioYfa.s page 18
  988. 970 0084 7207 cpc r23,r18
  989. 971 0086 01F4 brne .+2
  990. 972 0088 00C0 rjmp .L101
  991. 973 008a 04F4 brge .L102
  992. 974 008c 6530 cpi r22,5
  993. 975 008e B0E3 ldi r27,48
  994. 976 0090 7B07 cpc r23,r27
  995. 977 0092 01F4 brne .+2
  996. 978 0094 00C0 rjmp .L103
  997. 979 0096 6630 cpi r22,6
  998. 980 0098 7043 sbci r23,48
  999. 981 009a 01F0 breq .+2
  1000. 982 009c 00C0 rjmp .L90
  1001. 983 009e 0E94 0000 call NutSegBufAvailable
  1002. 984 00a2 6B01 movw r12,r22
  1003. 985 00a4 7C01 movw r14,r24
  1004. 986 00a6 0E94 0000 call NutSegBufUsed
  1005. 987 00aa DC01 movw r26,r24
  1006. 988 00ac CB01 movw r24,r22
  1007. 989 00ae 8C0D add r24,r12
  1008. 990 00b0 9D1D adc r25,r13
  1009. 991 00b2 AE1D adc r26,r14
  1010. 992 00b4 BF1D adc r27,r15
  1011. 993 00b6 00C0 rjmp .L145
  1012. 994 .L102:
  1013. 995 00b8 6830 cpi r22,8
  1014. 996 00ba A0E3 ldi r26,48
  1015. 997 00bc 7A07 cpc r23,r26
  1016. 998 00be 01F4 brne .+2
  1017. 999 00c0 00C0 rjmp .L105
  1018. 1000 00c2 6930 cpi r22,9
  1019. 1001 00c4 7043 sbci r23,48
  1020. 1002 00c6 01F0 breq .+2
  1021. 1003 00c8 00C0 rjmp .L90
  1022. 1004 00ca 8489 ldd r24,Z+20
  1023. 1005 00cc 9589 ldd r25,Z+21
  1024. 1006 00ce A689 ldd r26,Z+22
  1025. 1007 00d0 B789 ldd r27,Z+23
  1026. 1008 00d2 00C0 rjmp .L145
  1027. 1009 .L92:
  1028. 1010 00d4 6931 cpi r22,25
  1029. 1011 00d6 20E3 ldi r18,48
  1030. 1012 00d8 7207 cpc r23,r18
  1031. 1013 00da 01F4 brne .+2
  1032. 1014 00dc 00C0 rjmp .L107
  1033. 1015 00de 04F4 brge .L108
  1034. 1016 00e0 6F30 cpi r22,15
  1035. 1017 00e2 B0E3 ldi r27,48
  1036. 1018 00e4 7B07 cpc r23,r27
  1037. 1019 00e6 01F4 brne .+2
  1038. 1020 00e8 00C0 rjmp .L109
  1039. 1021 00ea 04F4 brge .L110
  1040. 1022 00ec 6B30 cpi r22,11
  1041. 1023 00ee A0E3 ldi r26,48
  1042. 1024 00f0 7A07 cpc r23,r26
  1043. 1025 00f2 01F4 brne .+2
  1044. 1026 00f4 00C0 rjmp .L111
  1045. GAS LISTING /tmp/cclioYfa.s page 19
  1046. 1027 00f6 6C30 cpi r22,12
  1047. 1028 00f8 7043 sbci r23,48
  1048. 1029 00fa 01F0 breq .+2
  1049. 1030 00fc 00C0 rjmp .L90
  1050. 1031 00fe 8881 ld r24,Y
  1051. 1032 0100 9981 ldd r25,Y+1
  1052. 1033 0102 AA81 ldd r26,Y+2
  1053. 1034 0104 BB81 ldd r27,Y+3
  1054. 1035 0106 808F std Z+24,r24
  1055. 1036 0108 918F std Z+25,r25
  1056. 1037 010a A28F std Z+26,r26
  1057. 1038 010c B38F std Z+27,r27
  1058. 1039 010e 00C0 rjmp .L142
  1059. 1040 .L110:
  1060. 1041 0110 6131 cpi r22,17
  1061. 1042 0112 20E3 ldi r18,48
  1062. 1043 0114 7207 cpc r23,r18
  1063. 1044 0116 01F4 brne .+2
  1064. 1045 0118 00C0 rjmp .L113
  1065. 1046 011a 6531 cpi r22,21
  1066. 1047 011c 7043 sbci r23,48
  1067. 1048 011e 01F0 breq .+2
  1068. 1049 0120 00C0 rjmp .L90
  1069. 1050 0122 87A5 ldd r24,Z+47
  1070. 1051 0124 90A9 ldd r25,Z+48
  1071. 1052 0126 A1A9 ldd r26,Z+49
  1072. 1053 0128 B2A9 ldd r27,Z+50
  1073. 1054 012a 00C0 rjmp .L145
  1074. 1055 .L108:
  1075. 1056 012c 6E31 cpi r22,30
  1076. 1057 012e B0E3 ldi r27,48
  1077. 1058 0130 7B07 cpc r23,r27
  1078. 1059 0132 01F4 brne .+2
  1079. 1060 0134 00C0 rjmp .L115
  1080. 1061 0136 04F4 brge .L116
  1081. 1062 0138 6A31 cpi r22,26
  1082. 1063 013a A0E3 ldi r26,48
  1083. 1064 013c 7A07 cpc r23,r26
  1084. 1065 013e 01F4 brne .+2
  1085. 1066 0140 00C0 rjmp .L117
  1086. 1067 0142 6C31 cpi r22,28
  1087. 1068 0144 7043 sbci r23,48
  1088. 1069 0146 01F0 breq .+2
  1089. 1070 0148 00C0 rjmp .L90
  1090. 1071 014a 8881 ld r24,Y
  1091. 1072 014c 9981 ldd r25,Y+1
  1092. 1073 014e 9587 std Z+13,r25
  1093. 1074 0150 8487 std Z+12,r24
  1094. 1075 0152 00C0 rjmp .L147
  1095. 1076 .L116:
  1096. 1077 0154 6033 cpi r22,48
  1097. 1078 0156 20E3 ldi r18,48
  1098. 1079 0158 7207 cpc r23,r18
  1099. 1080 015a 01F4 brne .+2
  1100. 1081 015c 00C0 rjmp .L119
  1101. 1082 015e 6833 cpi r22,56
  1102. 1083 0160 A0E3 ldi r26,48
  1103. GAS LISTING /tmp/cclioYfa.s page 20
  1104. 1084 0162 7A07 cpc r23,r26
  1105. 1085 0164 01F4 brne .+2
  1106. 1086 0166 00C0 rjmp .L120
  1107. 1087 0168 6032 cpi r22,32
  1108. 1088 016a 7043 sbci r23,48
  1109. 1089 016c 01F0 breq .+2
  1110. 1090 016e 00C0 rjmp .L90
  1111. 1091 0170 8881 ld r24,Y
  1112. 1092 0172 9981 ldd r25,Y+1
  1113. 1093 0174 918B std Z+17,r25
  1114. 1094 0176 808B std Z+16,r24
  1115. 1095 0178 00C0 rjmp .L147
  1116. 1096 .L95:
  1117. 1097 017a 8081 ld r24,Z
  1118. 1098 017c 9181 ldd r25,Z+1
  1119. 1099 017e 892B or r24,r25
  1120. 1100 0180 01F0 breq .+2
  1121. 1101 0182 00C0 rjmp .L143
  1122. 1102 0184 8281 ldd r24,Z+2
  1123. 1103 0186 9381 ldd r25,Z+3
  1124. 1104 0188 A481 ldd r26,Z+4
  1125. 1105 018a B581 ldd r27,Z+5
  1126. 1106 018c 8160 ori r24,1
  1127. 1107 018e 00C0 rjmp .L144
  1128. 1108 .L99:
  1129. 1109 0190 8081 ld r24,Z
  1130. 1110 0192 9181 ldd r25,Z+1
  1131. 1111 0194 0197 sbiw r24,1
  1132. 1112 0196 01F0 breq .+2
  1133. 1113 0198 00C0 rjmp .L143
  1134. 1114 019a 8281 ldd r24,Z+2
  1135. 1115 019c 9381 ldd r25,Z+3
  1136. 1116 019e A481 ldd r26,Z+4
  1137. 1117 01a0 B581 ldd r27,Z+5
  1138. 1118 01a2 8260 ori r24,2
  1139. 1119 01a4 00C0 rjmp .L144
  1140. 1120 .L93:
  1141. 1121 01a6 2681 ldd r18,Z+6
  1142. 1122 01a8 3781 ldd r19,Z+7
  1143. 1123 01aa 8085 ldd r24,Z+8
  1144. 1124 01ac 9185 ldd r25,Z+9
  1145. 1125 01ae 8217 cp r24,r18
  1146. 1126 01b0 9307 cpc r25,r19
  1147. 1127 01b2 04F4 brge .L125
  1148. 1128 01b4 C901 movw r24,r18
  1149. 1129 .L125:
  1150. 1130 01b6 9983 std Y+1,r25
  1151. 1131 01b8 8883 st Y,r24
  1152. 1132 01ba 00C0 rjmp .L142
  1153. 1133 .L103:
  1154. 1134 01bc 8881 ld r24,Y
  1155. 1135 01be 9981 ldd r25,Y+1
  1156. 1136 01c0 9187 std Z+9,r25
  1157. 1137 01c2 8087 std Z+8,r24
  1158. 1138 01c4 8881 ld r24,Y
  1159. 1139 01c6 9981 ldd r25,Y+1
  1160. 1140 01c8 9783 std Z+7,r25
  1161. GAS LISTING /tmp/cclioYfa.s page 21
  1162. 1141 01ca 8683 std Z+6,r24
  1163. 1142 01cc 8281 ldd r24,Z+2
  1164. 1143 01ce 9381 ldd r25,Z+3
  1165. 1144 01d0 A481 ldd r26,Z+4
  1166. 1145 01d2 B581 ldd r27,Z+5
  1167. 1146 01d4 8460 ori r24,4
  1168. 1147 01d6 00C0 rjmp .L146
  1169. 1148 .L117:
  1170. 1149 01d8 8881 ld r24,Y
  1171. 1150 01da 9981 ldd r25,Y+1
  1172. 1151 01dc 9387 std Z+11,r25
  1173. 1152 01de 8287 std Z+10,r24
  1174. 1153 01e0 00C0 rjmp .L147
  1175. 1154 .L115:
  1176. 1155 01e2 8881 ld r24,Y
  1177. 1156 01e4 9981 ldd r25,Y+1
  1178. 1157 01e6 9787 std Z+15,r25
  1179. 1158 01e8 8687 std Z+14,r24
  1180. 1159 .L147:
  1181. 1160 01ea 8281 ldd r24,Z+2
  1182. 1161 01ec 9381 ldd r25,Z+3
  1183. 1162 01ee A481 ldd r26,Z+4
  1184. 1163 01f0 B581 ldd r27,Z+5
  1185. 1164 01f2 8860 ori r24,8
  1186. 1165 .L146:
  1187. 1166 01f4 8283 std Z+2,r24
  1188. 1167 01f6 9383 std Z+3,r25
  1189. 1168 01f8 A483 std Z+4,r26
  1190. 1169 01fa B583 std Z+5,r27
  1191. 1170 01fc 00C0 rjmp .L142
  1192. 1171 .L101:
  1193. 1172 01fe 4881 ld r20,Y
  1194. 1173 0200 5981 ldd r21,Y+1
  1195. 1174 0202 6A81 ldd r22,Y+2
  1196. 1175 0204 7B81 ldd r23,Y+3
  1197. 1176 0206 C801 movw r24,r16
  1198. 1177 /* epilogue start */
  1199. 1178 0208 DF91 pop r29
  1200. 1179 020a CF91 pop r28
  1201. 1180 020c 1F91 pop r17
  1202. 1181 020e 0F91 pop r16
  1203. 1182 0210 FF90 pop r15
  1204. 1183 0212 EF90 pop r14
  1205. 1184 0214 DF90 pop r13
  1206. 1185 0216 CF90 pop r12
  1207. 1186 0218 BF90 pop r11
  1208. 1187 021a AF90 pop r10
  1209. 1188 021c 9F90 pop r9
  1210. 1189 021e 0C94 0000 jmp VsDecoderBufferInit
  1211. 1190 .L105:
  1212. 1191 0222 0E94 0000 call NutSegBufUsed
  1213. 1192 0226 6883 st Y,r22
  1214. 1193 0228 7983 std Y+1,r23
  1215. 1194 022a 8A83 std Y+2,r24
  1216. 1195 022c 9B83 std Y+3,r25
  1217. 1196 022e 00C0 rjmp .L142
  1218. 1197 .L91:
  1219. GAS LISTING /tmp/cclioYfa.s page 22
  1220. 1198 0230 8881 ld r24,Y
  1221. 1199 0232 9981 ldd r25,Y+1
  1222. 1200 0234 AA81 ldd r26,Y+2
  1223. 1201 0236 BB81 ldd r27,Y+3
  1224. 1202 0238 848B std Z+20,r24
  1225. 1203 023a 958B std Z+21,r25
  1226. 1204 023c A68B std Z+22,r26
  1227. 1205 023e B78B std Z+23,r27
  1228. 1206 0240 00C0 rjmp .L142
  1229. 1207 .L111:
  1230. 1208 0242 808D ldd r24,Z+24
  1231. 1209 0244 918D ldd r25,Z+25
  1232. 1210 0246 A28D ldd r26,Z+26
  1233. 1211 0248 B38D ldd r27,Z+27
  1234. 1212 024a 00C0 rjmp .L145
  1235. 1213 .L97:
  1236. 1214 024c 8881 ld r24,Y
  1237. 1215 024e 9981 ldd r25,Y+1
  1238. 1216 0250 AA81 ldd r26,Y+2
  1239. 1217 0252 BB81 ldd r27,Y+3
  1240. 1218 0254 848F std Z+28,r24
  1241. 1219 0256 958F std Z+29,r25
  1242. 1220 0258 A68F std Z+30,r26
  1243. 1221 025a B78F std Z+31,r27
  1244. 1222 025c 00C0 rjmp .L142
  1245. 1223 .L109:
  1246. 1224 025e 8081 ld r24,Z
  1247. 1225 0260 9181 ldd r25,Z+1
  1248. 1226 0262 892B or r24,r25
  1249. 1227 0264 01F0 breq .+2
  1250. 1228 0266 00C0 rjmp .L141
  1251. 1229 0268 8881 ld r24,Y
  1252. 1230 026a 9981 ldd r25,Y+1
  1253. 1231 026c 938B std Z+19,r25
  1254. 1232 026e 828B std Z+18,r24
  1255. 1233 0270 8281 ldd r24,Z+2
  1256. 1234 0272 9381 ldd r25,Z+3
  1257. 1235 0274 A481 ldd r26,Z+4
  1258. 1236 0276 B581 ldd r27,Z+5
  1259. 1237 0278 8061 ori r24,16
  1260. 1238 .L144:
  1261. 1239 027a 8283 std Z+2,r24
  1262. 1240 027c 9383 std Z+3,r25
  1263. 1241 027e A483 std Z+4,r26
  1264. 1242 0280 B583 std Z+5,r27
  1265. 1243 .L143:
  1266. 1244 0282 CF01 movw r24,r30
  1267. 1245 0284 8696 adiw r24,38
  1268. 1246 0286 0E94 0000 call NutEventPost
  1269. 1247 .L142:
  1270. 1248 028a 80E0 ldi r24,0
  1271. 1249 028c 90E0 ldi r25,0
  1272. 1250 028e 00C0 rjmp .L123
  1273. 1251 .L113:
  1274. 1252 0290 83A5 ldd r24,Z+43
  1275. 1253 0292 94A5 ldd r25,Z+44
  1276. 1254 0294 A5A5 ldd r26,Z+45
  1277. GAS LISTING /tmp/cclioYfa.s page 23
  1278. 1255 0296 B6A5 ldd r27,Z+46
  1279. 1256 0298 00C0 rjmp .L145
  1280. 1257 .L107:
  1281. 1258 029a 83A9 ldd r24,Z+51
  1282. 1259 029c 94A9 ldd r25,Z+52
  1283. 1260 029e A5A9 ldd r26,Z+53
  1284. 1261 02a0 B6A9 ldd r27,Z+54
  1285. 1262 .L145:
  1286. 1263 02a2 8883 st Y,r24
  1287. 1264 02a4 9983 std Y+1,r25
  1288. 1265 02a6 AA83 std Y+2,r26
  1289. 1266 02a8 BB83 std Y+3,r27
  1290. 1267 02aa 00C0 rjmp .L142
  1291. 1268 .L119:
  1292. 1269 02ac 20E0 ldi r18,0
  1293. 1270 02ae 30EC ldi r19,lo8(-64)
  1294. 1271 02b0 43E0 ldi r20,lo8(3)
  1295. 1272 02b2 62E0 ldi r22,lo8(2)
  1296. 1273 02b4 C801 movw r24,r16
  1297. 1274 02b6 0E94 0000 call VsCodecReg
  1298. 1275 02ba 64E6 ldi r22,lo8(100)
  1299. 1276 02bc 70E0 ldi r23,0
  1300. 1277 02be 80E0 ldi r24,0
  1301. 1278 02c0 90E0 ldi r25,0
  1302. 1279 02c2 0E94 0000 call NutSleep
  1303. 1280 02c6 20E0 ldi r18,0
  1304. 1281 02c8 30E0 ldi r19,0
  1305. 1282 02ca 4AE0 ldi r20,lo8(10)
  1306. 1283 02cc 62E0 ldi r22,lo8(2)
  1307. 1284 02ce C801 movw r24,r16
  1308. 1285 02d0 0E94 0000 call VsCodecReg
  1309. 1286 02d4 2AE1 ldi r18,lo8(26)
  1310. 1287 02d6 30EC ldi r19,lo8(-64)
  1311. 1288 02d8 47E0 ldi r20,lo8(7)
  1312. 1289 02da 62E0 ldi r22,lo8(2)
  1313. 1290 02dc C801 movw r24,r16
  1314. 1291 02de 0E94 0000 call VsCodecReg
  1315. 1292 02e2 22E0 ldi r18,lo8(2)
  1316. 1293 02e4 30E0 ldi r19,0
  1317. 1294 02e6 46E0 ldi r20,lo8(6)
  1318. 1295 02e8 62E0 ldi r22,lo8(2)
  1319. 1296 02ea C801 movw r24,r16
  1320. 1297 02ec 0E94 0000 call VsCodecReg
  1321. 1298 02f0 20E0 ldi r18,0
  1322. 1299 02f2 30E0 ldi r19,0
  1323. 1300 .L126:
  1324. 1301 02f4 5901 movw r10,r18
  1325. 1302 02f6 B3E0 ldi r27,3
  1326. 1303 02f8 AB0E add r10,r27
  1327. 1304 02fa B11C adc r11,__zero_reg__
  1328. 1305 02fc 4881 ld r20,Y
  1329. 1306 02fe 5981 ldd r21,Y+1
  1330. 1307 0300 4A15 cp r20,r10
  1331. 1308 0302 5B05 cpc r21,r11
  1332. 1309 0304 00F4 brsh .+2
  1333. 1310 0306 00C0 rjmp .L131
  1334. 1311 0308 EA81 ldd r30,Y+2
  1335. GAS LISTING /tmp/cclioYfa.s page 24
  1336. 1312 030a FB81 ldd r31,Y+3
  1337. 1313 030c 6901 movw r12,r18
  1338. 1314 030e CC0C lsl r12
  1339. 1315 0310 DD1C rol r13
  1340. 1316 0312 EC0D add r30,r12
  1341. 1317 0314 FD1D adc r31,r13
  1342. 1318 0316 9080 ld r9,Z
  1343. 1319 0318 2E5F subi r18,-2
  1344. 1320 031a 3F4F sbci r19,-1
  1345. 1321 031c E280 ldd r14,Z+2
  1346. 1322 031e F380 ldd r15,Z+3
  1347. 1323 0320 F7FE sbrs r15,7
  1348. 1324 0322 00C0 rjmp .L127
  1349. 1325 0324 E894 clt
  1350. 1326 0326 F7F8 bld r15,7
  1351. 1327 0328 24E0 ldi r18,4
  1352. 1328 032a C20E add r12,r18
  1353. 1329 032c D11C adc r13,__zero_reg__
  1354. 1330 .L128:
  1355. 1331 032e 81E0 ldi r24,1
  1356. 1332 0330 E81A sub r14,r24
  1357. 1333 0332 F108 sbc r15,__zero_reg__
  1358. 1334 0334 00F0 brcs .L130
  1359. 1335 0336 EA81 ldd r30,Y+2
  1360. 1336 0338 FB81 ldd r31,Y+3
  1361. 1337 033a EC0D add r30,r12
  1362. 1338 033c FD1D adc r31,r13
  1363. 1339 033e 2081 ld r18,Z
  1364. 1340 0340 3181 ldd r19,Z+1
  1365. 1341 0342 492D mov r20,r9
  1366. 1342 0344 62E0 ldi r22,lo8(2)
  1367. 1343 0346 C801 movw r24,r16
  1368. 1344 0348 0E94 0000 call VsCodecReg
  1369. 1345 034c 00C0 rjmp .L128
  1370. 1346 .L127:
  1371. 1347 034e 5901 movw r10,r18
  1372. 1348 0350 AE0C add r10,r14
  1373. 1349 0352 BF1C adc r11,r15
  1374. 1350 0354 4A15 cp r20,r10
  1375. 1351 0356 5B05 cpc r21,r11
  1376. 1352 0358 00F0 brlo .L131
  1377. 1353 035a B4E0 ldi r27,4
  1378. 1354 035c CB0E add r12,r27
  1379. 1355 035e D11C adc r13,__zero_reg__
  1380. 1356 .L132:
  1381. 1357 0360 81E0 ldi r24,1
  1382. 1358 0362 E81A sub r14,r24
  1383. 1359 0364 F108 sbc r15,__zero_reg__
  1384. 1360 0366 00F0 brcs .L130
  1385. 1361 0368 EA81 ldd r30,Y+2
  1386. 1362 036a FB81 ldd r31,Y+3
  1387. 1363 036c EC0D add r30,r12
  1388. 1364 036e FD1D adc r31,r13
  1389. 1365 0370 2081 ld r18,Z
  1390. 1366 0372 3181 ldd r19,Z+1
  1391. 1367 0374 492D mov r20,r9
  1392. 1368 0376 62E0 ldi r22,lo8(2)
  1393. GAS LISTING /tmp/cclioYfa.s page 25
  1394. 1369 0378 C801 movw r24,r16
  1395. 1370 037a 0E94 0000 call VsCodecReg
  1396. 1371 037e 22E0 ldi r18,2
  1397. 1372 0380 C20E add r12,r18
  1398. 1373 0382 D11C adc r13,__zero_reg__
  1399. 1374 0384 00C0 rjmp .L132
  1400. 1375 .L130:
  1401. 1376 0386 9501 movw r18,r10
  1402. 1377 0388 00C0 rjmp .L126
  1403. 1378 .L131:
  1404. 1379 038a 81E0 ldi r24,lo8(1)
  1405. 1380 038c 90E0 ldi r25,0
  1406. 1381 038e 4217 cp r20,r18
  1407. 1382 0390 5307 cpc r21,r19
  1408. 1383 0392 01F4 brne .L135
  1409. 1384 0394 80E0 ldi r24,0
  1410. 1385 0396 90E0 ldi r25,0
  1411. 1386 .L135:
  1412. 1387 0398 9195 neg r25
  1413. 1388 039a 8195 neg r24
  1414. 1389 039c 9109 sbc r25,__zero_reg__
  1415. 1390 039e 00C0 rjmp .L123
  1416. 1391 .L120:
  1417. 1392 03a0 2097 sbiw r28,0
  1418. 1393 03a2 01F4 brne .L136
  1419. 1394 03a4 20E0 ldi r18,0
  1420. 1395 03a6 30EC ldi r19,lo8(-64)
  1421. 1396 03a8 43E0 ldi r20,lo8(3)
  1422. 1397 03aa 62E0 ldi r22,lo8(2)
  1423. 1398 03ac C801 movw r24,r16
  1424. 1399 03ae 0E94 0000 call VsCodecReg
  1425. 1400 03b2 64E6 ldi r22,lo8(100)
  1426. 1401 03b4 70E0 ldi r23,0
  1427. 1402 03b6 80E0 ldi r24,0
  1428. 1403 03b8 90E0 ldi r25,0
  1429. 1404 03ba 0E94 0000 call NutSleep
  1430. 1405 03be 20E0 ldi r18,0
  1431. 1406 03c0 30E0 ldi r19,0
  1432. 1407 03c2 4AE0 ldi r20,lo8(10)
  1433. 1408 03c4 62E0 ldi r22,lo8(2)
  1434. 1409 03c6 C801 movw r24,r16
  1435. 1410 03c8 0E94 0000 call VsCodecReg
  1436. 1411 03cc 2AE1 ldi r18,lo8(26)
  1437. 1412 03ce 30EC ldi r19,lo8(-64)
  1438. 1413 03d0 47E0 ldi r20,lo8(7)
  1439. 1414 03d2 62E0 ldi r22,lo8(2)
  1440. 1415 03d4 C801 movw r24,r16
  1441. 1416 03d6 0E94 0000 call VsCodecReg
  1442. 1417 03da 22E0 ldi r18,lo8(2)
  1443. 1418 03dc 30E0 ldi r19,0
  1444. 1419 03de 46E0 ldi r20,lo8(6)
  1445. 1420 03e0 62E0 ldi r22,lo8(2)
  1446. 1421 03e2 C801 movw r24,r16
  1447. 1422 03e4 0E94 0000 call VsCodecReg
  1448. 1423 03e8 00C0 rjmp .L142
  1449. 1424 .L136:
  1450. 1425 03ea 8C81 ldd r24,Y+4
  1451. GAS LISTING /tmp/cclioYfa.s page 26
  1452. 1426 03ec 9D81 ldd r25,Y+5
  1453. 1427 03ee 892B or r24,r25
  1454. 1428 03f0 01F4 brne .+2
  1455. 1429 03f2 00C0 rjmp .L142
  1456. 1430 03f4 2881 ld r18,Y
  1457. 1431 03f6 3981 ldd r19,Y+1
  1458. 1432 03f8 47E0 ldi r20,lo8(7)
  1459. 1433 03fa 62E0 ldi r22,lo8(2)
  1460. 1434 03fc C801 movw r24,r16
  1461. 1435 03fe 0E94 0000 call VsCodecReg
  1462. 1436 0402 E12C mov r14,__zero_reg__
  1463. 1437 0404 F12C mov r15,__zero_reg__
  1464. 1438 .L138:
  1465. 1439 0406 8A81 ldd r24,Y+2
  1466. 1440 0408 9B81 ldd r25,Y+3
  1467. 1441 040a E816 cp r14,r24
  1468. 1442 040c F906 cpc r15,r25
  1469. 1443 040e 00F0 brlo .+2
  1470. 1444 0410 00C0 rjmp .L142
  1471. 1445 0412 C701 movw r24,r14
  1472. 1446 0414 880F lsl r24
  1473. 1447 0416 991F rol r25
  1474. 1448 0418 EC81 ldd r30,Y+4
  1475. 1449 041a FD81 ldd r31,Y+5
  1476. 1450 041c E80F add r30,r24
  1477. 1451 041e F91F adc r31,r25
  1478. 1452 0420 2081 ld r18,Z
  1479. 1453 0422 3181 ldd r19,Z+1
  1480. 1454 0424 46E0 ldi r20,lo8(6)
  1481. 1455 0426 62E0 ldi r22,lo8(2)
  1482. 1456 0428 C801 movw r24,r16
  1483. 1457 042a 0E94 0000 call VsCodecReg
  1484. 1458 042e 2FEF ldi r18,-1
  1485. 1459 0430 E21A sub r14,r18
  1486. 1460 0432 F20A sbc r15,r18
  1487. 1461 0434 00C0 rjmp .L138
  1488. 1462 .L90:
  1489. 1463 0436 EF5B subi r30,-65
  1490. 1464 0438 FF4F sbci r31,-1
  1491. 1465 043a 0190 ld __tmp_reg__,Z+
  1492. 1466 043c F081 ld r31,Z
  1493. 1467 043e E02D mov r30,__tmp_reg__
  1494. 1468 0440 BE01 movw r22,r28
  1495. 1469 /* epilogue start */
  1496. 1470 0442 DF91 pop r29
  1497. 1471 0444 CF91 pop r28
  1498. 1472 0446 1F91 pop r17
  1499. 1473 0448 0F91 pop r16
  1500. 1474 044a FF90 pop r15
  1501. 1475 044c EF90 pop r14
  1502. 1476 044e DF90 pop r13
  1503. 1477 0450 CF90 pop r12
  1504. 1478 0452 BF90 pop r11
  1505. 1479 0454 AF90 pop r10
  1506. 1480 0456 9F90 pop r9
  1507. 1481 0458 1994 eijmp
  1508. 1482 .L141:
  1509. GAS LISTING /tmp/cclioYfa.s page 27
  1510. 1483 045a 8FEF ldi r24,lo8(-1)
  1511. 1484 045c 9FEF ldi r25,lo8(-1)
  1512. 1485 .L123:
  1513. 1486 /* epilogue start */
  1514. 1487 045e DF91 pop r29
  1515. 1488 0460 CF91 pop r28
  1516. 1489 0462 1F91 pop r17
  1517. 1490 0464 0F91 pop r16
  1518. 1491 0466 FF90 pop r15
  1519. 1492 0468 EF90 pop r14
  1520. 1493 046a DF90 pop r13
  1521. 1494 046c CF90 pop r12
  1522. 1495 046e BF90 pop r11
  1523. 1496 0470 AF90 pop r10
  1524. 1497 0472 9F90 pop r9
  1525. 1498 0474 0895 ret
  1526. 1499 .size VsCodecIOCtl, .-VsCodecIOCtl
  1527. 1500 .section .text.VsDecoderBufferFlush,"ax",@progbits
  1528. 1501 .type VsDecoderBufferFlush, @function
  1529. 1502 VsDecoderBufferFlush:
  1530. 1503 0000 8F92 push r8
  1531. 1504 0002 9F92 push r9
  1532. 1505 0004 AF92 push r10
  1533. 1506 0006 BF92 push r11
  1534. 1507 0008 EF92 push r14
  1535. 1508 000a FF92 push r15
  1536. 1509 000c 0F93 push r16
  1537. 1510 000e 1F93 push r17
  1538. 1511 0010 CF93 push r28
  1539. 1512 0012 DF93 push r29
  1540. 1513 /* prologue: function */
  1541. 1514 /* frame size = 0 */
  1542. 1515 /* stack size = 10 */
  1543. 1516 .L__stack_usage = 10
  1544. 1517 0014 8C01 movw r16,r24
  1545. 1518 0016 4A01 movw r8,r20
  1546. 1519 0018 5B01 movw r10,r22
  1547. 1520 001a FC01 movw r30,r24
  1548. 1521 001c C189 ldd r28,Z+17
  1549. 1522 001e D289 ldd r29,Z+18
  1550. 1523 0020 7E01 movw r14,r28
  1551. 1524 0022 F4E2 ldi r31,36
  1552. 1525 0024 EF0E add r14,r31
  1553. 1526 0026 F11C adc r15,__zero_reg__
  1554. 1527 .L152:
  1555. 1528 0028 0E94 0000 call NutSegBufUsed
  1556. 1529 002c 672B or r22,r23
  1557. 1530 002e 682B or r22,r24
  1558. 1531 0030 692B or r22,r25
  1559. 1532 0032 01F0 breq .L149
  1560. 1533 0034 40E0 ldi r20,0
  1561. 1534 0036 50E0 ldi r21,0
  1562. 1535 0038 61E0 ldi r22,lo8(1)
  1563. 1536 003a 70E3 ldi r23,lo8(48)
  1564. 1537 003c C801 movw r24,r16
  1565. 1538 003e 0E94 0000 call VsCodecIOCtl
  1566. 1539 0042 00C0 rjmp .L150
  1567. GAS LISTING /tmp/cclioYfa.s page 28
  1568. 1540 .L149:
  1569. 1541 0044 8881 ld r24,Y
  1570. 1542 0046 9981 ldd r25,Y+1
  1571. 1543 0048 892B or r24,r25
  1572. 1544 004a 01F0 breq .L153
  1573. 1545 .L150:
  1574. 1546 004c B501 movw r22,r10
  1575. 1547 004e A401 movw r20,r8
  1576. 1548 0050 C701 movw r24,r14
  1577. 1549 0052 0E94 0000 call NutEventWait
  1578. 1550 0056 0097 sbiw r24,0
  1579. 1551 0058 01F0 breq .L152
  1580. 1552 005a 00C0 rjmp .L151
  1581. 1553 .L153:
  1582. 1554 005c 80E0 ldi r24,0
  1583. 1555 005e 90E0 ldi r25,0
  1584. 1556 .L151:
  1585. 1557 /* epilogue start */
  1586. 1558 0060 DF91 pop r29
  1587. 1559 0062 CF91 pop r28
  1588. 1560 0064 1F91 pop r17
  1589. 1561 0066 0F91 pop r16
  1590. 1562 0068 FF90 pop r15
  1591. 1563 006a EF90 pop r14
  1592. 1564 006c BF90 pop r11
  1593. 1565 006e AF90 pop r10
  1594. 1566 0070 9F90 pop r9
  1595. 1567 0072 8F90 pop r8
  1596. 1568 0074 0895 ret
  1597. 1569 .size VsDecoderBufferFlush, .-VsDecoderBufferFlush
  1598. 1570 .section .text.VsCodecRead,"ax",@progbits
  1599. 1571 .global VsCodecRead
  1600. 1572 .type VsCodecRead, @function
  1601. 1573 VsCodecRead:
  1602. 1574 0000 4F92 push r4
  1603. 1575 0002 5F92 push r5
  1604. 1576 0004 6F92 push r6
  1605. 1577 0006 7F92 push r7
  1606. 1578 0008 8F92 push r8
  1607. 1579 000a 9F92 push r9
  1608. 1580 000c AF92 push r10
  1609. 1581 000e BF92 push r11
  1610. 1582 0010 CF92 push r12
  1611. 1583 0012 DF92 push r13
  1612. 1584 0014 EF92 push r14
  1613. 1585 0016 FF92 push r15
  1614. 1586 0018 0F93 push r16
  1615. 1587 001a 1F93 push r17
  1616. 1588 001c CF93 push r28
  1617. 1589 001e DF93 push r29
  1618. 1590 0020 1F92 push __zero_reg__
  1619. 1591 0022 1F92 push __zero_reg__
  1620. 1592 0024 CDB7 in r28,__SP_L__
  1621. 1593 0026 DEB7 in r29,__SP_H__
  1622. 1594 /* prologue: function */
  1623. 1595 /* frame size = 2 */
  1624. 1596 /* stack size = 18 */
  1625. GAS LISTING /tmp/cclioYfa.s page 29
  1626. 1597 .L__stack_usage = 18
  1627. 1598 0028 5B01 movw r10,r22
  1628. 1599 002a 6A01 movw r12,r20
  1629. 1600 002c 672B or r22,r23
  1630. 1601 002e 01F4 brne .+2
  1631. 1602 0030 00C0 rjmp .L165
  1632. 1603 0032 452B or r20,r21
  1633. 1604 0034 01F4 brne .+2
  1634. 1605 0036 00C0 rjmp .L165
  1635. 1606 0038 DC01 movw r26,r24
  1636. 1607 003a ED91 ld r30,X+
  1637. 1608 003c FC91 ld r31,X
  1638. 1609 003e 0189 ldd r16,Z+17
  1639. 1610 0040 1289 ldd r17,Z+18
  1640. 1611 0042 F801 movw r30,r16
  1641. 1612 0044 8081 ld r24,Z
  1642. 1613 0046 9181 ldd r25,Z+1
  1643. 1614 0048 8130 cpi r24,1
  1644. 1615 004a 9105 cpc r25,__zero_reg__
  1645. 1616 004c 01F4 brne .+2
  1646. 1617 004e 00C0 rjmp .L166
  1647. 1618 0050 892B or r24,r25
  1648. 1619 0052 01F4 brne .L158
  1649. 1620 0054 8281 ldd r24,Z+2
  1650. 1621 0056 9381 ldd r25,Z+3
  1651. 1622 0058 A481 ldd r26,Z+4
  1652. 1623 005a B581 ldd r27,Z+5
  1653. 1624 005c 8062 ori r24,32
  1654. 1625 005e 8283 std Z+2,r24
  1655. 1626 0060 9383 std Z+3,r25
  1656. 1627 0062 A483 std Z+4,r26
  1657. 1628 0064 B583 std Z+5,r27
  1658. 1629 0066 C801 movw r24,r16
  1659. 1630 0068 8696 adiw r24,38
  1660. 1631 006a 0E94 0000 call NutEventPost
  1661. 1632 .L158:
  1662. 1633 006e E12C mov r14,__zero_reg__
  1663. 1634 0070 F12C mov r15,__zero_reg__
  1664. 1635 0072 3801 movw r6,r16
  1665. 1636 0074 F4E2 ldi r31,36
  1666. 1637 0076 6F0E add r6,r31
  1667. 1638 0078 711C adc r7,__zero_reg__
  1668. 1639 007a 4801 movw r8,r16
  1669. 1640 007c 86E2 ldi r24,38
  1670. 1641 007e 880E add r8,r24
  1671. 1642 0080 911C adc r9,__zero_reg__
  1672. 1643 .L159:
  1673. 1644 0082 CE01 movw r24,r28
  1674. 1645 0084 0196 adiw r24,1
  1675. 1646 0086 0E94 0000 call NutSegBufReadRequest
  1676. 1647 008a 2981 ldd r18,Y+1
  1677. 1648 008c 3A81 ldd r19,Y+2
  1678. 1649 008e 2115 cp r18,__zero_reg__
  1679. 1650 0090 3105 cpc r19,__zero_reg__
  1680. 1651 0092 01F0 breq .L160
  1681. 1652 0094 C216 cp r12,r18
  1682. 1653 0096 D306 cpc r13,r19
  1683. GAS LISTING /tmp/cclioYfa.s page 30
  1684. 1654 0098 00F4 brsh .L161
  1685. 1655 009a DA82 std Y+2,r13
  1686. 1656 009c C982 std Y+1,r12
  1687. 1657 .L161:
  1688. 1658 009e 4980 ldd r4,Y+1
  1689. 1659 00a0 5A80 ldd r5,Y+2
  1690. 1660 00a2 A201 movw r20,r4
  1691. 1661 00a4 BC01 movw r22,r24
  1692. 1662 00a6 C501 movw r24,r10
  1693. 1663 00a8 0E94 0000 call memcpy
  1694. 1664 00ac C201 movw r24,r4
  1695. 1665 00ae 0E94 0000 call NutSegBufReadLast
  1696. 1666 00b2 C401 movw r24,r8
  1697. 1667 00b4 0E94 0000 call NutEventPost
  1698. 1668 00b8 8981 ldd r24,Y+1
  1699. 1669 00ba 9A81 ldd r25,Y+2
  1700. 1670 00bc C81A sub r12,r24
  1701. 1671 00be D90A sbc r13,r25
  1702. 1672 00c0 E80E add r14,r24
  1703. 1673 00c2 F91E adc r15,r25
  1704. 1674 00c4 A80E add r10,r24
  1705. 1675 00c6 B91E adc r11,r25
  1706. 1676 00c8 C114 cp r12,__zero_reg__
  1707. 1677 00ca D104 cpc r13,__zero_reg__
  1708. 1678 00cc 01F4 brne .L159
  1709. 1679 00ce 00C0 rjmp .L170
  1710. 1680 .L160:
  1711. 1681 00d0 D801 movw r26,r16
  1712. 1682 00d2 9096 adiw r26,32
  1713. 1683 00d4 4D91 ld r20,X+
  1714. 1684 00d6 5D91 ld r21,X+
  1715. 1685 00d8 6D91 ld r22,X+
  1716. 1686 00da 7C91 ld r23,X
  1717. 1687 00dc 9397 sbiw r26,32+3
  1718. 1688 00de C301 movw r24,r6
  1719. 1689 00e0 0E94 0000 call NutEventWait
  1720. 1690 00e4 892B or r24,r25
  1721. 1691 00e6 01F0 breq .L159
  1722. 1692 .L170:
  1723. 1693 00e8 C701 movw r24,r14
  1724. 1694 00ea 00C0 rjmp .L157
  1725. 1695 .L165:
  1726. 1696 00ec 80E0 ldi r24,0
  1727. 1697 00ee 90E0 ldi r25,0
  1728. 1698 00f0 00C0 rjmp .L157
  1729. 1699 .L166:
  1730. 1700 00f2 8FEF ldi r24,lo8(-1)
  1731. 1701 00f4 9FEF ldi r25,lo8(-1)
  1732. 1702 .L157:
  1733. 1703 /* epilogue start */
  1734. 1704 00f6 0F90 pop __tmp_reg__
  1735. 1705 00f8 0F90 pop __tmp_reg__
  1736. 1706 00fa DF91 pop r29
  1737. 1707 00fc CF91 pop r28
  1738. 1708 00fe 1F91 pop r17
  1739. 1709 0100 0F91 pop r16
  1740. 1710 0102 FF90 pop r15
  1741. GAS LISTING /tmp/cclioYfa.s page 31
  1742. 1711 0104 EF90 pop r14
  1743. 1712 0106 DF90 pop r13
  1744. 1713 0108 CF90 pop r12
  1745. 1714 010a BF90 pop r11
  1746. 1715 010c AF90 pop r10
  1747. 1716 010e 9F90 pop r9
  1748. 1717 0110 8F90 pop r8
  1749. 1718 0112 7F90 pop r7
  1750. 1719 0114 6F90 pop r6
  1751. 1720 0116 5F90 pop r5
  1752. 1721 0118 4F90 pop r4
  1753. 1722 011a 0895 ret
  1754. 1723 .size VsCodecRead, .-VsCodecRead
  1755. 1724 .section .text.VsCodecWrite,"ax",@progbits
  1756. 1725 .global VsCodecWrite
  1757. 1726 .type VsCodecWrite, @function
  1758. 1727 VsCodecWrite:
  1759. 1728 0000 6F92 push r6
  1760. 1729 0002 7F92 push r7
  1761. 1730 0004 8F92 push r8
  1762. 1731 0006 9F92 push r9
  1763. 1732 0008 AF92 push r10
  1764. 1733 000a BF92 push r11
  1765. 1734 000c CF92 push r12
  1766. 1735 000e DF92 push r13
  1767. 1736 0010 EF92 push r14
  1768. 1737 0012 FF92 push r15
  1769. 1738 0014 0F93 push r16
  1770. 1739 0016 1F93 push r17
  1771. 1740 0018 CF93 push r28
  1772. 1741 001a DF93 push r29
  1773. 1742 001c 1F92 push __zero_reg__
  1774. 1743 001e 1F92 push __zero_reg__
  1775. 1744 0020 CDB7 in r28,__SP_L__
  1776. 1745 0022 DEB7 in r29,__SP_H__
  1777. 1746 /* prologue: function */
  1778. 1747 /* frame size = 2 */
  1779. 1748 /* stack size = 16 */
  1780. 1749 .L__stack_usage = 16
  1781. 1750 0024 7B01 movw r14,r22
  1782. 1751 0026 3A01 movw r6,r20
  1783. 1752 0028 FC01 movw r30,r24
  1784. 1753 002a 8081 ld r24,Z
  1785. 1754 002c 9181 ldd r25,Z+1
  1786. 1755 002e FC01 movw r30,r24
  1787. 1756 0030 C188 ldd r12,Z+17
  1788. 1757 0032 D288 ldd r13,Z+18
  1789. 1758 0034 672B or r22,r23
  1790. 1759 0036 01F0 breq .L172
  1791. 1760 0038 452B or r20,r21
  1792. 1761 003a 01F0 breq .L172
  1793. 1762 003c 00E0 ldi r16,0
  1794. 1763 003e 10E0 ldi r17,0
  1795. 1764 0040 5601 movw r10,r12
  1796. 1765 0042 F6E2 ldi r31,38
  1797. 1766 0044 AF0E add r10,r31
  1798. 1767 0046 B11C adc r11,__zero_reg__
  1799. GAS LISTING /tmp/cclioYfa.s page 32
  1800. 1768 0048 4601 movw r8,r12
  1801. 1769 004a 84E2 ldi r24,36
  1802. 1770 004c 880E add r8,r24
  1803. 1771 004e 911C adc r9,__zero_reg__
  1804. 1772 0050 00C0 rjmp .L173
  1805. 1773 .L172:
  1806. 1774 0052 F601 movw r30,r12
  1807. 1775 0054 448D ldd r20,Z+28
  1808. 1776 0056 558D ldd r21,Z+29
  1809. 1777 0058 668D ldd r22,Z+30
  1810. 1778 005a 778D ldd r23,Z+31
  1811. 1779 005c 0E94 0000 call VsDecoderBufferFlush
  1812. 1780 0060 00C0 rjmp .L174
  1813. 1781 .L186:
  1814. 1782 0062 F601 movw r30,r12
  1815. 1783 0064 448D ldd r20,Z+28
  1816. 1784 0066 558D ldd r21,Z+29
  1817. 1785 0068 668D ldd r22,Z+30
  1818. 1786 006a 778D ldd r23,Z+31
  1819. 1787 006c C401 movw r24,r8
  1820. 1788 006e 0E94 0000 call NutEventWait
  1821. 1789 0072 892B or r24,r25
  1822. 1790 0074 01F4 brne .L179
  1823. 1791 .L173:
  1824. 1792 0076 CE01 movw r24,r28
  1825. 1793 0078 0196 adiw r24,1
  1826. 1794 007a 0E94 0000 call NutSegBufWriteRequest
  1827. 1795 007e 2981 ldd r18,Y+1
  1828. 1796 0080 3A81 ldd r19,Y+2
  1829. 1797 0082 2115 cp r18,__zero_reg__
  1830. 1798 0084 3105 cpc r19,__zero_reg__
  1831. 1799 0086 01F0 breq .L186
  1832. 1800 0088 6216 cp r6,r18
  1833. 1801 008a 7306 cpc r7,r19
  1834. 1802 008c 00F4 brsh .L177
  1835. 1803 008e 7A82 std Y+2,r7
  1836. 1804 0090 6982 std Y+1,r6
  1837. 1805 .L177:
  1838. 1806 0092 4981 ldd r20,Y+1
  1839. 1807 0094 5A81 ldd r21,Y+2
  1840. 1808 0096 B701 movw r22,r14
  1841. 1809 0098 0E94 0000 call memcpy
  1842. 1810 009c 8981 ldd r24,Y+1
  1843. 1811 009e 9A81 ldd r25,Y+2
  1844. 1812 00a0 0E94 0000 call NutSegBufWriteLast
  1845. 1813 00a4 C501 movw r24,r10
  1846. 1814 00a6 0E94 0000 call NutEventPost
  1847. 1815 00aa 8981 ldd r24,Y+1
  1848. 1816 00ac 9A81 ldd r25,Y+2
  1849. 1817 00ae 681A sub r6,r24
  1850. 1818 00b0 790A sbc r7,r25
  1851. 1819 00b2 080F add r16,r24
  1852. 1820 00b4 191F adc r17,r25
  1853. 1821 00b6 E80E add r14,r24
  1854. 1822 00b8 F91E adc r15,r25
  1855. 1823 00ba 6114 cp r6,__zero_reg__
  1856. 1824 00bc 7104 cpc r7,__zero_reg__
  1857. GAS LISTING /tmp/cclioYfa.s page 33
  1858. 1825 00be 01F4 brne .L173
  1859. 1826 .L179:
  1860. 1827 00c0 C801 movw r24,r16
  1861. 1828 .L174:
  1862. 1829 /* epilogue start */
  1863. 1830 00c2 0F90 pop __tmp_reg__
  1864. 1831 00c4 0F90 pop __tmp_reg__
  1865. 1832 00c6 DF91 pop r29
  1866. 1833 00c8 CF91 pop r28
  1867. 1834 00ca 1F91 pop r17
  1868. 1835 00cc 0F91 pop r16
  1869. 1836 00ce FF90 pop r15
  1870. 1837 00d0 EF90 pop r14
  1871. 1838 00d2 DF90 pop r13
  1872. 1839 00d4 CF90 pop r12
  1873. 1840 00d6 BF90 pop r11
  1874. 1841 00d8 AF90 pop r10
  1875. 1842 00da 9F90 pop r9
  1876. 1843 00dc 8F90 pop r8
  1877. 1844 00de 7F90 pop r7
  1878. 1845 00e0 6F90 pop r6
  1879. 1846 00e2 0895 ret
  1880. 1847 .size VsCodecWrite, .-VsCodecWrite
  1881. 1848 .section .text.VsCodecWrite_P,"ax",@progbits
  1882. 1849 .global VsCodecWrite_P
  1883. 1850 .type VsCodecWrite_P, @function
  1884. 1851 VsCodecWrite_P:
  1885. 1852 /* prologue: function */
  1886. 1853 /* frame size = 0 */
  1887. 1854 /* stack size = 0 */
  1888. 1855 .L__stack_usage = 0
  1889. 1856 0000 8FEF ldi r24,lo8(-1)
  1890. 1857 0002 9FEF ldi r25,lo8(-1)
  1891. 1858 0004 0895 ret
  1892. 1859 .size VsCodecWrite_P, .-VsCodecWrite_P
  1893. 1860 .section .rodata.str1.1,"aMS",@progbits,1
  1894. 1861 .LC0:
  1895. 1862 0000 766F 7262 .string "vorbis"
  1896. 1862 6973 00
  1897. 1863 .section .text.VsCodecOpen,"ax",@progbits
  1898. 1864 .global VsCodecOpen
  1899. 1865 .type VsCodecOpen, @function
  1900. 1866 VsCodecOpen:
  1901. 1867 0000 EF92 push r14
  1902. 1868 0002 FF92 push r15
  1903. 1869 0004 0F93 push r16
  1904. 1870 0006 1F93 push r17
  1905. 1871 0008 CF93 push r28
  1906. 1872 000a DF93 push r29
  1907. 1873 000c 00D0 rcall .
  1908. 1874 000e 1F92 push __zero_reg__
  1909. 1875 0010 CDB7 in r28,__SP_L__
  1910. 1876 0012 DEB7 in r29,__SP_H__
  1911. 1877 /* prologue: function */
  1912. 1878 /* frame size = 4 */
  1913. 1879 /* stack size = 10 */
  1914. 1880 .L__stack_usage = 10
  1915. GAS LISTING /tmp/cclioYfa.s page 34
  1916. 1881 0014 7C01 movw r14,r24
  1917. 1882 0016 CB01 movw r24,r22
  1918. 1883 0018 40FF sbrs r20,0
  1919. 1884 001a 00C0 rjmp .L189
  1920. 1885 001c 81E0 ldi r24,lo8(1)
  1921. 1886 001e 90E0 ldi r25,0
  1922. 1887 0020 A0E0 ldi r26,0
  1923. 1888 0022 B0E0 ldi r27,0
  1924. 1889 0024 8983 std Y+1,r24
  1925. 1890 0026 9A83 std Y+2,r25
  1926. 1891 0028 AB83 std Y+3,r26
  1927. 1892 002a BC83 std Y+4,r27
  1928. 1893 002c AE01 movw r20,r28
  1929. 1894 002e 4F5F subi r20,-1
  1930. 1895 0030 5F4F sbci r21,-1
  1931. 1896 0032 61E3 ldi r22,lo8(49)
  1932. 1897 0034 70E3 ldi r23,lo8(48)
  1933. 1898 0036 C701 movw r24,r14
  1934. 1899 0038 0E94 0000 call VsCodecIOCtl
  1935. 1900 003c 892B or r24,r25
  1936. 1901 003e 01F0 breq .L192
  1937. 1902 0040 80E0 ldi r24,0
  1938. 1903 0042 90E0 ldi r25,0
  1939. 1904 0044 00C0 rjmp .L191
  1940. 1905 .L189:
  1941. 1906 0046 F701 movw r30,r14
  1942. 1907 0048 0189 ldd r16,Z+17
  1943. 1908 004a 1289 ldd r17,Z+18
  1944. 1909 004c 60E0 ldi r22,lo8(.LC0)
  1945. 1910 004e 70E0 ldi r23,hi8(.LC0)
  1946. 1911 0050 0E94 0000 call strcmp
  1947. 1912 0054 892B or r24,r25
  1948. 1913 0056 01F4 brne .L193
  1949. 1914 0058 80E0 ldi r24,0
  1950. 1915 005a 91E0 ldi r25,lo8(1)
  1951. 1916 005c A0E0 ldi r26,0
  1952. 1917 005e B0E0 ldi r27,0
  1953. 1918 0060 00C0 rjmp .L201
  1954. 1919 .L193:
  1955. 1920 0062 88E0 ldi r24,lo8(8)
  1956. 1921 0064 90E0 ldi r25,0
  1957. 1922 0066 A0E0 ldi r26,0
  1958. 1923 0068 B0E0 ldi r27,0
  1959. 1924 .L201:
  1960. 1925 006a F801 movw r30,r16
  1961. 1926 006c 87AB std Z+55,r24
  1962. 1927 006e 90AF std Z+56,r25
  1963. 1928 0070 A1AF std Z+57,r26
  1964. 1929 0072 B2AF std Z+58,r27
  1965. 1930 .L192:
  1966. 1931 0074 84E0 ldi r24,lo8(4)
  1967. 1932 0076 90E0 ldi r25,0
  1968. 1933 0078 0E94 0000 call malloc
  1969. 1934 007c 8C01 movw r16,r24
  1970. 1935 007e 0097 sbiw r24,0
  1971. 1936 0080 01F0 breq .L194
  1972. 1937 0082 FC01 movw r30,r24
  1973. GAS LISTING /tmp/cclioYfa.s page 35
  1974. 1938 0084 F182 std Z+1,r15
  1975. 1939 0086 E082 st Z,r14
  1976. 1940 0088 1382 std Z+3,__zero_reg__
  1977. 1941 008a 1282 std Z+2,__zero_reg__
  1978. 1942 .L194:
  1979. 1943 008c 0E94 0000 call NutSegBufReset
  1980. 1944 0090 C801 movw r24,r16
  1981. 1945 .L191:
  1982. 1946 /* epilogue start */
  1983. 1947 0092 0F90 pop __tmp_reg__
  1984. 1948 0094 0F90 pop __tmp_reg__
  1985. 1949 0096 0F90 pop __tmp_reg__
  1986. 1950 0098 0F90 pop __tmp_reg__
  1987. 1951 009a DF91 pop r29
  1988. 1952 009c CF91 pop r28
  1989. 1953 009e 1F91 pop r17
  1990. 1954 00a0 0F91 pop r16
  1991. 1955 00a2 FF90 pop r15
  1992. 1956 00a4 EF90 pop r14
  1993. 1957 00a6 0895 ret
  1994. 1958 .size VsCodecOpen, .-VsCodecOpen
  1995. 1959 .section .text.VsCodecClose,"ax",@progbits
  1996. 1960 .global VsCodecClose
  1997. 1961 .type VsCodecClose, @function
  1998. 1962 VsCodecClose:
  1999. 1963 0000 0F93 push r16
  2000. 1964 0002 1F93 push r17
  2001. 1965 0004 CF93 push r28
  2002. 1966 0006 DF93 push r29
  2003. 1967 /* prologue: function */
  2004. 1968 /* frame size = 0 */
  2005. 1969 /* stack size = 4 */
  2006. 1970 .L__stack_usage = 4
  2007. 1971 0008 EC01 movw r28,r24
  2008. 1972 000a 8881 ld r24,Y
  2009. 1973 000c 9981 ldd r25,Y+1
  2010. 1974 000e DC01 movw r26,r24
  2011. 1975 0010 5196 adiw r26,17
  2012. 1976 0012 ED91 ld r30,X+
  2013. 1977 0014 FC91 ld r31,X
  2014. 1978 0016 5297 sbiw r26,17+1
  2015. 1979 0018 448D ldd r20,Z+28
  2016. 1980 001a 558D ldd r21,Z+29
  2017. 1981 001c 668D ldd r22,Z+30
  2018. 1982 001e 778D ldd r23,Z+31
  2019. 1983 0020 0E94 0000 call VsDecoderBufferFlush
  2020. 1984 0024 8C01 movw r16,r24
  2021. 1985 0026 2097 sbiw r28,0
  2022. 1986 0028 01F0 breq .L203
  2023. 1987 002a CE01 movw r24,r28
  2024. 1988 002c 0E94 0000 call free
  2025. 1989 .L203:
  2026. 1990 0030 C801 movw r24,r16
  2027. 1991 /* epilogue start */
  2028. 1992 0032 DF91 pop r29
  2029. 1993 0034 CF91 pop r28
  2030. 1994 0036 1F91 pop r17
  2031. GAS LISTING /tmp/cclioYfa.s page 36
  2032. 1995 0038 0F91 pop r16
  2033. 1996 003a 0895 ret
  2034. 1997 .size VsCodecClose, .-VsCodecClose
  2035. 1998 .section .rodata
  2036. 1999 .type off.2732, @object
  2037. 2000 .size off.2732, 8
  2038. 2001 off.2732:
  2039. 2002 0000 45 .byte 69
  2040. 2003 0001 78 .byte 120
  2041. 2004 0002 69 .byte 105
  2042. 2005 0003 74 .byte 116
  2043. 2006 0004 00 .byte 0
  2044. 2007 0005 00 .byte 0
  2045. 2008 0006 00 .byte 0
  2046. 2009 0007 00 .byte 0
  2047. 2010 .local mode.2734
  2048. 2011 .comm mode.2734,2,1
  2049. 2012 .data
  2050. 2013 .type on.2731, @object
  2051. 2014 .size on.2731, 8
  2052. 2015 on.2731:
  2053. 2016 0000 53 .byte 83
  2054. 2017 0001 EF .byte -17
  2055. 2018 0002 6E .byte 110
  2056. 2019 0003 3F .byte 63
  2057. 2020 0004 00 .byte 0
  2058. 2021 0005 00 .byte 0
  2059. 2022 0006 00 .byte 0
  2060. 2023 0007 00 .byte 0
  2061. 2024 .section .rodata
  2062. 2025 .type ftab.2733, @object
  2063. 2026 .size ftab.2733, 16
  2064. 2027 ftab.2733:
  2065. 2028 0008 44AC .word -21436
  2066. 2029 000a 80BB .word -17536
  2067. 2030 000c 007D .word 32000
  2068. 2031 000e 2256 .word 22050
  2069. 2032 0010 C05D .word 24000
  2070. 2033 0012 803E .word 16000
  2071. 2034 0014 112B .word 11025
  2072. 2035 0016 E02E .word 12000
  2073. 2036 .comm zero_chunk,32,1
  2074. 2037 .ident "GCC: (GNU) 5.3.0"
  2075. 2038 .global __do_copy_data
  2076. 2039 .global __do_clear_bss
  2077. GAS LISTING /tmp/cclioYfa.s page 37
  2078. DEFINED SYMBOLS
  2079. *ABS*:0000000000000000 spi_vscodec.c
  2080. /tmp/cclioYfa.s:2 *ABS*:000000000000003e __SP_H__
  2081. /tmp/cclioYfa.s:3 *ABS*:000000000000003d __SP_L__
  2082. /tmp/cclioYfa.s:4 *ABS*:000000000000003f __SREG__
  2083. /tmp/cclioYfa.s:5 *ABS*:000000000000003b __RAMPZ__
  2084. /tmp/cclioYfa.s:6 *ABS*:0000000000000000 __tmp_reg__
  2085. /tmp/cclioYfa.s:7 *ABS*:0000000000000001 __zero_reg__
  2086. /tmp/cclioYfa.s:11 .text.VsCodecWaitReady:0000000000000000 VsCodecWaitReady
  2087. /tmp/cclioYfa.s:65 .text.VsCodecReg:0000000000000000 VsCodecReg
  2088. /tmp/cclioYfa.s:120 .text.VsCodecMode:0000000000000000 VsCodecMode
  2089. /tmp/cclioYfa.s:180 .text.VsDecoderSetVolume:0000000000000000 VsDecoderSetVolume
  2090. /tmp/cclioYfa.s:261 .text.VsDecoderSetBass:0000000000000000 VsDecoderSetBass
  2091. /tmp/cclioYfa.s:273 .text.VsCodecBeep:0000000000000000 VsCodecBeep
  2092. /tmp/cclioYfa.s:2015 .data:0000000000000000 on.2731
  2093. /tmp/cclioYfa.s:2027 .rodata:0000000000000008 ftab.2733
  2094. .bss:0000000000000000 mode.2734
  2095. /tmp/cclioYfa.s:2001 .rodata:0000000000000000 off.2732
  2096. /tmp/cclioYfa.s:537 .text.VsDecoderBufferInit:0000000000000000 VsDecoderBufferInit
  2097. /tmp/cclioYfa.s:596 .text.FeederThread:0000000000000000 FeederThread
  2098. /tmp/cclioYfa.s:897 .text.VsCodecIOCtl:0000000000000000 VsCodecIOCtl
  2099. /tmp/cclioYfa.s:1502 .text.VsDecoderBufferFlush:0000000000000000 VsDecoderBufferFlush
  2100. /tmp/cclioYfa.s:1573 .text.VsCodecRead:0000000000000000 VsCodecRead
  2101. /tmp/cclioYfa.s:1727 .text.VsCodecWrite:0000000000000000 VsCodecWrite
  2102. /tmp/cclioYfa.s:1851 .text.VsCodecWrite_P:0000000000000000 VsCodecWrite_P
  2103. /tmp/cclioYfa.s:1866 .text.VsCodecOpen:0000000000000000 VsCodecOpen
  2104. /tmp/cclioYfa.s:1962 .text.VsCodecClose:0000000000000000 VsCodecClose
  2105. *COM*:0000000000000020 zero_chunk
  2106. UNDEFINED SYMBOLS
  2107. NutEventWait
  2108. NutSleep
  2109. __udivmodsi4
  2110. __mulsi3
  2111. NutSegBufInit
  2112. NutSegBufAvailable
  2113. NutThreadSetPriority
  2114. NutSegBufUsed
  2115. NutSegBufReset
  2116. NutSegBufReadRequest
  2117. NutSegBufReadLast
  2118. NutEventPost
  2119. NutSegBufWriteRequest
  2120. memcpy
  2121. NutSegBufWriteLast
  2122. strcmp
  2123. malloc
  2124. free
  2125. __do_copy_data
  2126. __do_clear_bss