pnutfs.lst 86 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549
  1. GAS LISTING /tmp/ccr7450G.s page 1
  2. 1 .file "pnutfs.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.PnutFileWrite_P,"ax",@progbits
  10. 9 .type PnutFileWrite_P, @function
  11. 10 PnutFileWrite_P:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 8FEF ldi r24,lo8(-1)
  17. 16 0002 9FEF ldi r25,lo8(-1)
  18. 17 0004 0895 ret
  19. 18 .size PnutFileWrite_P, .-PnutFileWrite_P
  20. 19 .section .text.BankSelect,"ax",@progbits
  21. 20 .global BankSelect
  22. 21 .type BankSelect, @function
  23. 22 BankSelect:
  24. 23 /* prologue: function */
  25. 24 /* frame size = 0 */
  26. 25 /* stack size = 0 */
  27. 26 .L__stack_usage = 0
  28. 27 0000 97FD sbrc r25,7
  29. 28 0002 4F96 adiw r24,31
  30. 29 .L3:
  31. 30 0004 25E0 ldi r18,5
  32. 31 1:
  33. 32 0006 9595 asr r25
  34. 33 0008 8795 ror r24
  35. 34 000a 2A95 dec r18
  36. 35 000c 01F4 brne 1b
  37. 36 000e FC01 movw r30,r24
  38. 37 0010 3197 sbiw r30,1
  39. 38 0012 8083 st Z,r24
  40. 39 0014 0895 ret
  41. 40 .size BankSelect, .-BankSelect
  42. 41 .section .text.BankNodePointer,"ax",@progbits
  43. 42 .global BankNodePointer
  44. 43 .type BankNodePointer, @function
  45. 44 BankNodePointer:
  46. 45 0000 CF93 push r28
  47. 46 0002 DF93 push r29
  48. 47 /* prologue: function */
  49. 48 /* frame size = 0 */
  50. 49 /* stack size = 2 */
  51. 50 .L__stack_usage = 2
  52. 51 0004 EC01 movw r28,r24
  53. 52 0006 97FD sbrc r25,7
  54. 53 0008 00C0 rjmp .L7
  55. 54 000a 0E94 0000 call BankSelect
  56. 55 000e CE01 movw r24,r28
  57. 56 0010 8F71 andi r24,31
  58. 57 0012 9927 clr r25
  59. GAS LISTING /tmp/ccr7450G.s page 2
  60. 58 0014 982F mov r25,r24
  61. 59 0016 8827 clr r24
  62. 60 0018 990F lsl r25
  63. 61 001a 9058 subi r25,-128
  64. 62 001c 00C0 rjmp .L6
  65. 63 .L7:
  66. 64 001e 80E0 ldi r24,0
  67. 65 0020 90E0 ldi r25,0
  68. 66 .L6:
  69. 67 /* epilogue start */
  70. 68 0022 DF91 pop r29
  71. 69 0024 CF91 pop r28
  72. 70 0026 0895 ret
  73. 71 .size BankNodePointer, .-BankNodePointer
  74. 72 .section .text.PnutBlockAlloc,"ax",@progbits
  75. 73 .type PnutBlockAlloc, @function
  76. 74 PnutBlockAlloc:
  77. 75 0000 CF93 push r28
  78. 76 0002 DF93 push r29
  79. 77 /* prologue: function */
  80. 78 /* frame size = 0 */
  81. 79 /* stack size = 2 */
  82. 80 .L__stack_usage = 2
  83. 81 0004 C091 0000 lds r28,blockFreeList
  84. 82 0008 D091 0000 lds r29,blockFreeList+1
  85. 83 000c D7FD sbrc r29,7
  86. 84 000e 00C0 rjmp .L9
  87. 85 0010 CE01 movw r24,r28
  88. 86 0012 0E94 0000 call BankNodePointer
  89. 87 0016 FC01 movw r30,r24
  90. 88 0018 2081 ld r18,Z
  91. 89 001a 3181 ldd r19,Z+1
  92. 90 001c 3093 0000 sts blockFreeList+1,r19
  93. 91 0020 2093 0000 sts blockFreeList,r18
  94. 92 0024 20E0 ldi r18,0
  95. 93 0026 32E0 ldi r19,lo8(2)
  96. 94 0028 A901 movw r20,r18
  97. 95 0:
  98. 96 002a 1192 st Z+,__zero_reg__
  99. 97 002c 4150 subi r20,1
  100. 98 002e 5040 sbci r21,0
  101. 99 0030 01F4 brne 0b
  102. 100 .L9:
  103. 101 0032 CE01 movw r24,r28
  104. 102 /* epilogue start */
  105. 103 0034 DF91 pop r29
  106. 104 0036 CF91 pop r28
  107. 105 0038 0895 ret
  108. 106 .size PnutBlockAlloc, .-PnutBlockAlloc
  109. 107 .section .text.PnutNodeGetDataPtr,"ax",@progbits
  110. 108 .type PnutNodeGetDataPtr, @function
  111. 109 PnutNodeGetDataPtr:
  112. 110 0000 4F92 push r4
  113. 111 0002 5F92 push r5
  114. 112 0004 6F92 push r6
  115. 113 0006 7F92 push r7
  116. 114 0008 8F92 push r8
  117. GAS LISTING /tmp/ccr7450G.s page 3
  118. 115 000a 9F92 push r9
  119. 116 000c AF92 push r10
  120. 117 000e BF92 push r11
  121. 118 0010 CF92 push r12
  122. 119 0012 DF92 push r13
  123. 120 0014 EF92 push r14
  124. 121 0016 FF92 push r15
  125. 122 0018 0F93 push r16
  126. 123 001a 1F93 push r17
  127. 124 001c CF93 push r28
  128. 125 001e DF93 push r29
  129. 126 0020 00D0 rcall .
  130. 127 0022 1F92 push __zero_reg__
  131. 128 0024 CDB7 in r28,__SP_L__
  132. 129 0026 DEB7 in r29,__SP_H__
  133. 130 /* prologue: function */
  134. 131 /* frame size = 4 */
  135. 132 /* stack size = 20 */
  136. 133 .L__stack_usage = 20
  137. 134 0028 5C01 movw r10,r24
  138. 135 002a 4901 movw r8,r18
  139. 136 002c F901 movw r30,r18
  140. 137 002e 1182 std Z+1,__zero_reg__
  141. 138 0030 1082 st Z,__zero_reg__
  142. 139 0032 F801 movw r30,r16
  143. 140 0034 1182 std Z+1,__zero_reg__
  144. 141 0036 1082 st Z,__zero_reg__
  145. 142 0038 2A01 movw r4,r20
  146. 143 003a 3B01 movw r6,r22
  147. 144 003c 39E0 ldi r19,9
  148. 145 1:
  149. 146 003e 7694 lsr r7
  150. 147 0040 6794 ror r6
  151. 148 0042 5794 ror r5
  152. 149 0044 4794 ror r4
  153. 150 0046 3A95 dec r19
  154. 151 0048 01F4 brne 1b
  155. 152 004a FAEF ldi r31,-6
  156. 153 004c 4F16 cp r4,r31
  157. 154 004e 5104 cpc r5,__zero_reg__
  158. 155 0050 04F0 brlt .+2
  159. 156 0052 00C0 rjmp .L15
  160. 157 0054 4983 std Y+1,r20
  161. 158 0056 5A83 std Y+2,r21
  162. 159 0058 6B83 std Y+3,r22
  163. 160 005a 7C83 std Y+4,r23
  164. 161 005c 0E94 0000 call BankNodePointer
  165. 162 0060 26E0 ldi r18,6
  166. 163 0062 420E add r4,r18
  167. 164 0064 511C adc r5,__zero_reg__
  168. 165 0066 440C lsl r4
  169. 166 0068 551C rol r5
  170. 167 006a 840D add r24,r4
  171. 168 006c 951D adc r25,r5
  172. 169 006e FC01 movw r30,r24
  173. 170 0070 C080 ld r12,Z
  174. 171 0072 D180 ldd r13,Z+1
  175. GAS LISTING /tmp/ccr7450G.s page 4
  176. 172 0074 4981 ldd r20,Y+1
  177. 173 0076 5A81 ldd r21,Y+2
  178. 174 0078 6B81 ldd r22,Y+3
  179. 175 007a 7C81 ldd r23,Y+4
  180. 176 007c D7FE sbrs r13,7
  181. 177 007e 00C0 rjmp .L12
  182. 178 0080 EF28 or r14,r15
  183. 179 0082 01F0 breq .L15
  184. 180 0084 0E94 0000 call PnutBlockAlloc
  185. 181 0088 6C01 movw r12,r24
  186. 182 008a 97FD sbrc r25,7
  187. 183 008c 00C0 rjmp .L16
  188. 184 008e C501 movw r24,r10
  189. 185 0090 0E94 0000 call BankNodePointer
  190. 186 0094 840D add r24,r4
  191. 187 0096 951D adc r25,r5
  192. 188 0098 FC01 movw r30,r24
  193. 189 009a D182 std Z+1,r13
  194. 190 009c C082 st Z,r12
  195. 191 009e 4981 ldd r20,Y+1
  196. 192 00a0 5A81 ldd r21,Y+2
  197. 193 00a2 6B81 ldd r22,Y+3
  198. 194 00a4 7C81 ldd r23,Y+4
  199. 195 .L12:
  200. 196 00a6 C601 movw r24,r12
  201. 197 00a8 4983 std Y+1,r20
  202. 198 00aa 5A83 std Y+2,r21
  203. 199 00ac 6B83 std Y+3,r22
  204. 200 00ae 7C83 std Y+4,r23
  205. 201 00b0 0E94 0000 call BankNodePointer
  206. 202 00b4 4981 ldd r20,Y+1
  207. 203 00b6 5A81 ldd r21,Y+2
  208. 204 00b8 5170 andi r21,1
  209. 205 00ba 840F add r24,r20
  210. 206 00bc 951F adc r25,r21
  211. 207 00be F401 movw r30,r8
  212. 208 00c0 9183 std Z+1,r25
  213. 209 00c2 8083 st Z,r24
  214. 210 00c4 80E0 ldi r24,0
  215. 211 00c6 92E0 ldi r25,lo8(2)
  216. 212 00c8 841B sub r24,r20
  217. 213 00ca 950B sbc r25,r21
  218. 214 00cc F801 movw r30,r16
  219. 215 00ce 9183 std Z+1,r25
  220. 216 00d0 8083 st Z,r24
  221. 217 00d2 80E0 ldi r24,0
  222. 218 00d4 90E0 ldi r25,0
  223. 219 00d6 00C0 rjmp .L17
  224. 220 .L15:
  225. 221 00d8 86E1 ldi r24,lo8(22)
  226. 222 00da 90E0 ldi r25,0
  227. 223 00dc 00C0 rjmp .L17
  228. 224 .L16:
  229. 225 00de 8CE1 ldi r24,lo8(28)
  230. 226 00e0 90E0 ldi r25,0
  231. 227 .L17:
  232. 228 /* epilogue start */
  233. GAS LISTING /tmp/ccr7450G.s page 5
  234. 229 00e2 0F90 pop __tmp_reg__
  235. 230 00e4 0F90 pop __tmp_reg__
  236. 231 00e6 0F90 pop __tmp_reg__
  237. 232 00e8 0F90 pop __tmp_reg__
  238. 233 00ea DF91 pop r29
  239. 234 00ec CF91 pop r28
  240. 235 00ee 1F91 pop r17
  241. 236 00f0 0F91 pop r16
  242. 237 00f2 FF90 pop r15
  243. 238 00f4 EF90 pop r14
  244. 239 00f6 DF90 pop r13
  245. 240 00f8 CF90 pop r12
  246. 241 00fa BF90 pop r11
  247. 242 00fc AF90 pop r10
  248. 243 00fe 9F90 pop r9
  249. 244 0100 8F90 pop r8
  250. 245 0102 7F90 pop r7
  251. 246 0104 6F90 pop r6
  252. 247 0106 5F90 pop r5
  253. 248 0108 4F90 pop r4
  254. 249 010a 0895 ret
  255. 250 .size PnutNodeGetDataPtr, .-PnutNodeGetDataPtr
  256. 251 .section .text.PnutDirFindEntry,"ax",@progbits
  257. 252 .type PnutDirFindEntry, @function
  258. 253 PnutDirFindEntry:
  259. 254 0000 2F92 push r2
  260. 255 0002 3F92 push r3
  261. 256 0004 4F92 push r4
  262. 257 0006 5F92 push r5
  263. 258 0008 6F92 push r6
  264. 259 000a 7F92 push r7
  265. 260 000c 8F92 push r8
  266. 261 000e 9F92 push r9
  267. 262 0010 AF92 push r10
  268. 263 0012 BF92 push r11
  269. 264 0014 CF92 push r12
  270. 265 0016 DF92 push r13
  271. 266 0018 EF92 push r14
  272. 267 001a FF92 push r15
  273. 268 001c 0F93 push r16
  274. 269 001e 1F93 push r17
  275. 270 0020 CF93 push r28
  276. 271 0022 DF93 push r29
  277. 272 0024 00D0 rcall .
  278. 273 0026 1F92 push __zero_reg__
  279. 274 0028 CDB7 in r28,__SP_L__
  280. 275 002a DEB7 in r29,__SP_H__
  281. 276 /* prologue: function */
  282. 277 /* frame size = 4 */
  283. 278 /* stack size = 22 */
  284. 279 .L__stack_usage = 22
  285. 280 002c 6C01 movw r12,r24
  286. 281 002e 3B01 movw r6,r22
  287. 282 0030 5A01 movw r10,r20
  288. 283 0032 4901 movw r8,r18
  289. 284 0034 212C mov r2,__zero_reg__
  290. 285 0036 312C mov r3,__zero_reg__
  291. GAS LISTING /tmp/ccr7450G.s page 6
  292. 286 0038 2101 movw r4,r2
  293. 287 .L19:
  294. 288 003a C601 movw r24,r12
  295. 289 003c 0E94 0000 call BankNodePointer
  296. 290 0040 FC01 movw r30,r24
  297. 291 0042 8481 ldd r24,Z+4
  298. 292 0044 9581 ldd r25,Z+5
  299. 293 0046 A681 ldd r26,Z+6
  300. 294 0048 B781 ldd r27,Z+7
  301. 295 004a 2816 cp r2,r24
  302. 296 004c 3906 cpc r3,r25
  303. 297 004e 4A06 cpc r4,r26
  304. 298 0050 5B06 cpc r5,r27
  305. 299 0052 00F0 brlo .+2
  306. 300 0054 00C0 rjmp .L30
  307. 301 0056 D401 movw r26,r8
  308. 302 0058 8D91 ld r24,X+
  309. 303 005a 9C91 ld r25,X
  310. 304 005c 9A83 std Y+2,r25
  311. 305 005e 8983 std Y+1,r24
  312. 306 0060 E12C mov r14,__zero_reg__
  313. 307 0062 F12C mov r15,__zero_reg__
  314. 308 0064 8E01 movw r16,r28
  315. 309 0066 0D5F subi r16,-3
  316. 310 0068 1F4F sbci r17,-1
  317. 311 006a 9E01 movw r18,r28
  318. 312 006c 2F5F subi r18,-1
  319. 313 006e 3F4F sbci r19,-1
  320. 314 0070 B201 movw r22,r4
  321. 315 0072 A101 movw r20,r2
  322. 316 0074 C601 movw r24,r12
  323. 317 0076 0E94 0000 call PnutNodeGetDataPtr
  324. 318 007a 892B or r24,r25
  325. 319 007c 01F4 brne .L30
  326. 320 007e 2B81 ldd r18,Y+3
  327. 321 0080 3C81 ldd r19,Y+4
  328. 322 0082 2115 cp r18,__zero_reg__
  329. 323 0084 3105 cpc r19,__zero_reg__
  330. 324 0086 01F0 breq .L30
  331. 325 0088 E981 ldd r30,Y+1
  332. 326 008a FA81 ldd r31,Y+2
  333. 327 008c D401 movw r26,r8
  334. 328 008e ED93 st X+,r30
  335. 329 0090 FC93 st X,r31
  336. 330 0092 2032 cpi r18,32
  337. 331 0094 3105 cpc r19,__zero_reg__
  338. 332 0096 00F0 brlo .L21
  339. 333 0098 2281 ldd r18,Z+2
  340. 334 009a 2223 tst r18
  341. 335 009c 01F0 breq .L21
  342. 336 009e CF01 movw r24,r30
  343. 337 00a0 0396 adiw r24,3
  344. 338 00a2 FC01 movw r30,r24
  345. 339 0:
  346. 340 00a4 0190 ld __tmp_reg__,Z+
  347. 341 00a6 0020 tst __tmp_reg__
  348. 342 00a8 01F4 brne 0b
  349. GAS LISTING /tmp/ccr7450G.s page 7
  350. 343 00aa 3197 sbiw r30,1
  351. 344 00ac E81B sub r30,r24
  352. 345 00ae F90B sbc r31,r25
  353. 346 00b0 EA15 cp r30,r10
  354. 347 00b2 FB05 cpc r31,r11
  355. 348 00b4 01F4 brne .L21
  356. 349 00b6 A501 movw r20,r10
  357. 350 00b8 B301 movw r22,r6
  358. 351 00ba 0E94 0000 call strncmp
  359. 352 00be 892B or r24,r25
  360. 353 00c0 01F0 breq .L26
  361. 354 .L21:
  362. 355 00c2 B0E2 ldi r27,32
  363. 356 00c4 2B0E add r2,r27
  364. 357 00c6 311C adc r3,__zero_reg__
  365. 358 00c8 411C adc r4,__zero_reg__
  366. 359 00ca 511C adc r5,__zero_reg__
  367. 360 00cc 00C0 rjmp .L19
  368. 361 .L26:
  369. 362 00ce 80E0 ldi r24,0
  370. 363 00d0 90E0 ldi r25,0
  371. 364 00d2 00C0 rjmp .L22
  372. 365 .L30:
  373. 366 00d4 82E0 ldi r24,lo8(2)
  374. 367 00d6 90E0 ldi r25,0
  375. 368 .L22:
  376. 369 /* epilogue start */
  377. 370 00d8 0F90 pop __tmp_reg__
  378. 371 00da 0F90 pop __tmp_reg__
  379. 372 00dc 0F90 pop __tmp_reg__
  380. 373 00de 0F90 pop __tmp_reg__
  381. 374 00e0 DF91 pop r29
  382. 375 00e2 CF91 pop r28
  383. 376 00e4 1F91 pop r17
  384. 377 00e6 0F91 pop r16
  385. 378 00e8 FF90 pop r15
  386. 379 00ea EF90 pop r14
  387. 380 00ec DF90 pop r13
  388. 381 00ee CF90 pop r12
  389. 382 00f0 BF90 pop r11
  390. 383 00f2 AF90 pop r10
  391. 384 00f4 9F90 pop r9
  392. 385 00f6 8F90 pop r8
  393. 386 00f8 7F90 pop r7
  394. 387 00fa 6F90 pop r6
  395. 388 00fc 5F90 pop r5
  396. 389 00fe 4F90 pop r4
  397. 390 0100 3F90 pop r3
  398. 391 0102 2F90 pop r2
  399. 392 0104 0895 ret
  400. 393 .size PnutDirFindEntry, .-PnutDirFindEntry
  401. 394 .section .rodata.str1.1,"aMS",@progbits,1
  402. 395 .LC0:
  403. 396 0000 2E00 .string "."
  404. 397 .section .text.PnutDirFindPath,"ax",@progbits
  405. 398 .type PnutDirFindPath, @function
  406. 399 PnutDirFindPath:
  407. GAS LISTING /tmp/ccr7450G.s page 8
  408. 400 0000 8F92 push r8
  409. 401 0002 9F92 push r9
  410. 402 0004 AF92 push r10
  411. 403 0006 BF92 push r11
  412. 404 0008 CF92 push r12
  413. 405 000a DF92 push r13
  414. 406 000c EF92 push r14
  415. 407 000e FF92 push r15
  416. 408 0010 0F93 push r16
  417. 409 0012 1F93 push r17
  418. 410 0014 CF93 push r28
  419. 411 0016 DF93 push r29
  420. 412 0018 1F92 push __zero_reg__
  421. 413 001a 1F92 push __zero_reg__
  422. 414 001c CDB7 in r28,__SP_L__
  423. 415 001e DEB7 in r29,__SP_H__
  424. 416 /* prologue: function */
  425. 417 /* frame size = 2 */
  426. 418 /* stack size = 14 */
  427. 419 .L__stack_usage = 14
  428. 420 0020 5C01 movw r10,r24
  429. 421 0022 7A01 movw r14,r20
  430. 422 0024 1A82 std Y+2,__zero_reg__
  431. 423 0026 1982 std Y+1,__zero_reg__
  432. 424 0028 FA01 movw r30,r20
  433. 425 002a 9383 std Z+3,r25
  434. 426 002c 8283 std Z+2,r24
  435. 427 002e 8FEF ldi r24,lo8(-1)
  436. 428 0030 9FEF ldi r25,lo8(-1)
  437. 429 0032 9183 std Z+1,r25
  438. 430 0034 8083 st Z,r24
  439. 431 0036 1582 std Z+5,__zero_reg__
  440. 432 0038 1482 std Z+4,__zero_reg__
  441. 433 003a CB01 movw r24,r22
  442. 434 .L32:
  443. 435 003c 8C01 movw r16,r24
  444. 436 003e FC01 movw r30,r24
  445. 437 0040 2081 ld r18,Z
  446. 438 0042 0196 adiw r24,1
  447. 439 0044 2F32 cpi r18,lo8(47)
  448. 440 0046 01F0 breq .L32
  449. 441 0048 2111 cpse r18,__zero_reg__
  450. 442 004a 00C0 rjmp .L39
  451. 443 004c 00E0 ldi r16,lo8(.LC0)
  452. 444 004e 10E0 ldi r17,hi8(.LC0)
  453. 445 0050 00C0 rjmp .L39
  454. 446 .L40:
  455. 447 0052 C501 movw r24,r10
  456. 448 0054 0E94 0000 call BankNodePointer
  457. 449 0058 FC01 movw r30,r24
  458. 450 005a 8081 ld r24,Z
  459. 451 005c 8130 cpi r24,lo8(1)
  460. 452 005e 01F4 brne .L43
  461. 453 0060 F801 movw r30,r16
  462. 454 .L36:
  463. 455 0062 4F01 movw r8,r30
  464. 456 0064 6F01 movw r12,r30
  465. GAS LISTING /tmp/ccr7450G.s page 9
  466. 457 0066 C01A sub r12,r16
  467. 458 0068 D10A sbc r13,r17
  468. 459 006a 8191 ld r24,Z+
  469. 460 006c 8823 tst r24
  470. 461 006e 01F0 breq .L35
  471. 462 0070 8F32 cpi r24,lo8(47)
  472. 463 0072 01F4 brne .L36
  473. 464 .L42:
  474. 465 0074 9E01 movw r18,r28
  475. 466 0076 2F5F subi r18,-1
  476. 467 0078 3F4F sbci r19,-1
  477. 468 007a A601 movw r20,r12
  478. 469 007c B801 movw r22,r16
  479. 470 007e C501 movw r24,r10
  480. 471 0080 0E94 0000 call PnutDirFindEntry
  481. 472 0084 892B or r24,r25
  482. 473 0086 01F4 brne .L44
  483. 474 0088 E981 ldd r30,Y+1
  484. 475 008a FA81 ldd r31,Y+2
  485. 476 008c A080 ld r10,Z
  486. 477 008e B180 ldd r11,Z+1
  487. 478 0090 F701 movw r30,r14
  488. 479 0092 B182 std Z+1,r11
  489. 480 0094 A082 st Z,r10
  490. 481 0096 F401 movw r30,r8
  491. 482 0098 8081 ld r24,Z
  492. 483 009a 8823 tst r24
  493. 484 009c 01F0 breq .L41
  494. 485 009e F701 movw r30,r14
  495. 486 00a0 B382 std Z+3,r11
  496. 487 00a2 A282 std Z+2,r10
  497. 488 00a4 C00E add r12,r16
  498. 489 00a6 D11E adc r13,r17
  499. 490 .L38:
  500. 491 00a8 8601 movw r16,r12
  501. 492 00aa FFEF ldi r31,-1
  502. 493 00ac CF1A sub r12,r31
  503. 494 00ae DF0A sbc r13,r31
  504. 495 00b0 F801 movw r30,r16
  505. 496 00b2 8081 ld r24,Z
  506. 497 00b4 8F32 cpi r24,lo8(47)
  507. 498 00b6 01F0 breq .L38
  508. 499 .L39:
  509. 500 00b8 F801 movw r30,r16
  510. 501 00ba 8081 ld r24,Z
  511. 502 00bc 8111 cpse r24,__zero_reg__
  512. 503 00be 00C0 rjmp .L40
  513. 504 .L41:
  514. 505 00c0 80E0 ldi r24,0
  515. 506 00c2 90E0 ldi r25,0
  516. 507 00c4 00C0 rjmp .L50
  517. 508 .L43:
  518. 509 00c6 84E1 ldi r24,lo8(20)
  519. 510 00c8 90E0 ldi r25,0
  520. 511 00ca 00C0 rjmp .L50
  521. 512 .L44:
  522. 513 00cc 82E0 ldi r24,lo8(2)
  523. GAS LISTING /tmp/ccr7450G.s page 10
  524. 514 00ce 90E0 ldi r25,0
  525. 515 00d0 00C0 rjmp .L50
  526. 516 .L35:
  527. 517 00d2 F701 movw r30,r14
  528. 518 00d4 1583 std Z+5,r17
  529. 519 00d6 0483 std Z+4,r16
  530. 520 00d8 00C0 rjmp .L42
  531. 521 .L50:
  532. 522 /* epilogue start */
  533. 523 00da 0F90 pop __tmp_reg__
  534. 524 00dc 0F90 pop __tmp_reg__
  535. 525 00de DF91 pop r29
  536. 526 00e0 CF91 pop r28
  537. 527 00e2 1F91 pop r17
  538. 528 00e4 0F91 pop r16
  539. 529 00e6 FF90 pop r15
  540. 530 00e8 EF90 pop r14
  541. 531 00ea DF90 pop r13
  542. 532 00ec CF90 pop r12
  543. 533 00ee BF90 pop r11
  544. 534 00f0 AF90 pop r10
  545. 535 00f2 9F90 pop r9
  546. 536 00f4 8F90 pop r8
  547. 537 00f6 0895 ret
  548. 538 .size PnutDirFindPath, .-PnutDirFindPath
  549. 539 .section .text.PnutNodeAlloc,"ax",@progbits
  550. 540 .type PnutNodeAlloc, @function
  551. 541 PnutNodeAlloc:
  552. 542 0000 FF92 push r15
  553. 543 0002 0F93 push r16
  554. 544 0004 1F93 push r17
  555. 545 0006 CF93 push r28
  556. 546 0008 DF93 push r29
  557. 547 /* prologue: function */
  558. 548 /* frame size = 0 */
  559. 549 /* stack size = 5 */
  560. 550 .L__stack_usage = 5
  561. 551 000a F82E mov r15,r24
  562. 552 000c 0E94 0000 call PnutBlockAlloc
  563. 553 0010 8C01 movw r16,r24
  564. 554 0012 97FD sbrc r25,7
  565. 555 0014 00C0 rjmp .L52
  566. 556 0016 0E94 0000 call BankNodePointer
  567. 557 001a EC01 movw r28,r24
  568. 558 001c FC01 movw r30,r24
  569. 559 001e 3C96 adiw r30,12
  570. 560 0020 9E5F subi r25,-2
  571. 561 0022 2FEF ldi r18,lo8(-1)
  572. 562 0024 3FEF ldi r19,lo8(-1)
  573. 563 .L53:
  574. 564 0026 2193 st Z+,r18
  575. 565 0028 3193 st Z+,r19
  576. 566 002a E817 cp r30,r24
  577. 567 002c F907 cpc r31,r25
  578. 568 002e 01F4 brne .L53
  579. 569 0030 F882 st Y,r15
  580. 570 0032 80E0 ldi r24,0
  581. GAS LISTING /tmp/ccr7450G.s page 11
  582. 571 0034 90E0 ldi r25,0
  583. 572 0036 0E94 0000 call time
  584. 573 003a 6887 std Y+8,r22
  585. 574 003c 7987 std Y+9,r23
  586. 575 003e 8A87 std Y+10,r24
  587. 576 0040 9B87 std Y+11,r25
  588. 577 .L52:
  589. 578 0042 C801 movw r24,r16
  590. 579 /* epilogue start */
  591. 580 0044 DF91 pop r29
  592. 581 0046 CF91 pop r28
  593. 582 0048 1F91 pop r17
  594. 583 004a 0F91 pop r16
  595. 584 004c FF90 pop r15
  596. 585 004e 0895 ret
  597. 586 .size PnutNodeAlloc, .-PnutNodeAlloc
  598. 587 .section .text.PnutDirAddEntry,"ax",@progbits
  599. 588 .type PnutDirAddEntry, @function
  600. 589 PnutDirAddEntry:
  601. 590 0000 4F92 push r4
  602. 591 0002 5F92 push r5
  603. 592 0004 6F92 push r6
  604. 593 0006 7F92 push r7
  605. 594 0008 8F92 push r8
  606. 595 000a 9F92 push r9
  607. 596 000c AF92 push r10
  608. 597 000e BF92 push r11
  609. 598 0010 CF92 push r12
  610. 599 0012 DF92 push r13
  611. 600 0014 EF92 push r14
  612. 601 0016 FF92 push r15
  613. 602 0018 0F93 push r16
  614. 603 001a 1F93 push r17
  615. 604 001c CF93 push r28
  616. 605 001e DF93 push r29
  617. 606 0020 00D0 rcall .
  618. 607 0022 1F92 push __zero_reg__
  619. 608 0024 CDB7 in r28,__SP_L__
  620. 609 0026 DEB7 in r29,__SP_H__
  621. 610 /* prologue: function */
  622. 611 /* frame size = 4 */
  623. 612 /* stack size = 20 */
  624. 613 .L__stack_usage = 20
  625. 614 0028 5C01 movw r10,r24
  626. 615 002a 4B01 movw r8,r22
  627. 616 002c 6A01 movw r12,r20
  628. 617 002e E0E0 ldi r30,0
  629. 618 0030 F0E0 ldi r31,0
  630. 619 0032 412C mov r4,__zero_reg__
  631. 620 0034 512C mov r5,__zero_reg__
  632. 621 0036 3201 movw r6,r4
  633. 622 .L59:
  634. 623 0038 FA83 std Y+2,r31
  635. 624 003a E983 std Y+1,r30
  636. 625 003c EE24 clr r14
  637. 626 003e E394 inc r14
  638. 627 0040 F12C mov r15,__zero_reg__
  639. GAS LISTING /tmp/ccr7450G.s page 12
  640. 628 0042 8E01 movw r16,r28
  641. 629 0044 0D5F subi r16,-3
  642. 630 0046 1F4F sbci r17,-1
  643. 631 0048 9E01 movw r18,r28
  644. 632 004a 2F5F subi r18,-1
  645. 633 004c 3F4F sbci r19,-1
  646. 634 004e B301 movw r22,r6
  647. 635 0050 A201 movw r20,r4
  648. 636 0052 C501 movw r24,r10
  649. 637 0054 0E94 0000 call PnutNodeGetDataPtr
  650. 638 0058 8C01 movw r16,r24
  651. 639 005a 892B or r24,r25
  652. 640 005c 01F4 brne .L56
  653. 641 005e E981 ldd r30,Y+1
  654. 642 0060 FA81 ldd r31,Y+2
  655. 643 0062 80E2 ldi r24,32
  656. 644 0064 480E add r4,r24
  657. 645 0066 511C adc r5,__zero_reg__
  658. 646 0068 611C adc r6,__zero_reg__
  659. 647 006a 711C adc r7,__zero_reg__
  660. 648 006c 8B81 ldd r24,Y+3
  661. 649 006e 9C81 ldd r25,Y+4
  662. 650 0070 8097 sbiw r24,32
  663. 651 0072 00F0 brlo .L59
  664. 652 0074 8281 ldd r24,Z+2
  665. 653 0076 8111 cpse r24,__zero_reg__
  666. 654 0078 00C0 rjmp .L59
  667. 655 007a D182 std Z+1,r13
  668. 656 007c C082 st Z,r12
  669. 657 007e 81E0 ldi r24,lo8(1)
  670. 658 0080 8283 std Z+2,r24
  671. 659 0082 B401 movw r22,r8
  672. 660 0084 CF01 movw r24,r30
  673. 661 0086 0396 adiw r24,3
  674. 662 0088 0E94 0000 call strcpy
  675. 663 008c C501 movw r24,r10
  676. 664 008e 0E94 0000 call BankNodePointer
  677. 665 0092 5C01 movw r10,r24
  678. 666 0094 80E0 ldi r24,0
  679. 667 0096 90E0 ldi r25,0
  680. 668 0098 0E94 0000 call time
  681. 669 009c F501 movw r30,r10
  682. 670 009e 6087 std Z+8,r22
  683. 671 00a0 7187 std Z+9,r23
  684. 672 00a2 8287 std Z+10,r24
  685. 673 00a4 9387 std Z+11,r25
  686. 674 00a6 8481 ldd r24,Z+4
  687. 675 00a8 9581 ldd r25,Z+5
  688. 676 00aa A681 ldd r26,Z+6
  689. 677 00ac B781 ldd r27,Z+7
  690. 678 00ae 8415 cp r24,r4
  691. 679 00b0 9505 cpc r25,r5
  692. 680 00b2 A605 cpc r26,r6
  693. 681 00b4 B705 cpc r27,r7
  694. 682 00b6 00F4 brsh .L58
  695. 683 00b8 4482 std Z+4,r4
  696. 684 00ba 5582 std Z+5,r5
  697. GAS LISTING /tmp/ccr7450G.s page 13
  698. 685 00bc 6682 std Z+6,r6
  699. 686 00be 7782 std Z+7,r7
  700. 687 .L58:
  701. 688 00c0 C601 movw r24,r12
  702. 689 00c2 0E94 0000 call BankNodePointer
  703. 690 00c6 FC01 movw r30,r24
  704. 691 00c8 2281 ldd r18,Z+2
  705. 692 00ca 3381 ldd r19,Z+3
  706. 693 00cc 2F5F subi r18,-1
  707. 694 00ce 3F4F sbci r19,-1
  708. 695 00d0 3383 std Z+3,r19
  709. 696 00d2 2283 std Z+2,r18
  710. 697 .L56:
  711. 698 00d4 C801 movw r24,r16
  712. 699 /* epilogue start */
  713. 700 00d6 0F90 pop __tmp_reg__
  714. 701 00d8 0F90 pop __tmp_reg__
  715. 702 00da 0F90 pop __tmp_reg__
  716. 703 00dc 0F90 pop __tmp_reg__
  717. 704 00de DF91 pop r29
  718. 705 00e0 CF91 pop r28
  719. 706 00e2 1F91 pop r17
  720. 707 00e4 0F91 pop r16
  721. 708 00e6 FF90 pop r15
  722. 709 00e8 EF90 pop r14
  723. 710 00ea DF90 pop r13
  724. 711 00ec CF90 pop r12
  725. 712 00ee BF90 pop r11
  726. 713 00f0 AF90 pop r10
  727. 714 00f2 9F90 pop r9
  728. 715 00f4 8F90 pop r8
  729. 716 00f6 7F90 pop r7
  730. 717 00f8 6F90 pop r6
  731. 718 00fa 5F90 pop r5
  732. 719 00fc 4F90 pop r4
  733. 720 00fe 0895 ret
  734. 721 .size PnutDirAddEntry, .-PnutDirAddEntry
  735. 722 .section .text.PnutBlockRelease,"ax",@progbits
  736. 723 .type PnutBlockRelease, @function
  737. 724 PnutBlockRelease:
  738. 725 0000 CF93 push r28
  739. 726 0002 DF93 push r29
  740. 727 /* prologue: function */
  741. 728 /* frame size = 0 */
  742. 729 /* stack size = 2 */
  743. 730 .L__stack_usage = 2
  744. 731 0004 EC01 movw r28,r24
  745. 732 0006 0E94 0000 call BankNodePointer
  746. 733 000a 2091 0000 lds r18,blockFreeList
  747. 734 000e 3091 0000 lds r19,blockFreeList+1
  748. 735 0012 FC01 movw r30,r24
  749. 736 0014 3183 std Z+1,r19
  750. 737 0016 2083 st Z,r18
  751. 738 0018 D093 0000 sts blockFreeList+1,r29
  752. 739 001c C093 0000 sts blockFreeList,r28
  753. 740 /* epilogue start */
  754. 741 0020 DF91 pop r29
  755. GAS LISTING /tmp/ccr7450G.s page 14
  756. 742 0022 CF91 pop r28
  757. 743 0024 0895 ret
  758. 744 .size PnutBlockRelease, .-PnutBlockRelease
  759. 745 .section .rodata.str1.1
  760. 746 .LC1:
  761. 747 0002 2E2E 00 .string ".."
  762. 748 .section .text.PnutInit,"ax",@progbits
  763. 749 .type PnutInit, @function
  764. 750 PnutInit:
  765. 751 0000 CF93 push r28
  766. 752 0002 DF93 push r29
  767. 753 /* prologue: function */
  768. 754 /* frame size = 0 */
  769. 755 /* stack size = 2 */
  770. 756 .L__stack_usage = 2
  771. 757 0004 C0E0 ldi r28,0
  772. 758 0006 D0E0 ldi r29,0
  773. 759 .L62:
  774. 760 0008 CE01 movw r24,r28
  775. 761 000a 0E94 0000 call PnutBlockRelease
  776. 762 000e 2196 adiw r28,1
  777. 763 0010 C03C cpi r28,-64
  778. 764 0012 23E0 ldi r18,3
  779. 765 0014 D207 cpc r29,r18
  780. 766 0016 01F4 brne .L62
  781. 767 0018 81E0 ldi r24,lo8(1)
  782. 768 001a 0E94 0000 call PnutNodeAlloc
  783. 769 001e 9093 0000 sts root+1,r25
  784. 770 0022 8093 0000 sts root,r24
  785. 771 0026 8F3F cpi r24,-1
  786. 772 0028 2FEF ldi r18,-1
  787. 773 002a 9207 cpc r25,r18
  788. 774 002c 01F0 breq .L65
  789. 775 002e AC01 movw r20,r24
  790. 776 0030 60E0 ldi r22,lo8(.LC0)
  791. 777 0032 70E0 ldi r23,hi8(.LC0)
  792. 778 0034 0E94 0000 call PnutDirAddEntry
  793. 779 0038 EC01 movw r28,r24
  794. 780 003a 892B or r24,r25
  795. 781 003c 01F4 brne .L64
  796. 782 003e 8091 0000 lds r24,root
  797. 783 0042 9091 0000 lds r25,root+1
  798. 784 0046 AC01 movw r20,r24
  799. 785 0048 60E0 ldi r22,lo8(.LC1)
  800. 786 004a 70E0 ldi r23,hi8(.LC1)
  801. 787 004c 0E94 0000 call PnutDirAddEntry
  802. 788 0050 EC01 movw r28,r24
  803. 789 0052 892B or r24,r25
  804. 790 0054 01F0 breq .L63
  805. 791 .L64:
  806. 792 0056 8091 0000 lds r24,root
  807. 793 005a 9091 0000 lds r25,root+1
  808. 794 005e 0E94 0000 call PnutBlockRelease
  809. 795 0062 00C0 rjmp .L63
  810. 796 .L65:
  811. 797 0064 CCE1 ldi r28,lo8(28)
  812. 798 0066 D0E0 ldi r29,0
  813. GAS LISTING /tmp/ccr7450G.s page 15
  814. 799 .L63:
  815. 800 0068 CE01 movw r24,r28
  816. 801 /* epilogue start */
  817. 802 006a DF91 pop r29
  818. 803 006c CF91 pop r28
  819. 804 006e 0895 ret
  820. 805 .size PnutInit, .-PnutInit
  821. 806 .section .text.PnutNodeDataRelease,"ax",@progbits
  822. 807 .type PnutNodeDataRelease, @function
  823. 808 PnutNodeDataRelease:
  824. 809 0000 CF92 push r12
  825. 810 0002 DF92 push r13
  826. 811 0004 EF92 push r14
  827. 812 0006 FF92 push r15
  828. 813 0008 0F93 push r16
  829. 814 000a 1F93 push r17
  830. 815 000c CF93 push r28
  831. 816 000e DF93 push r29
  832. 817 /* prologue: function */
  833. 818 /* frame size = 0 */
  834. 819 /* stack size = 8 */
  835. 820 .L__stack_usage = 8
  836. 821 0010 8C01 movw r16,r24
  837. 822 0012 E12C mov r14,__zero_reg__
  838. 823 0014 F12C mov r15,__zero_reg__
  839. 824 0016 CC24 clr r12
  840. 825 0018 CA94 dec r12
  841. 826 001a DC2C mov r13,r12
  842. 827 .L72:
  843. 828 001c C801 movw r24,r16
  844. 829 001e 0E94 0000 call BankNodePointer
  845. 830 0022 E701 movw r28,r14
  846. 831 0024 2696 adiw r28,6
  847. 832 0026 CC0F lsl r28
  848. 833 0028 DD1F rol r29
  849. 834 002a 8C0F add r24,r28
  850. 835 002c 9D1F adc r25,r29
  851. 836 002e FC01 movw r30,r24
  852. 837 0030 8081 ld r24,Z
  853. 838 0032 9181 ldd r25,Z+1
  854. 839 0034 97FD sbrc r25,7
  855. 840 0036 00C0 rjmp .L71
  856. 841 0038 C801 movw r24,r16
  857. 842 003a 0E94 0000 call BankNodePointer
  858. 843 003e 8C0F add r24,r28
  859. 844 0040 9D1F adc r25,r29
  860. 845 0042 FC01 movw r30,r24
  861. 846 0044 8081 ld r24,Z
  862. 847 0046 9181 ldd r25,Z+1
  863. 848 0048 0E94 0000 call PnutBlockRelease
  864. 849 004c C801 movw r24,r16
  865. 850 004e 0E94 0000 call BankNodePointer
  866. 851 0052 C80F add r28,r24
  867. 852 0054 D91F adc r29,r25
  868. 853 0056 D982 std Y+1,r13
  869. 854 0058 C882 st Y,r12
  870. 855 .L71:
  871. GAS LISTING /tmp/ccr7450G.s page 16
  872. 856 005a FFEF ldi r31,-1
  873. 857 005c EF1A sub r14,r31
  874. 858 005e FF0A sbc r15,r31
  875. 859 0060 8AEF ldi r24,-6
  876. 860 0062 E816 cp r14,r24
  877. 861 0064 F104 cpc r15,__zero_reg__
  878. 862 0066 01F4 brne .L72
  879. 863 0068 C801 movw r24,r16
  880. 864 006a 0E94 0000 call BankNodePointer
  881. 865 006e FC01 movw r30,r24
  882. 866 0070 1482 std Z+4,__zero_reg__
  883. 867 0072 1582 std Z+5,__zero_reg__
  884. 868 0074 1682 std Z+6,__zero_reg__
  885. 869 0076 1782 std Z+7,__zero_reg__
  886. 870 0078 C801 movw r24,r16
  887. 871 007a 0E94 0000 call BankNodePointer
  888. 872 007e EC01 movw r28,r24
  889. 873 0080 80E0 ldi r24,0
  890. 874 0082 90E0 ldi r25,0
  891. 875 0084 0E94 0000 call time
  892. 876 0088 6887 std Y+8,r22
  893. 877 008a 7987 std Y+9,r23
  894. 878 008c 8A87 std Y+10,r24
  895. 879 008e 9B87 std Y+11,r25
  896. 880 /* epilogue start */
  897. 881 0090 DF91 pop r29
  898. 882 0092 CF91 pop r28
  899. 883 0094 1F91 pop r17
  900. 884 0096 0F91 pop r16
  901. 885 0098 FF90 pop r15
  902. 886 009a EF90 pop r14
  903. 887 009c DF90 pop r13
  904. 888 009e CF90 pop r12
  905. 889 00a0 0895 ret
  906. 890 .size PnutNodeDataRelease, .-PnutNodeDataRelease
  907. 891 .section .text.PnutNodeRelease,"ax",@progbits
  908. 892 .type PnutNodeRelease, @function
  909. 893 PnutNodeRelease:
  910. 894 0000 CF93 push r28
  911. 895 0002 DF93 push r29
  912. 896 /* prologue: function */
  913. 897 /* frame size = 0 */
  914. 898 /* stack size = 2 */
  915. 899 .L__stack_usage = 2
  916. 900 0004 EC01 movw r28,r24
  917. 901 0006 0E94 0000 call PnutNodeDataRelease
  918. 902 000a CE01 movw r24,r28
  919. 903 /* epilogue start */
  920. 904 000c DF91 pop r29
  921. 905 000e CF91 pop r28
  922. 906 0010 0C94 0000 jmp PnutBlockRelease
  923. 907 .size PnutNodeRelease, .-PnutNodeRelease
  924. 908 .section .text.PnutDelete,"ax",@progbits
  925. 909 .type PnutDelete, @function
  926. 910 PnutDelete:
  927. 911 0000 2F92 push r2
  928. 912 0002 3F92 push r3
  929. GAS LISTING /tmp/ccr7450G.s page 17
  930. 913 0004 4F92 push r4
  931. 914 0006 5F92 push r5
  932. 915 0008 6F92 push r6
  933. 916 000a 7F92 push r7
  934. 917 000c 8F92 push r8
  935. 918 000e 9F92 push r9
  936. 919 0010 AF92 push r10
  937. 920 0012 BF92 push r11
  938. 921 0014 CF92 push r12
  939. 922 0016 DF92 push r13
  940. 923 0018 EF92 push r14
  941. 924 001a FF92 push r15
  942. 925 001c 0F93 push r16
  943. 926 001e 1F93 push r17
  944. 927 0020 CF93 push r28
  945. 928 0022 DF93 push r29
  946. 929 0024 CDB7 in r28,__SP_L__
  947. 930 0026 DEB7 in r29,__SP_H__
  948. 931 0028 2C97 sbiw r28,12
  949. 932 002a 0FB6 in __tmp_reg__,__SREG__
  950. 933 002c F894 cli
  951. 934 002e DEBF out __SP_H__,r29
  952. 935 0030 0FBE out __SREG__,__tmp_reg__
  953. 936 0032 CDBF out __SP_L__,r28
  954. 937 /* prologue: function */
  955. 938 /* frame size = 12 */
  956. 939 /* stack size = 30 */
  957. 940 .L__stack_usage = 30
  958. 941 0034 AE01 movw r20,r28
  959. 942 0036 4F5F subi r20,-1
  960. 943 0038 5F4F sbci r21,-1
  961. 944 003a BC01 movw r22,r24
  962. 945 003c 8091 0000 lds r24,root
  963. 946 0040 9091 0000 lds r25,root+1
  964. 947 0044 0E94 0000 call PnutDirFindPath
  965. 948 0048 6C01 movw r12,r24
  966. 949 004a 892B or r24,r25
  967. 950 004c 01F0 breq .+2
  968. 951 004e 00C0 rjmp .L76
  969. 952 0050 AD80 ldd r10,Y+5
  970. 953 0052 BE80 ldd r11,Y+6
  971. 954 0054 8B80 ldd r8,Y+3
  972. 955 0056 9C80 ldd r9,Y+4
  973. 956 0058 1C86 std Y+12,__zero_reg__
  974. 957 005a 1B86 std Y+11,__zero_reg__
  975. 958 005c F501 movw r30,r10
  976. 959 0:
  977. 960 005e 0190 ld __tmp_reg__,Z+
  978. 961 0060 0020 tst __tmp_reg__
  979. 962 0062 01F4 brne 0b
  980. 963 0064 3197 sbiw r30,1
  981. 964 0066 AF01 movw r20,r30
  982. 965 0068 4A19 sub r20,r10
  983. 966 006a 5B09 sbc r21,r11
  984. 967 006c 9E01 movw r18,r28
  985. 968 006e 255F subi r18,-11
  986. 969 0070 3F4F sbci r19,-1
  987. GAS LISTING /tmp/ccr7450G.s page 18
  988. 970 0072 B501 movw r22,r10
  989. 971 0074 C401 movw r24,r8
  990. 972 0076 0E94 0000 call PnutDirFindEntry
  991. 973 007a 6C01 movw r12,r24
  992. 974 007c 892B or r24,r25
  993. 975 007e 01F0 breq .+2
  994. 976 0080 00C0 rjmp .L77
  995. 977 0082 EB85 ldd r30,Y+11
  996. 978 0084 FC85 ldd r31,Y+12
  997. 979 0086 6080 ld r6,Z
  998. 980 0088 7180 ldd r7,Z+1
  999. 981 008a C301 movw r24,r6
  1000. 982 008c 0E94 0000 call BankNodePointer
  1001. 983 0090 FC01 movw r30,r24
  1002. 984 0092 8181 ldd r24,Z+1
  1003. 985 0094 8823 tst r24
  1004. 986 0096 01F0 breq .L78
  1005. 987 .L80:
  1006. 988 0098 8DE0 ldi r24,lo8(13)
  1007. 989 009a C82E mov r12,r24
  1008. 990 009c D12C mov r13,__zero_reg__
  1009. 991 009e 00C0 rjmp .L77
  1010. 992 .L78:
  1011. 993 00a0 8081 ld r24,Z
  1012. 994 00a2 8130 cpi r24,lo8(1)
  1013. 995 00a4 01F0 breq .+2
  1014. 996 00a6 00C0 rjmp .L79
  1015. 997 00a8 8281 ldd r24,Z+2
  1016. 998 00aa 9381 ldd r25,Z+3
  1017. 999 00ac 0397 sbiw r24,3
  1018. 1000 00ae 00F4 brsh .L80
  1019. 1001 00b0 00E0 ldi r16,0
  1020. 1002 00b2 10E0 ldi r17,0
  1021. 1003 00b4 212C mov r2,__zero_reg__
  1022. 1004 00b6 312C mov r3,__zero_reg__
  1023. 1005 00b8 2101 movw r4,r2
  1024. 1006 .L81:
  1025. 1007 00ba C301 movw r24,r6
  1026. 1008 00bc 0E94 0000 call BankNodePointer
  1027. 1009 00c0 FC01 movw r30,r24
  1028. 1010 00c2 8481 ldd r24,Z+4
  1029. 1011 00c4 9581 ldd r25,Z+5
  1030. 1012 00c6 A681 ldd r26,Z+6
  1031. 1013 00c8 B781 ldd r27,Z+7
  1032. 1014 00ca 2816 cp r2,r24
  1033. 1015 00cc 3906 cpc r3,r25
  1034. 1016 00ce 4A06 cpc r4,r26
  1035. 1017 00d0 5B06 cpc r5,r27
  1036. 1018 00d2 00F4 brsh .L101
  1037. 1019 00d4 1887 std Y+8,r17
  1038. 1020 00d6 0F83 std Y+7,r16
  1039. 1021 00d8 E12C mov r14,__zero_reg__
  1040. 1022 00da F12C mov r15,__zero_reg__
  1041. 1023 00dc 8E01 movw r16,r28
  1042. 1024 00de 075F subi r16,-9
  1043. 1025 00e0 1F4F sbci r17,-1
  1044. 1026 00e2 9E01 movw r18,r28
  1045. GAS LISTING /tmp/ccr7450G.s page 19
  1046. 1027 00e4 295F subi r18,-7
  1047. 1028 00e6 3F4F sbci r19,-1
  1048. 1029 00e8 B201 movw r22,r4
  1049. 1030 00ea A101 movw r20,r2
  1050. 1031 00ec C301 movw r24,r6
  1051. 1032 00ee 0E94 0000 call PnutNodeGetDataPtr
  1052. 1033 00f2 892B or r24,r25
  1053. 1034 00f4 01F4 brne .L101
  1054. 1035 00f6 8985 ldd r24,Y+9
  1055. 1036 00f8 9A85 ldd r25,Y+10
  1056. 1037 00fa 0097 sbiw r24,0
  1057. 1038 00fc 01F0 breq .L101
  1058. 1039 00fe 0F81 ldd r16,Y+7
  1059. 1040 0100 1885 ldd r17,Y+8
  1060. 1041 0102 8097 sbiw r24,32
  1061. 1042 0104 00F0 brlo .L83
  1062. 1043 0106 F801 movw r30,r16
  1063. 1044 0108 8281 ldd r24,Z+2
  1064. 1045 010a 8823 tst r24
  1065. 1046 010c 01F0 breq .L83
  1066. 1047 010e 7801 movw r14,r16
  1067. 1048 0110 F3E0 ldi r31,3
  1068. 1049 0112 EF0E add r14,r31
  1069. 1050 0114 F11C adc r15,__zero_reg__
  1070. 1051 0116 60E0 ldi r22,lo8(.LC0)
  1071. 1052 0118 70E0 ldi r23,hi8(.LC0)
  1072. 1053 011a C701 movw r24,r14
  1073. 1054 011c 0E94 0000 call strcmp
  1074. 1055 0120 892B or r24,r25
  1075. 1056 0122 01F0 breq .L83
  1076. 1057 0124 60E0 ldi r22,lo8(.LC1)
  1077. 1058 0126 70E0 ldi r23,hi8(.LC1)
  1078. 1059 0128 C701 movw r24,r14
  1079. 1060 012a 0E94 0000 call strcmp
  1080. 1061 012e 892B or r24,r25
  1081. 1062 0130 01F4 brne .L90
  1082. 1063 .L83:
  1083. 1064 0132 80E2 ldi r24,32
  1084. 1065 0134 280E add r2,r24
  1085. 1066 0136 311C adc r3,__zero_reg__
  1086. 1067 0138 411C adc r4,__zero_reg__
  1087. 1068 013a 511C adc r5,__zero_reg__
  1088. 1069 013c 00C0 rjmp .L81
  1089. 1070 .L90:
  1090. 1071 013e 80E0 ldi r24,0
  1091. 1072 0140 90E0 ldi r25,0
  1092. 1073 0142 00C0 rjmp .L84
  1093. 1074 .L101:
  1094. 1075 0144 81E0 ldi r24,lo8(1)
  1095. 1076 0146 90E0 ldi r25,0
  1096. 1077 .L84:
  1097. 1078 0148 892B or r24,r25
  1098. 1079 014a 01F4 brne .+2
  1099. 1080 014c 00C0 rjmp .L80
  1100. 1081 014e C401 movw r24,r8
  1101. 1082 0150 0E94 0000 call BankNodePointer
  1102. 1083 0154 FC01 movw r30,r24
  1103. GAS LISTING /tmp/ccr7450G.s page 20
  1104. 1084 0156 2281 ldd r18,Z+2
  1105. 1085 0158 3381 ldd r19,Z+3
  1106. 1086 015a 2150 subi r18,1
  1107. 1087 015c 3109 sbc r19,__zero_reg__
  1108. 1088 015e 3383 std Z+3,r19
  1109. 1089 0160 2283 std Z+2,r18
  1110. 1090 .L79:
  1111. 1091 0162 C301 movw r24,r6
  1112. 1092 0164 0E94 0000 call PnutNodeRelease
  1113. 1093 0168 F501 movw r30,r10
  1114. 1094 0:
  1115. 1095 016a 0190 ld __tmp_reg__,Z+
  1116. 1096 016c 0020 tst __tmp_reg__
  1117. 1097 016e 01F4 brne 0b
  1118. 1098 0170 3197 sbiw r30,1
  1119. 1099 0172 AF01 movw r20,r30
  1120. 1100 0174 4A19 sub r20,r10
  1121. 1101 0176 5B09 sbc r21,r11
  1122. 1102 0178 9E01 movw r18,r28
  1123. 1103 017a 255F subi r18,-11
  1124. 1104 017c 3F4F sbci r19,-1
  1125. 1105 017e B501 movw r22,r10
  1126. 1106 0180 C401 movw r24,r8
  1127. 1107 0182 0E94 0000 call PnutDirFindEntry
  1128. 1108 0186 EB85 ldd r30,Y+11
  1129. 1109 0188 FC85 ldd r31,Y+12
  1130. 1110 018a 1282 std Z+2,__zero_reg__
  1131. 1111 .L77:
  1132. 1112 018c C114 cp r12,__zero_reg__
  1133. 1113 018e D104 cpc r13,__zero_reg__
  1134. 1114 0190 01F0 breq .L91
  1135. 1115 .L76:
  1136. 1116 0192 D092 0000 sts errno+1,r13
  1137. 1117 0196 C092 0000 sts errno,r12
  1138. 1118 019a 8FEF ldi r24,lo8(-1)
  1139. 1119 019c 9FEF ldi r25,lo8(-1)
  1140. 1120 019e 00C0 rjmp .L87
  1141. 1121 .L91:
  1142. 1122 01a0 80E0 ldi r24,0
  1143. 1123 01a2 90E0 ldi r25,0
  1144. 1124 .L87:
  1145. 1125 /* epilogue start */
  1146. 1126 01a4 2C96 adiw r28,12
  1147. 1127 01a6 0FB6 in __tmp_reg__,__SREG__
  1148. 1128 01a8 F894 cli
  1149. 1129 01aa DEBF out __SP_H__,r29
  1150. 1130 01ac 0FBE out __SREG__,__tmp_reg__
  1151. 1131 01ae CDBF out __SP_L__,r28
  1152. 1132 01b0 DF91 pop r29
  1153. 1133 01b2 CF91 pop r28
  1154. 1134 01b4 1F91 pop r17
  1155. 1135 01b6 0F91 pop r16
  1156. 1136 01b8 FF90 pop r15
  1157. 1137 01ba EF90 pop r14
  1158. 1138 01bc DF90 pop r13
  1159. 1139 01be CF90 pop r12
  1160. 1140 01c0 BF90 pop r11
  1161. GAS LISTING /tmp/ccr7450G.s page 21
  1162. 1141 01c2 AF90 pop r10
  1163. 1142 01c4 9F90 pop r9
  1164. 1143 01c6 8F90 pop r8
  1165. 1144 01c8 7F90 pop r7
  1166. 1145 01ca 6F90 pop r6
  1167. 1146 01cc 5F90 pop r5
  1168. 1147 01ce 4F90 pop r4
  1169. 1148 01d0 3F90 pop r3
  1170. 1149 01d2 2F90 pop r2
  1171. 1150 01d4 0895 ret
  1172. 1151 .size PnutDelete, .-PnutDelete
  1173. 1152 .section .text.PnutIOCtl,"ax",@progbits
  1174. 1153 .global PnutIOCtl
  1175. 1154 .type PnutIOCtl, @function
  1176. 1155 PnutIOCtl:
  1177. 1156 0000 4F92 push r4
  1178. 1157 0002 5F92 push r5
  1179. 1158 0004 6F92 push r6
  1180. 1159 0006 7F92 push r7
  1181. 1160 0008 8F92 push r8
  1182. 1161 000a 9F92 push r9
  1183. 1162 000c AF92 push r10
  1184. 1163 000e BF92 push r11
  1185. 1164 0010 EF92 push r14
  1186. 1165 0012 FF92 push r15
  1187. 1166 0014 0F93 push r16
  1188. 1167 0016 1F93 push r17
  1189. 1168 0018 CF93 push r28
  1190. 1169 001a DF93 push r29
  1191. 1170 001c CDB7 in r28,__SP_L__
  1192. 1171 001e DEB7 in r29,__SP_H__
  1193. 1172 0020 2897 sbiw r28,8
  1194. 1173 0022 0FB6 in __tmp_reg__,__SREG__
  1195. 1174 0024 F894 cli
  1196. 1175 0026 DEBF out __SP_H__,r29
  1197. 1176 0028 0FBE out __SREG__,__tmp_reg__
  1198. 1177 002a CDBF out __SP_L__,r28
  1199. 1178 /* prologue: function */
  1200. 1179 /* frame size = 8 */
  1201. 1180 /* stack size = 22 */
  1202. 1181 .L__stack_usage = 22
  1203. 1182 002c 4C01 movw r8,r24
  1204. 1183 002e 7A01 movw r14,r20
  1205. 1184 0030 6431 cpi r22,20
  1206. 1185 0032 21E1 ldi r18,17
  1207. 1186 0034 7207 cpc r23,r18
  1208. 1187 0036 01F4 brne .+2
  1209. 1188 0038 00C0 rjmp .L104
  1210. 1189 003a 04F4 brge .L105
  1211. 1190 003c 6131 cpi r22,17
  1212. 1191 003e 81E1 ldi r24,17
  1213. 1192 0040 7807 cpc r23,r24
  1214. 1193 0042 01F4 brne .+2
  1215. 1194 0044 00C0 rjmp .L106
  1216. 1195 0046 04F4 brge .L107
  1217. 1196 0048 6130 cpi r22,1
  1218. 1197 004a 7141 sbci r23,17
  1219. GAS LISTING /tmp/ccr7450G.s page 22
  1220. 1198 004c 01F0 breq .L108
  1221. 1199 004e 00C0 rjmp .L158
  1222. 1200 .L107:
  1223. 1201 0050 6231 cpi r22,18
  1224. 1202 0052 E1E1 ldi r30,17
  1225. 1203 0054 7E07 cpc r23,r30
  1226. 1204 0056 01F4 brne .+2
  1227. 1205 0058 00C0 rjmp .L114
  1228. 1206 005a 6331 cpi r22,19
  1229. 1207 005c 7141 sbci r23,17
  1230. 1208 005e 01F4 brne .+2
  1231. 1209 0060 00C0 rjmp .L110
  1232. 1210 0062 00C0 rjmp .L158
  1233. 1211 .L105:
  1234. 1212 0064 6132 cpi r22,33
  1235. 1213 0066 21E1 ldi r18,17
  1236. 1214 0068 7207 cpc r23,r18
  1237. 1215 006a 01F4 brne .+2
  1238. 1216 006c 00C0 rjmp .L111
  1239. 1217 006e 04F4 brge .L112
  1240. 1218 0070 6531 cpi r22,21
  1241. 1219 0072 7141 sbci r23,17
  1242. 1220 0074 01F0 breq .+2
  1243. 1221 0076 00C0 rjmp .L158
  1244. 1222 0078 DA01 movw r26,r20
  1245. 1223 007a ED91 ld r30,X+
  1246. 1224 007c FC91 ld r31,X
  1247. 1225 007e 1197 sbiw r26,1
  1248. 1226 0080 A280 ldd r10,Z+2
  1249. 1227 0082 B380 ldd r11,Z+3
  1250. 1228 0084 1296 adiw r26,2
  1251. 1229 0086 8D90 ld r8,X+
  1252. 1230 0088 9C90 ld r9,X
  1253. 1231 008a 1397 sbiw r26,2+1
  1254. 1232 008c F401 movw r30,r8
  1255. 1233 008e 1086 std Z+8,__zero_reg__
  1256. 1234 0090 D501 movw r26,r10
  1257. 1235 0092 1296 adiw r26,2
  1258. 1236 0094 4D90 ld r4,X+
  1259. 1237 0096 5D90 ld r5,X+
  1260. 1238 0098 6D90 ld r6,X+
  1261. 1239 009a 7C90 ld r7,X
  1262. 1240 009c 1597 sbiw r26,2+3
  1263. 1241 009e E12C mov r14,__zero_reg__
  1264. 1242 00a0 F12C mov r15,__zero_reg__
  1265. 1243 00a2 0FEF ldi r16,lo8(-1)
  1266. 1244 00a4 1FEF ldi r17,lo8(-1)
  1267. 1245 00a6 00C0 rjmp .L126
  1268. 1246 .L112:
  1269. 1247 00a8 6232 cpi r22,34
  1270. 1248 00aa A1E1 ldi r26,17
  1271. 1249 00ac 7A07 cpc r23,r26
  1272. 1250 00ae 01F4 brne .+2
  1273. 1251 00b0 00C0 rjmp .L114
  1274. 1252 00b2 6332 cpi r22,35
  1275. 1253 00b4 7141 sbci r23,17
  1276. 1254 00b6 01F4 brne .+2
  1277. GAS LISTING /tmp/ccr7450G.s page 23
  1278. 1255 00b8 00C0 rjmp .L115
  1279. 1256 00ba 00C0 rjmp .L158
  1280. 1257 .L108:
  1281. 1258 00bc FA01 movw r30,r20
  1282. 1259 00be A280 ldd r10,Z+2
  1283. 1260 00c0 B380 ldd r11,Z+3
  1284. 1261 00c2 6081 ld r22,Z
  1285. 1262 00c4 7181 ldd r23,Z+1
  1286. 1263 00c6 AE01 movw r20,r28
  1287. 1264 00c8 4F5F subi r20,-1
  1288. 1265 00ca 5F4F sbci r21,-1
  1289. 1266 00cc 8091 0000 lds r24,root
  1290. 1267 00d0 9091 0000 lds r25,root+1
  1291. 1268 00d4 0E94 0000 call PnutDirFindPath
  1292. 1269 00d8 8C01 movw r16,r24
  1293. 1270 00da 892B or r24,r25
  1294. 1271 00dc 01F0 breq .+2
  1295. 1272 00de 00C0 rjmp .L148
  1296. 1273 00e0 8981 ldd r24,Y+1
  1297. 1274 00e2 9A81 ldd r25,Y+2
  1298. 1275 00e4 0E94 0000 call BankNodePointer
  1299. 1276 00e8 DC01 movw r26,r24
  1300. 1277 00ea 8C91 ld r24,X
  1301. 1278 00ec F501 movw r30,r10
  1302. 1279 00ee 8283 std Z+2,r24
  1303. 1280 00f0 8981 ldd r24,Y+1
  1304. 1281 00f2 9A81 ldd r25,Y+2
  1305. 1282 00f4 9183 std Z+1,r25
  1306. 1283 00f6 8083 st Z,r24
  1307. 1284 00f8 0E94 0000 call BankNodePointer
  1308. 1285 00fc DC01 movw r26,r24
  1309. 1286 00fe 1296 adiw r26,2
  1310. 1287 0100 8D91 ld r24,X+
  1311. 1288 0102 9C91 ld r25,X
  1312. 1289 0104 1397 sbiw r26,2+1
  1313. 1290 0106 F501 movw r30,r10
  1314. 1291 0108 9483 std Z+4,r25
  1315. 1292 010a 8383 std Z+3,r24
  1316. 1293 010c 8981 ldd r24,Y+1
  1317. 1294 010e 9A81 ldd r25,Y+2
  1318. 1295 0110 0E94 0000 call BankNodePointer
  1319. 1296 0114 FC01 movw r30,r24
  1320. 1297 0116 8481 ldd r24,Z+4
  1321. 1298 0118 9581 ldd r25,Z+5
  1322. 1299 011a A681 ldd r26,Z+6
  1323. 1300 011c B781 ldd r27,Z+7
  1324. 1301 011e F501 movw r30,r10
  1325. 1302 0120 8583 std Z+5,r24
  1326. 1303 0122 9683 std Z+6,r25
  1327. 1304 0124 A783 std Z+7,r26
  1328. 1305 0126 B087 std Z+8,r27
  1329. 1306 0128 8981 ldd r24,Y+1
  1330. 1307 012a 9A81 ldd r25,Y+2
  1331. 1308 012c 0E94 0000 call BankNodePointer
  1332. 1309 0130 FC01 movw r30,r24
  1333. 1310 0132 8085 ldd r24,Z+8
  1334. 1311 0134 9185 ldd r25,Z+9
  1335. GAS LISTING /tmp/ccr7450G.s page 24
  1336. 1312 0136 A285 ldd r26,Z+10
  1337. 1313 0138 B385 ldd r27,Z+11
  1338. 1314 013a F501 movw r30,r10
  1339. 1315 013c 8187 std Z+9,r24
  1340. 1316 013e 9287 std Z+10,r25
  1341. 1317 0140 A387 std Z+11,r26
  1342. 1318 0142 B487 std Z+12,r27
  1343. 1319 0144 00C0 rjmp .L148
  1344. 1320 .L106:
  1345. 1321 0146 AE01 movw r20,r28
  1346. 1322 0148 4F5F subi r20,-1
  1347. 1323 014a 5F4F sbci r21,-1
  1348. 1324 014c B701 movw r22,r14
  1349. 1325 014e 8091 0000 lds r24,root
  1350. 1326 0152 9091 0000 lds r25,root+1
  1351. 1327 0156 0E94 0000 call PnutDirFindPath
  1352. 1328 015a 8C01 movw r16,r24
  1353. 1329 015c 0097 sbiw r24,0
  1354. 1330 015e 01F4 brne .+2
  1355. 1331 0160 00C0 rjmp .L137
  1356. 1332 0162 0297 sbiw r24,2
  1357. 1333 0164 01F0 breq .+2
  1358. 1334 0166 00C0 rjmp .L117
  1359. 1335 0168 8D81 ldd r24,Y+5
  1360. 1336 016a 9E81 ldd r25,Y+6
  1361. 1337 016c 892B or r24,r25
  1362. 1338 016e 01F4 brne .+2
  1363. 1339 0170 00C0 rjmp .L117
  1364. 1340 0172 81E0 ldi r24,lo8(1)
  1365. 1341 0174 0E94 0000 call PnutNodeAlloc
  1366. 1342 0178 7C01 movw r14,r24
  1367. 1343 017a 97FD sbrc r25,7
  1368. 1344 017c 00C0 rjmp .L138
  1369. 1345 017e AC01 movw r20,r24
  1370. 1346 0180 60E0 ldi r22,lo8(.LC0)
  1371. 1347 0182 70E0 ldi r23,hi8(.LC0)
  1372. 1348 0184 0E94 0000 call PnutDirAddEntry
  1373. 1349 0188 8C01 movw r16,r24
  1374. 1350 018a 892B or r24,r25
  1375. 1351 018c 01F4 brne .L156
  1376. 1352 018e 4B81 ldd r20,Y+3
  1377. 1353 0190 5C81 ldd r21,Y+4
  1378. 1354 0192 60E0 ldi r22,lo8(.LC1)
  1379. 1355 0194 70E0 ldi r23,hi8(.LC1)
  1380. 1356 0196 C701 movw r24,r14
  1381. 1357 0198 0E94 0000 call PnutDirAddEntry
  1382. 1358 019c 8C01 movw r16,r24
  1383. 1359 019e 892B or r24,r25
  1384. 1360 01a0 01F4 brne .L156
  1385. 1361 01a2 6D81 ldd r22,Y+5
  1386. 1362 01a4 7E81 ldd r23,Y+6
  1387. 1363 01a6 A701 movw r20,r14
  1388. 1364 01a8 8B81 ldd r24,Y+3
  1389. 1365 01aa 9C81 ldd r25,Y+4
  1390. 1366 01ac 0E94 0000 call PnutDirAddEntry
  1391. 1367 01b0 8C01 movw r16,r24
  1392. 1368 01b2 892B or r24,r25
  1393. GAS LISTING /tmp/ccr7450G.s page 25
  1394. 1369 01b4 01F4 brne .+2
  1395. 1370 01b6 00C0 rjmp .L157
  1396. 1371 .L156:
  1397. 1372 01b8 C701 movw r24,r14
  1398. 1373 01ba 0E94 0000 call PnutNodeRelease
  1399. 1374 01be 00C0 rjmp .L117
  1400. 1375 .L110:
  1401. 1376 01c0 DA01 movw r26,r20
  1402. 1377 01c2 1296 adiw r26,2
  1403. 1378 01c4 6D91 ld r22,X+
  1404. 1379 01c6 7C91 ld r23,X
  1405. 1380 01c8 1397 sbiw r26,2+1
  1406. 1381 01ca AE01 movw r20,r28
  1407. 1382 01cc 4F5F subi r20,-1
  1408. 1383 01ce 5F4F sbci r21,-1
  1409. 1384 01d0 8091 0000 lds r24,root
  1410. 1385 01d4 9091 0000 lds r25,root+1
  1411. 1386 01d8 0E94 0000 call PnutDirFindPath
  1412. 1387 01dc 8C01 movw r16,r24
  1413. 1388 01de 892B or r24,r25
  1414. 1389 01e0 01F0 breq .+2
  1415. 1390 01e2 00C0 rjmp .L117
  1416. 1391 01e4 8981 ldd r24,Y+1
  1417. 1392 01e6 9A81 ldd r25,Y+2
  1418. 1393 01e8 0E94 0000 call BankNodePointer
  1419. 1394 01ec FC01 movw r30,r24
  1420. 1395 01ee 8081 ld r24,Z
  1421. 1396 01f0 8130 cpi r24,lo8(1)
  1422. 1397 01f2 01F0 breq .L123
  1423. 1398 01f4 84E1 ldi r24,lo8(20)
  1424. 1399 01f6 90E0 ldi r25,0
  1425. 1400 01f8 9093 0000 sts errno+1,r25
  1426. 1401 01fc 8093 0000 sts errno,r24
  1427. 1402 0200 00C0 rjmp .L158
  1428. 1403 .L123:
  1429. 1404 0202 88E0 ldi r24,lo8(8)
  1430. 1405 0204 90E0 ldi r25,0
  1431. 1406 0206 0E94 0000 call malloc
  1432. 1407 020a 5C01 movw r10,r24
  1433. 1408 020c 0097 sbiw r24,0
  1434. 1409 020e 01F4 brne .+2
  1435. 1410 0210 00C0 rjmp .L158
  1436. 1411 0212 6980 ldd r6,Y+1
  1437. 1412 0214 7A80 ldd r7,Y+2
  1438. 1413 0216 DC01 movw r26,r24
  1439. 1414 0218 6D92 st X+,r6
  1440. 1415 021a 7C92 st X,r7
  1441. 1416 021c FC01 movw r30,r24
  1442. 1417 021e 1282 std Z+2,__zero_reg__
  1443. 1418 0220 1382 std Z+3,__zero_reg__
  1444. 1419 0222 1482 std Z+4,__zero_reg__
  1445. 1420 0224 1582 std Z+5,__zero_reg__
  1446. 1421 0226 84E0 ldi r24,lo8(4)
  1447. 1422 0228 90E0 ldi r25,0
  1448. 1423 022a 0E94 0000 call malloc
  1449. 1424 022e D701 movw r26,r14
  1450. 1425 0230 8D93 st X+,r24
  1451. GAS LISTING /tmp/ccr7450G.s page 26
  1452. 1426 0232 9C93 st X,r25
  1453. 1427 0234 0097 sbiw r24,0
  1454. 1428 0236 01F4 brne .L124
  1455. 1429 0238 C501 movw r24,r10
  1456. 1430 023a 0E94 0000 call free
  1457. 1431 023e 00C0 rjmp .L158
  1458. 1432 .L124:
  1459. 1433 0240 FC01 movw r30,r24
  1460. 1434 0242 9182 std Z+1,r9
  1461. 1435 0244 8082 st Z,r8
  1462. 1436 0246 B382 std Z+3,r11
  1463. 1437 0248 A282 std Z+2,r10
  1464. 1438 024a C301 movw r24,r6
  1465. 1439 024c 0E94 0000 call BankNodePointer
  1466. 1440 0250 FC01 movw r30,r24
  1467. 1441 0252 9181 ldd r25,Z+1
  1468. 1442 0254 9F5F subi r25,lo8(-(1))
  1469. 1443 0256 9183 std Z+1,r25
  1470. 1444 0258 00C0 rjmp .L148
  1471. 1445 .L104:
  1472. 1446 025a 4115 cp r20,__zero_reg__
  1473. 1447 025c 5105 cpc r21,__zero_reg__
  1474. 1448 025e 01F4 brne .+2
  1475. 1449 0260 00C0 rjmp .L142
  1476. 1450 0262 DA01 movw r26,r20
  1477. 1451 0264 ED91 ld r30,X+
  1478. 1452 0266 FC91 ld r31,X
  1479. 1453 0268 3097 sbiw r30,0
  1480. 1454 026a 01F4 brne .+2
  1481. 1455 026c 00C0 rjmp .L142
  1482. 1456 026e 0281 ldd r16,Z+2
  1483. 1457 0270 1381 ldd r17,Z+3
  1484. 1458 0272 0115 cp r16,__zero_reg__
  1485. 1459 0274 1105 cpc r17,__zero_reg__
  1486. 1460 0276 01F0 breq .L125
  1487. 1461 0278 F801 movw r30,r16
  1488. 1462 027a 8081 ld r24,Z
  1489. 1463 027c 9181 ldd r25,Z+1
  1490. 1464 027e 0E94 0000 call BankNodePointer
  1491. 1465 0282 FC01 movw r30,r24
  1492. 1466 0284 9181 ldd r25,Z+1
  1493. 1467 0286 9150 subi r25,lo8(-(-1))
  1494. 1468 0288 9183 std Z+1,r25
  1495. 1469 028a C801 movw r24,r16
  1496. 1470 028c 0E94 0000 call free
  1497. 1471 .L125:
  1498. 1472 0290 D701 movw r26,r14
  1499. 1473 0292 8D91 ld r24,X+
  1500. 1474 0294 9C91 ld r25,X
  1501. 1475 0296 0E94 0000 call free
  1502. 1476 .L157:
  1503. 1477 029a 00E0 ldi r16,0
  1504. 1478 029c 10E0 ldi r17,0
  1505. 1479 029e 00C0 rjmp .L148
  1506. 1480 .L130:
  1507. 1481 02a0 FA82 std Y+2,r15
  1508. 1482 02a2 E982 std Y+1,r14
  1509. GAS LISTING /tmp/ccr7450G.s page 27
  1510. 1483 02a4 E12C mov r14,__zero_reg__
  1511. 1484 02a6 F12C mov r15,__zero_reg__
  1512. 1485 02a8 8E01 movw r16,r28
  1513. 1486 02aa 095F subi r16,-7
  1514. 1487 02ac 1F4F sbci r17,-1
  1515. 1488 02ae 9E01 movw r18,r28
  1516. 1489 02b0 2F5F subi r18,-1
  1517. 1490 02b2 3F4F sbci r19,-1
  1518. 1491 02b4 B301 movw r22,r6
  1519. 1492 02b6 A201 movw r20,r4
  1520. 1493 02b8 F501 movw r30,r10
  1521. 1494 02ba 8081 ld r24,Z
  1522. 1495 02bc 9181 ldd r25,Z+1
  1523. 1496 02be 0E94 0000 call PnutNodeGetDataPtr
  1524. 1497 02c2 8C01 movw r16,r24
  1525. 1498 02c4 892B or r24,r25
  1526. 1499 02c6 01F0 breq .+2
  1527. 1500 02c8 00C0 rjmp .L158
  1528. 1501 02ca 8F81 ldd r24,Y+7
  1529. 1502 02cc 9885 ldd r25,Y+8
  1530. 1503 02ce 0097 sbiw r24,0
  1531. 1504 02d0 01F4 brne .+2
  1532. 1505 02d2 00C0 rjmp .L158
  1533. 1506 02d4 E980 ldd r14,Y+1
  1534. 1507 02d6 FA80 ldd r15,Y+2
  1535. 1508 02d8 F0E2 ldi r31,32
  1536. 1509 02da 4F0E add r4,r31
  1537. 1510 02dc 511C adc r5,__zero_reg__
  1538. 1511 02de 611C adc r6,__zero_reg__
  1539. 1512 02e0 711C adc r7,__zero_reg__
  1540. 1513 02e2 D501 movw r26,r10
  1541. 1514 02e4 1296 adiw r26,2
  1542. 1515 02e6 4D92 st X+,r4
  1543. 1516 02e8 5D92 st X+,r5
  1544. 1517 02ea 6D92 st X+,r6
  1545. 1518 02ec 7C92 st X,r7
  1546. 1519 02ee 1597 sbiw r26,2+3
  1547. 1520 02f0 8097 sbiw r24,32
  1548. 1521 02f2 00F4 brsh .L159
  1549. 1522 .L126:
  1550. 1523 02f4 F501 movw r30,r10
  1551. 1524 02f6 8081 ld r24,Z
  1552. 1525 02f8 9181 ldd r25,Z+1
  1553. 1526 02fa 0E94 0000 call BankNodePointer
  1554. 1527 02fe FC01 movw r30,r24
  1555. 1528 0300 8481 ldd r24,Z+4
  1556. 1529 0302 9581 ldd r25,Z+5
  1557. 1530 0304 A681 ldd r26,Z+6
  1558. 1531 0306 B781 ldd r27,Z+7
  1559. 1532 0308 4816 cp r4,r24
  1560. 1533 030a 5906 cpc r5,r25
  1561. 1534 030c 6A06 cpc r6,r26
  1562. 1535 030e 7B06 cpc r7,r27
  1563. 1536 0310 00F0 brlo .L130
  1564. 1537 0312 00C0 rjmp .L148
  1565. 1538 .L159:
  1566. 1539 0314 F701 movw r30,r14
  1567. GAS LISTING /tmp/ccr7450G.s page 28
  1568. 1540 0316 8281 ldd r24,Z+2
  1569. 1541 0318 8823 tst r24
  1570. 1542 031a 01F0 breq .L126
  1571. 1543 031c 88E0 ldi r24,lo8(8)
  1572. 1544 031e 91E0 ldi r25,lo8(1)
  1573. 1545 0320 D401 movw r26,r8
  1574. 1546 0322 FC01 movw r30,r24
  1575. 1547 0:
  1576. 1548 0324 1D92 st X+,__zero_reg__
  1577. 1549 0326 3197 sbiw r30,1
  1578. 1550 0328 01F4 brne 0b
  1579. 1551 032a D701 movw r26,r14
  1580. 1552 032c 8D91 ld r24,X+
  1581. 1553 032e 9C91 ld r25,X
  1582. 1554 0330 092E mov __tmp_reg__,r25
  1583. 1555 0332 000C lsl r0
  1584. 1556 0334 AA0B sbc r26,r26
  1585. 1557 0336 BB0B sbc r27,r27
  1586. 1558 0338 F401 movw r30,r8
  1587. 1559 033a 8083 st Z,r24
  1588. 1560 033c 9183 std Z+1,r25
  1589. 1561 033e A283 std Z+2,r26
  1590. 1562 0340 B383 std Z+3,r27
  1591. 1563 0342 B701 movw r22,r14
  1592. 1564 0344 6D5F subi r22,-3
  1593. 1565 0346 7F4F sbci r23,-1
  1594. 1566 0348 FB01 movw r30,r22
  1595. 1567 0:
  1596. 1568 034a 0190 ld __tmp_reg__,Z+
  1597. 1569 034c 0020 tst __tmp_reg__
  1598. 1570 034e 01F4 brne 0b
  1599. 1571 0350 3197 sbiw r30,1
  1600. 1572 0352 E61B sub r30,r22
  1601. 1573 0354 F70B sbc r31,r23
  1602. 1574 0356 D401 movw r26,r8
  1603. 1575 0358 1796 adiw r26,7
  1604. 1576 035a EC93 st X,r30
  1605. 1577 035c C401 movw r24,r8
  1606. 1578 035e 0896 adiw r24,8
  1607. 1579 0360 0E94 0000 call strcpy
  1608. 1580 0364 00C0 rjmp .L148
  1609. 1581 .L111:
  1610. 1582 0366 DA01 movw r26,r20
  1611. 1583 0368 1296 adiw r26,2
  1612. 1584 036a 0D91 ld r16,X+
  1613. 1585 036c 1C91 ld r17,X
  1614. 1586 036e 1397 sbiw r26,2+1
  1615. 1587 0370 ED90 ld r14,X+
  1616. 1588 0372 FC90 ld r15,X
  1617. 1589 0374 F701 movw r30,r14
  1618. 1590 0376 8081 ld r24,Z
  1619. 1591 0378 9181 ldd r25,Z+1
  1620. 1592 037a 0E94 0000 call BankNodePointer
  1621. 1593 037e DC01 movw r26,r24
  1622. 1594 0380 8C91 ld r24,X
  1623. 1595 0382 F801 movw r30,r16
  1624. 1596 0384 8283 std Z+2,r24
  1625. GAS LISTING /tmp/ccr7450G.s page 29
  1626. 1597 0386 D701 movw r26,r14
  1627. 1598 0388 8D91 ld r24,X+
  1628. 1599 038a 9C91 ld r25,X
  1629. 1600 038c 9183 std Z+1,r25
  1630. 1601 038e 8083 st Z,r24
  1631. 1602 0390 0E94 0000 call BankNodePointer
  1632. 1603 0394 FC01 movw r30,r24
  1633. 1604 0396 8281 ldd r24,Z+2
  1634. 1605 0398 9381 ldd r25,Z+3
  1635. 1606 039a D801 movw r26,r16
  1636. 1607 039c 1496 adiw r26,3+1
  1637. 1608 039e 9C93 st X,r25
  1638. 1609 03a0 8E93 st -X,r24
  1639. 1610 03a2 1397 sbiw r26,3
  1640. 1611 03a4 F701 movw r30,r14
  1641. 1612 03a6 8081 ld r24,Z
  1642. 1613 03a8 9181 ldd r25,Z+1
  1643. 1614 03aa 0E94 0000 call BankNodePointer
  1644. 1615 03ae FC01 movw r30,r24
  1645. 1616 03b0 8481 ldd r24,Z+4
  1646. 1617 03b2 9581 ldd r25,Z+5
  1647. 1618 03b4 A681 ldd r26,Z+6
  1648. 1619 03b6 B781 ldd r27,Z+7
  1649. 1620 03b8 F801 movw r30,r16
  1650. 1621 03ba 8583 std Z+5,r24
  1651. 1622 03bc 9683 std Z+6,r25
  1652. 1623 03be A783 std Z+7,r26
  1653. 1624 03c0 B087 std Z+8,r27
  1654. 1625 03c2 D701 movw r26,r14
  1655. 1626 03c4 8D91 ld r24,X+
  1656. 1627 03c6 9C91 ld r25,X
  1657. 1628 03c8 0E94 0000 call BankNodePointer
  1658. 1629 03cc FC01 movw r30,r24
  1659. 1630 03ce 8085 ldd r24,Z+8
  1660. 1631 03d0 9185 ldd r25,Z+9
  1661. 1632 03d2 A285 ldd r26,Z+10
  1662. 1633 03d4 B385 ldd r27,Z+11
  1663. 1634 03d6 F801 movw r30,r16
  1664. 1635 03d8 8187 std Z+9,r24
  1665. 1636 03da 9287 std Z+10,r25
  1666. 1637 03dc A387 std Z+11,r26
  1667. 1638 03de B487 std Z+12,r27
  1668. 1639 03e0 00C0 rjmp .L157
  1669. 1640 .L114:
  1670. 1641 03e2 C701 movw r24,r14
  1671. 1642 03e4 0E94 0000 call PnutDelete
  1672. 1643 03e8 8C01 movw r16,r24
  1673. 1644 03ea 00C0 rjmp .L148
  1674. 1645 .L115:
  1675. 1646 03ec DA01 movw r26,r20
  1676. 1647 03ee 1296 adiw r26,2
  1677. 1648 03f0 6D90 ld r6,X+
  1678. 1649 03f2 7C90 ld r7,X
  1679. 1650 03f4 1397 sbiw r26,2+1
  1680. 1651 03f6 0D91 ld r16,X+
  1681. 1652 03f8 1C91 ld r17,X
  1682. 1653 03fa 1197 sbiw r26,1
  1683. GAS LISTING /tmp/ccr7450G.s page 30
  1684. 1654 03fc F301 movw r30,r6
  1685. 1655 03fe 8080 ld r8,Z
  1686. 1656 0400 9180 ldd r9,Z+1
  1687. 1657 0402 A280 ldd r10,Z+2
  1688. 1658 0404 B380 ldd r11,Z+3
  1689. 1659 0406 1496 adiw r26,4
  1690. 1660 0408 8D91 ld r24,X+
  1691. 1661 040a 9C91 ld r25,X
  1692. 1662 040c 1597 sbiw r26,4+1
  1693. 1663 040e 8130 cpi r24,1
  1694. 1664 0410 9105 cpc r25,__zero_reg__
  1695. 1665 0412 01F0 breq .L132
  1696. 1666 0414 0297 sbiw r24,2
  1697. 1667 0416 01F4 brne .L131
  1698. 1668 0418 D801 movw r26,r16
  1699. 1669 041a 8D91 ld r24,X+
  1700. 1670 041c 9C91 ld r25,X
  1701. 1671 041e 0E94 0000 call BankNodePointer
  1702. 1672 0422 FC01 movw r30,r24
  1703. 1673 0424 8481 ldd r24,Z+4
  1704. 1674 0426 9581 ldd r25,Z+5
  1705. 1675 0428 A681 ldd r26,Z+6
  1706. 1676 042a B781 ldd r27,Z+7
  1707. 1677 042c 00C0 rjmp .L155
  1708. 1678 .L132:
  1709. 1679 042e F801 movw r30,r16
  1710. 1680 0430 8281 ldd r24,Z+2
  1711. 1681 0432 9381 ldd r25,Z+3
  1712. 1682 0434 A481 ldd r26,Z+4
  1713. 1683 0436 B581 ldd r27,Z+5
  1714. 1684 .L155:
  1715. 1685 0438 880E add r8,r24
  1716. 1686 043a 991E adc r9,r25
  1717. 1687 043c AA1E adc r10,r26
  1718. 1688 043e BB1E adc r11,r27
  1719. 1689 .L131:
  1720. 1690 0440 B7FC sbrc r11,7
  1721. 1691 0442 00C0 rjmp .L158
  1722. 1692 0444 D801 movw r26,r16
  1723. 1693 0446 8D91 ld r24,X+
  1724. 1694 0448 9C91 ld r25,X
  1725. 1695 044a 0E94 0000 call BankNodePointer
  1726. 1696 044e FC01 movw r30,r24
  1727. 1697 0450 8481 ldd r24,Z+4
  1728. 1698 0452 9581 ldd r25,Z+5
  1729. 1699 0454 A681 ldd r26,Z+6
  1730. 1700 0456 B781 ldd r27,Z+7
  1731. 1701 0458 8815 cp r24,r8
  1732. 1702 045a 9905 cpc r25,r9
  1733. 1703 045c AA05 cpc r26,r10
  1734. 1704 045e BB05 cpc r27,r11
  1735. 1705 0460 04F0 brlt .L158
  1736. 1706 0462 D801 movw r26,r16
  1737. 1707 0464 1296 adiw r26,2
  1738. 1708 0466 8D92 st X+,r8
  1739. 1709 0468 9D92 st X+,r9
  1740. 1710 046a AD92 st X+,r10
  1741. GAS LISTING /tmp/ccr7450G.s page 31
  1742. 1711 046c BC92 st X,r11
  1743. 1712 046e 1597 sbiw r26,2+3
  1744. 1713 0470 F301 movw r30,r6
  1745. 1714 0472 8082 st Z,r8
  1746. 1715 0474 9182 std Z+1,r9
  1747. 1716 0476 A282 std Z+2,r10
  1748. 1717 0478 B382 std Z+3,r11
  1749. 1718 047a 00C0 rjmp .L158
  1750. 1719 .L142:
  1751. 1720 047c 06E1 ldi r16,lo8(22)
  1752. 1721 047e 10E0 ldi r17,0
  1753. 1722 0480 00C0 rjmp .L148
  1754. 1723 .L137:
  1755. 1724 0482 01E1 ldi r16,lo8(17)
  1756. 1725 0484 10E0 ldi r17,0
  1757. 1726 0486 00C0 rjmp .L117
  1758. 1727 .L138:
  1759. 1728 0488 0CE1 ldi r16,lo8(28)
  1760. 1729 048a 10E0 ldi r17,0
  1761. 1730 .L117:
  1762. 1731 048c 1093 0000 sts errno+1,r17
  1763. 1732 0490 0093 0000 sts errno,r16
  1764. 1733 .L158:
  1765. 1734 0494 0FEF ldi r16,lo8(-1)
  1766. 1735 0496 1FEF ldi r17,lo8(-1)
  1767. 1736 .L148:
  1768. 1737 0498 C801 movw r24,r16
  1769. 1738 /* epilogue start */
  1770. 1739 049a 2896 adiw r28,8
  1771. 1740 049c 0FB6 in __tmp_reg__,__SREG__
  1772. 1741 049e F894 cli
  1773. 1742 04a0 DEBF out __SP_H__,r29
  1774. 1743 04a2 0FBE out __SREG__,__tmp_reg__
  1775. 1744 04a4 CDBF out __SP_L__,r28
  1776. 1745 04a6 DF91 pop r29
  1777. 1746 04a8 CF91 pop r28
  1778. 1747 04aa 1F91 pop r17
  1779. 1748 04ac 0F91 pop r16
  1780. 1749 04ae FF90 pop r15
  1781. 1750 04b0 EF90 pop r14
  1782. 1751 04b2 BF90 pop r11
  1783. 1752 04b4 AF90 pop r10
  1784. 1753 04b6 9F90 pop r9
  1785. 1754 04b8 8F90 pop r8
  1786. 1755 04ba 7F90 pop r7
  1787. 1756 04bc 6F90 pop r6
  1788. 1757 04be 5F90 pop r5
  1789. 1758 04c0 4F90 pop r4
  1790. 1759 04c2 0895 ret
  1791. 1760 .size PnutIOCtl, .-PnutIOCtl
  1792. 1761 .section .text.PnutFileSize,"ax",@progbits
  1793. 1762 .type PnutFileSize, @function
  1794. 1763 PnutFileSize:
  1795. 1764 /* prologue: function */
  1796. 1765 /* frame size = 0 */
  1797. 1766 /* stack size = 0 */
  1798. 1767 .L__stack_usage = 0
  1799. GAS LISTING /tmp/ccr7450G.s page 32
  1800. 1768 0000 DC01 movw r26,r24
  1801. 1769 0002 1296 adiw r26,2
  1802. 1770 0004 ED91 ld r30,X+
  1803. 1771 0006 FC91 ld r31,X
  1804. 1772 0008 1397 sbiw r26,2+1
  1805. 1773 000a 8081 ld r24,Z
  1806. 1774 000c 9181 ldd r25,Z+1
  1807. 1775 000e 0E94 0000 call BankNodePointer
  1808. 1776 0012 FC01 movw r30,r24
  1809. 1777 0014 6481 ldd r22,Z+4
  1810. 1778 0016 7581 ldd r23,Z+5
  1811. 1779 0018 8681 ldd r24,Z+6
  1812. 1780 001a 9781 ldd r25,Z+7
  1813. 1781 001c 0895 ret
  1814. 1782 .size PnutFileSize, .-PnutFileSize
  1815. 1783 .section .text.PnutFileClose,"ax",@progbits
  1816. 1784 .type PnutFileClose, @function
  1817. 1785 PnutFileClose:
  1818. 1786 0000 0F93 push r16
  1819. 1787 0002 1F93 push r17
  1820. 1788 0004 CF93 push r28
  1821. 1789 0006 DF93 push r29
  1822. 1790 /* prologue: function */
  1823. 1791 /* frame size = 0 */
  1824. 1792 /* stack size = 4 */
  1825. 1793 .L__stack_usage = 4
  1826. 1794 0008 EC01 movw r28,r24
  1827. 1795 000a CF3F cpi r28,-1
  1828. 1796 000c 8FEF ldi r24,-1
  1829. 1797 000e D807 cpc r29,r24
  1830. 1798 0010 01F0 breq .L164
  1831. 1799 0012 0A81 ldd r16,Y+2
  1832. 1800 0014 1B81 ldd r17,Y+3
  1833. 1801 0016 0115 cp r16,__zero_reg__
  1834. 1802 0018 1105 cpc r17,__zero_reg__
  1835. 1803 001a 01F0 breq .L163
  1836. 1804 001c F801 movw r30,r16
  1837. 1805 001e 8081 ld r24,Z
  1838. 1806 0020 9181 ldd r25,Z+1
  1839. 1807 0022 0E94 0000 call BankNodePointer
  1840. 1808 0026 FC01 movw r30,r24
  1841. 1809 0028 9181 ldd r25,Z+1
  1842. 1810 002a 9150 subi r25,lo8(-(-1))
  1843. 1811 002c 9183 std Z+1,r25
  1844. 1812 002e C801 movw r24,r16
  1845. 1813 0030 0E94 0000 call free
  1846. 1814 .L163:
  1847. 1815 0034 CE01 movw r24,r28
  1848. 1816 0036 0E94 0000 call free
  1849. 1817 003a 80E0 ldi r24,0
  1850. 1818 003c 90E0 ldi r25,0
  1851. 1819 003e 00C0 rjmp .L162
  1852. 1820 .L164:
  1853. 1821 0040 86E1 ldi r24,lo8(22)
  1854. 1822 0042 90E0 ldi r25,0
  1855. 1823 .L162:
  1856. 1824 /* epilogue start */
  1857. GAS LISTING /tmp/ccr7450G.s page 33
  1858. 1825 0044 DF91 pop r29
  1859. 1826 0046 CF91 pop r28
  1860. 1827 0048 1F91 pop r17
  1861. 1828 004a 0F91 pop r16
  1862. 1829 004c 0895 ret
  1863. 1830 .size PnutFileClose, .-PnutFileClose
  1864. 1831 .section .text.PnutFileOpen,"ax",@progbits
  1865. 1832 .type PnutFileOpen, @function
  1866. 1833 PnutFileOpen:
  1867. 1834 0000 AF92 push r10
  1868. 1835 0002 BF92 push r11
  1869. 1836 0004 CF92 push r12
  1870. 1837 0006 DF92 push r13
  1871. 1838 0008 EF92 push r14
  1872. 1839 000a FF92 push r15
  1873. 1840 000c 0F93 push r16
  1874. 1841 000e 1F93 push r17
  1875. 1842 0010 CF93 push r28
  1876. 1843 0012 DF93 push r29
  1877. 1844 0014 00D0 rcall .
  1878. 1845 0016 00D0 rcall .
  1879. 1846 0018 CDB7 in r28,__SP_L__
  1880. 1847 001a DEB7 in r29,__SP_H__
  1881. 1848 /* prologue: function */
  1882. 1849 /* frame size = 6 */
  1883. 1850 /* stack size = 16 */
  1884. 1851 .L__stack_usage = 16
  1885. 1852 001c 5C01 movw r10,r24
  1886. 1853 001e 6A01 movw r12,r20
  1887. 1854 0020 AE01 movw r20,r28
  1888. 1855 0022 4F5F subi r20,-1
  1889. 1856 0024 5F4F sbci r21,-1
  1890. 1857 0026 8091 0000 lds r24,root
  1891. 1858 002a 9091 0000 lds r25,root+1
  1892. 1859 002e 0E94 0000 call PnutDirFindPath
  1893. 1860 0032 0097 sbiw r24,0
  1894. 1861 0034 01F4 brne .L169
  1895. 1862 0036 8981 ldd r24,Y+1
  1896. 1863 0038 9A81 ldd r25,Y+2
  1897. 1864 003a 0E94 0000 call BankNodePointer
  1898. 1865 003e FC01 movw r30,r24
  1899. 1866 0040 8081 ld r24,Z
  1900. 1867 0042 8823 tst r24
  1901. 1868 0044 01F0 breq .L170
  1902. 1869 0046 85E1 ldi r24,lo8(21)
  1903. 1870 0048 90E0 ldi r25,0
  1904. 1871 004a 00C0 rjmp .L196
  1905. 1872 .L170:
  1906. 1873 004c C601 movw r24,r12
  1907. 1874 004e 8827 clr r24
  1908. 1875 0050 9570 andi r25,5
  1909. 1876 0052 8115 cp r24,__zero_reg__
  1910. 1877 0054 9540 sbci r25,5
  1911. 1878 0056 01F4 brne .L172
  1912. 1879 0058 81E1 ldi r24,lo8(17)
  1913. 1880 005a 90E0 ldi r25,0
  1914. 1881 .L196:
  1915. GAS LISTING /tmp/ccr7450G.s page 34
  1916. 1882 005c 9093 0000 sts errno+1,r25
  1917. 1883 0060 8093 0000 sts errno,r24
  1918. 1884 0064 00C0 rjmp .L171
  1919. 1885 .L172:
  1920. 1886 0066 0981 ldd r16,Y+1
  1921. 1887 0068 1A81 ldd r17,Y+2
  1922. 1888 006a D1FE sbrs r13,1
  1923. 1889 006c 00C0 rjmp .L173
  1924. 1890 006e C801 movw r24,r16
  1925. 1891 0070 0E94 0000 call PnutNodeDataRelease
  1926. 1892 0074 00C0 rjmp .L173
  1927. 1893 .L169:
  1928. 1894 0076 0297 sbiw r24,2
  1929. 1895 0078 01F0 breq .+2
  1930. 1896 007a 00C0 rjmp .L171
  1931. 1897 007c 8D81 ldd r24,Y+5
  1932. 1898 007e 9E81 ldd r25,Y+6
  1933. 1899 0080 892B or r24,r25
  1934. 1900 0082 01F4 brne .+2
  1935. 1901 0084 00C0 rjmp .L171
  1936. 1902 0086 D0FE sbrs r13,0
  1937. 1903 0088 00C0 rjmp .L171
  1938. 1904 008a 80E0 ldi r24,0
  1939. 1905 008c 0E94 0000 call PnutNodeAlloc
  1940. 1906 0090 8C01 movw r16,r24
  1941. 1907 0092 97FF sbrs r25,7
  1942. 1908 0094 00C0 rjmp .L174
  1943. 1909 0096 8CE1 ldi r24,lo8(28)
  1944. 1910 0098 90E0 ldi r25,0
  1945. 1911 009a 00C0 rjmp .L196
  1946. 1912 .L174:
  1947. 1913 009c 6D81 ldd r22,Y+5
  1948. 1914 009e 7E81 ldd r23,Y+6
  1949. 1915 00a0 AC01 movw r20,r24
  1950. 1916 00a2 8B81 ldd r24,Y+3
  1951. 1917 00a4 9C81 ldd r25,Y+4
  1952. 1918 00a6 0E94 0000 call PnutDirAddEntry
  1953. 1919 00aa 892B or r24,r25
  1954. 1920 00ac 01F0 breq .L176
  1955. 1921 00ae C801 movw r24,r16
  1956. 1922 00b0 0E94 0000 call PnutBlockRelease
  1957. 1923 00b4 00C0 rjmp .L171
  1958. 1924 .L173:
  1959. 1925 00b6 17FD sbrc r17,7
  1960. 1926 00b8 00C0 rjmp .L171
  1961. 1927 .L176:
  1962. 1928 00ba 88E0 ldi r24,lo8(8)
  1963. 1929 00bc 90E0 ldi r25,0
  1964. 1930 00be 0E94 0000 call malloc
  1965. 1931 00c2 7C01 movw r14,r24
  1966. 1932 00c4 892B or r24,r25
  1967. 1933 00c6 01F0 breq .L171
  1968. 1934 00c8 C601 movw r24,r12
  1969. 1935 00ca 8970 andi r24,9
  1970. 1936 00cc 9927 clr r25
  1971. 1937 00ce F701 movw r30,r14
  1972. 1938 00d0 2681 ldd r18,Z+6
  1973. GAS LISTING /tmp/ccr7450G.s page 35
  1974. 1939 00d2 3781 ldd r19,Z+7
  1975. 1940 00d4 822B or r24,r18
  1976. 1941 00d6 932B or r25,r19
  1977. 1942 00d8 9783 std Z+7,r25
  1978. 1943 00da 8683 std Z+6,r24
  1979. 1944 00dc C3FE sbrs r12,3
  1980. 1945 00de 00C0 rjmp .L179
  1981. 1946 00e0 C801 movw r24,r16
  1982. 1947 00e2 0E94 0000 call BankNodePointer
  1983. 1948 00e6 FC01 movw r30,r24
  1984. 1949 00e8 8481 ldd r24,Z+4
  1985. 1950 00ea 9581 ldd r25,Z+5
  1986. 1951 00ec A681 ldd r26,Z+6
  1987. 1952 00ee B781 ldd r27,Z+7
  1988. 1953 00f0 00C0 rjmp .L177
  1989. 1954 .L179:
  1990. 1955 00f2 80E0 ldi r24,0
  1991. 1956 00f4 90E0 ldi r25,0
  1992. 1957 00f6 DC01 movw r26,r24
  1993. 1958 .L177:
  1994. 1959 00f8 F701 movw r30,r14
  1995. 1960 00fa 8283 std Z+2,r24
  1996. 1961 00fc 9383 std Z+3,r25
  1997. 1962 00fe A483 std Z+4,r26
  1998. 1963 0100 B583 std Z+5,r27
  1999. 1964 0102 1183 std Z+1,r17
  2000. 1965 0104 0083 st Z,r16
  2001. 1966 0106 84E0 ldi r24,lo8(4)
  2002. 1967 0108 90E0 ldi r25,0
  2003. 1968 010a 0E94 0000 call malloc
  2004. 1969 010e 6C01 movw r12,r24
  2005. 1970 0110 0097 sbiw r24,0
  2006. 1971 0112 01F4 brne .L178
  2007. 1972 0114 C701 movw r24,r14
  2008. 1973 0116 0E94 0000 call free
  2009. 1974 011a 00C0 rjmp .L171
  2010. 1975 .L178:
  2011. 1976 011c FC01 movw r30,r24
  2012. 1977 011e B182 std Z+1,r11
  2013. 1978 0120 A082 st Z,r10
  2014. 1979 0122 F382 std Z+3,r15
  2015. 1980 0124 E282 std Z+2,r14
  2016. 1981 0126 C801 movw r24,r16
  2017. 1982 0128 0E94 0000 call BankNodePointer
  2018. 1983 012c FC01 movw r30,r24
  2019. 1984 012e 9181 ldd r25,Z+1
  2020. 1985 0130 9F5F subi r25,lo8(-(1))
  2021. 1986 0132 9183 std Z+1,r25
  2022. 1987 0134 C601 movw r24,r12
  2023. 1988 0136 00C0 rjmp .L195
  2024. 1989 .L171:
  2025. 1990 0138 8FEF ldi r24,lo8(-1)
  2026. 1991 013a 9FEF ldi r25,lo8(-1)
  2027. 1992 .L195:
  2028. 1993 /* epilogue start */
  2029. 1994 013c 2696 adiw r28,6
  2030. 1995 013e 0FB6 in __tmp_reg__,__SREG__
  2031. GAS LISTING /tmp/ccr7450G.s page 36
  2032. 1996 0140 F894 cli
  2033. 1997 0142 DEBF out __SP_H__,r29
  2034. 1998 0144 0FBE out __SREG__,__tmp_reg__
  2035. 1999 0146 CDBF out __SP_L__,r28
  2036. 2000 0148 DF91 pop r29
  2037. 2001 014a CF91 pop r28
  2038. 2002 014c 1F91 pop r17
  2039. 2003 014e 0F91 pop r16
  2040. 2004 0150 FF90 pop r15
  2041. 2005 0152 EF90 pop r14
  2042. 2006 0154 DF90 pop r13
  2043. 2007 0156 CF90 pop r12
  2044. 2008 0158 BF90 pop r11
  2045. 2009 015a AF90 pop r10
  2046. 2010 015c 0895 ret
  2047. 2011 .size PnutFileOpen, .-PnutFileOpen
  2048. 2012 .section .text.PnutFileWrite,"ax",@progbits
  2049. 2013 .type PnutFileWrite, @function
  2050. 2014 PnutFileWrite:
  2051. 2015 0000 4F92 push r4
  2052. 2016 0002 5F92 push r5
  2053. 2017 0004 6F92 push r6
  2054. 2018 0006 7F92 push r7
  2055. 2019 0008 8F92 push r8
  2056. 2020 000a 9F92 push r9
  2057. 2021 000c AF92 push r10
  2058. 2022 000e BF92 push r11
  2059. 2023 0010 CF92 push r12
  2060. 2024 0012 DF92 push r13
  2061. 2025 0014 EF92 push r14
  2062. 2026 0016 FF92 push r15
  2063. 2027 0018 0F93 push r16
  2064. 2028 001a 1F93 push r17
  2065. 2029 001c CF93 push r28
  2066. 2030 001e DF93 push r29
  2067. 2031 0020 00D0 rcall .
  2068. 2032 0022 1F92 push __zero_reg__
  2069. 2033 0024 CDB7 in r28,__SP_L__
  2070. 2034 0026 DEB7 in r29,__SP_H__
  2071. 2035 /* prologue: function */
  2072. 2036 /* frame size = 4 */
  2073. 2037 /* stack size = 20 */
  2074. 2038 .L__stack_usage = 20
  2075. 2039 0028 3B01 movw r6,r22
  2076. 2040 002a 6A01 movw r12,r20
  2077. 2041 002c FC01 movw r30,r24
  2078. 2042 002e 4280 ldd r4,Z+2
  2079. 2043 0030 5380 ldd r5,Z+3
  2080. 2044 0032 F201 movw r30,r4
  2081. 2045 0034 A080 ld r10,Z
  2082. 2046 0036 B180 ldd r11,Z+1
  2083. 2047 0038 812C mov r8,__zero_reg__
  2084. 2048 003a 912C mov r9,__zero_reg__
  2085. 2049 .L198:
  2086. 2050 003c C114 cp r12,__zero_reg__
  2087. 2051 003e D104 cpc r13,__zero_reg__
  2088. 2052 0040 01F0 breq .L204
  2089. GAS LISTING /tmp/ccr7450G.s page 37
  2090. 2053 0042 F201 movw r30,r4
  2091. 2054 0044 4281 ldd r20,Z+2
  2092. 2055 0046 5381 ldd r21,Z+3
  2093. 2056 0048 6481 ldd r22,Z+4
  2094. 2057 004a 7581 ldd r23,Z+5
  2095. 2058 004c EE24 clr r14
  2096. 2059 004e E394 inc r14
  2097. 2060 0050 F12C mov r15,__zero_reg__
  2098. 2061 0052 8E01 movw r16,r28
  2099. 2062 0054 0F5F subi r16,-1
  2100. 2063 0056 1F4F sbci r17,-1
  2101. 2064 0058 9E01 movw r18,r28
  2102. 2065 005a 2D5F subi r18,-3
  2103. 2066 005c 3F4F sbci r19,-1
  2104. 2067 005e C501 movw r24,r10
  2105. 2068 0060 0E94 0000 call PnutNodeGetDataPtr
  2106. 2069 0064 0097 sbiw r24,0
  2107. 2070 0066 01F4 brne .L199
  2108. 2071 0068 8981 ldd r24,Y+1
  2109. 2072 006a 9A81 ldd r25,Y+2
  2110. 2073 006c 8C15 cp r24,r12
  2111. 2074 006e 9D05 cpc r25,r13
  2112. 2075 0070 00F0 brlo .L200
  2113. 2076 0072 DA82 std Y+2,r13
  2114. 2077 0074 C982 std Y+1,r12
  2115. 2078 0076 C12C mov r12,__zero_reg__
  2116. 2079 0078 D12C mov r13,__zero_reg__
  2117. 2080 007a 00C0 rjmp .L201
  2118. 2081 .L200:
  2119. 2082 007c C81A sub r12,r24
  2120. 2083 007e D90A sbc r13,r25
  2121. 2084 .L201:
  2122. 2085 0080 4981 ldd r20,Y+1
  2123. 2086 0082 5A81 ldd r21,Y+2
  2124. 2087 0084 B301 movw r22,r6
  2125. 2088 0086 8B81 ldd r24,Y+3
  2126. 2089 0088 9C81 ldd r25,Y+4
  2127. 2090 008a 0E94 0000 call memcpy
  2128. 2091 008e 2981 ldd r18,Y+1
  2129. 2092 0090 3A81 ldd r19,Y+2
  2130. 2093 0092 820E add r8,r18
  2131. 2094 0094 931E adc r9,r19
  2132. 2095 0096 620E add r6,r18
  2133. 2096 0098 731E adc r7,r19
  2134. 2097 009a F201 movw r30,r4
  2135. 2098 009c 8281 ldd r24,Z+2
  2136. 2099 009e 9381 ldd r25,Z+3
  2137. 2100 00a0 A481 ldd r26,Z+4
  2138. 2101 00a2 B581 ldd r27,Z+5
  2139. 2102 00a4 820F add r24,r18
  2140. 2103 00a6 931F adc r25,r19
  2141. 2104 00a8 A11D adc r26,__zero_reg__
  2142. 2105 00aa B11D adc r27,__zero_reg__
  2143. 2106 00ac 8283 std Z+2,r24
  2144. 2107 00ae 9383 std Z+3,r25
  2145. 2108 00b0 A483 std Z+4,r26
  2146. 2109 00b2 B583 std Z+5,r27
  2147. GAS LISTING /tmp/ccr7450G.s page 38
  2148. 2110 00b4 00C0 rjmp .L198
  2149. 2111 .L199:
  2150. 2112 00b6 4C97 sbiw r24,28
  2151. 2113 00b8 01F4 brne .L209
  2152. 2114 .L204:
  2153. 2115 00ba C501 movw r24,r10
  2154. 2116 00bc 0E94 0000 call BankNodePointer
  2155. 2117 00c0 FC01 movw r30,r24
  2156. 2118 00c2 4481 ldd r20,Z+4
  2157. 2119 00c4 5581 ldd r21,Z+5
  2158. 2120 00c6 6681 ldd r22,Z+6
  2159. 2121 00c8 7781 ldd r23,Z+7
  2160. 2122 00ca F201 movw r30,r4
  2161. 2123 00cc 8281 ldd r24,Z+2
  2162. 2124 00ce 9381 ldd r25,Z+3
  2163. 2125 00d0 A481 ldd r26,Z+4
  2164. 2126 00d2 B581 ldd r27,Z+5
  2165. 2127 00d4 4817 cp r20,r24
  2166. 2128 00d6 5907 cpc r21,r25
  2167. 2129 00d8 6A07 cpc r22,r26
  2168. 2130 00da 7B07 cpc r23,r27
  2169. 2131 00dc 00F4 brsh .L203
  2170. 2132 00de C501 movw r24,r10
  2171. 2133 00e0 0E94 0000 call BankNodePointer
  2172. 2134 00e4 F201 movw r30,r4
  2173. 2135 00e6 4281 ldd r20,Z+2
  2174. 2136 00e8 5381 ldd r21,Z+3
  2175. 2137 00ea 6481 ldd r22,Z+4
  2176. 2138 00ec 7581 ldd r23,Z+5
  2177. 2139 00ee FC01 movw r30,r24
  2178. 2140 00f0 4483 std Z+4,r20
  2179. 2141 00f2 5583 std Z+5,r21
  2180. 2142 00f4 6683 std Z+6,r22
  2181. 2143 00f6 7783 std Z+7,r23
  2182. 2144 .L203:
  2183. 2145 00f8 C501 movw r24,r10
  2184. 2146 00fa 0E94 0000 call BankNodePointer
  2185. 2147 00fe 6C01 movw r12,r24
  2186. 2148 0100 80E0 ldi r24,0
  2187. 2149 0102 90E0 ldi r25,0
  2188. 2150 0104 0E94 0000 call time
  2189. 2151 0108 F601 movw r30,r12
  2190. 2152 010a 6087 std Z+8,r22
  2191. 2153 010c 7187 std Z+9,r23
  2192. 2154 010e 8287 std Z+10,r24
  2193. 2155 0110 9387 std Z+11,r25
  2194. 2156 .L209:
  2195. 2157 0112 C401 movw r24,r8
  2196. 2158 /* epilogue start */
  2197. 2159 0114 0F90 pop __tmp_reg__
  2198. 2160 0116 0F90 pop __tmp_reg__
  2199. 2161 0118 0F90 pop __tmp_reg__
  2200. 2162 011a 0F90 pop __tmp_reg__
  2201. 2163 011c DF91 pop r29
  2202. 2164 011e CF91 pop r28
  2203. 2165 0120 1F91 pop r17
  2204. 2166 0122 0F91 pop r16
  2205. GAS LISTING /tmp/ccr7450G.s page 39
  2206. 2167 0124 FF90 pop r15
  2207. 2168 0126 EF90 pop r14
  2208. 2169 0128 DF90 pop r13
  2209. 2170 012a CF90 pop r12
  2210. 2171 012c BF90 pop r11
  2211. 2172 012e AF90 pop r10
  2212. 2173 0130 9F90 pop r9
  2213. 2174 0132 8F90 pop r8
  2214. 2175 0134 7F90 pop r7
  2215. 2176 0136 6F90 pop r6
  2216. 2177 0138 5F90 pop r5
  2217. 2178 013a 4F90 pop r4
  2218. 2179 013c 0895 ret
  2219. 2180 .size PnutFileWrite, .-PnutFileWrite
  2220. 2181 .section .text.PnutFileRead,"ax",@progbits
  2221. 2182 .type PnutFileRead, @function
  2222. 2183 PnutFileRead:
  2223. 2184 0000 4F92 push r4
  2224. 2185 0002 5F92 push r5
  2225. 2186 0004 6F92 push r6
  2226. 2187 0006 7F92 push r7
  2227. 2188 0008 8F92 push r8
  2228. 2189 000a 9F92 push r9
  2229. 2190 000c AF92 push r10
  2230. 2191 000e BF92 push r11
  2231. 2192 0010 CF92 push r12
  2232. 2193 0012 DF92 push r13
  2233. 2194 0014 EF92 push r14
  2234. 2195 0016 FF92 push r15
  2235. 2196 0018 0F93 push r16
  2236. 2197 001a 1F93 push r17
  2237. 2198 001c CF93 push r28
  2238. 2199 001e DF93 push r29
  2239. 2200 0020 00D0 rcall .
  2240. 2201 0022 1F92 push __zero_reg__
  2241. 2202 0024 CDB7 in r28,__SP_L__
  2242. 2203 0026 DEB7 in r29,__SP_H__
  2243. 2204 /* prologue: function */
  2244. 2205 /* frame size = 4 */
  2245. 2206 /* stack size = 20 */
  2246. 2207 .L__stack_usage = 20
  2247. 2208 0028 3B01 movw r6,r22
  2248. 2209 002a 6A01 movw r12,r20
  2249. 2210 002c FC01 movw r30,r24
  2250. 2211 002e 4280 ldd r4,Z+2
  2251. 2212 0030 5380 ldd r5,Z+3
  2252. 2213 0032 F201 movw r30,r4
  2253. 2214 0034 8080 ld r8,Z
  2254. 2215 0036 9180 ldd r9,Z+1
  2255. 2216 0038 C401 movw r24,r8
  2256. 2217 003a 0E94 0000 call BankNodePointer
  2257. 2218 003e A601 movw r20,r12
  2258. 2219 0040 0D2C mov __tmp_reg__,r13
  2259. 2220 0042 000C lsl r0
  2260. 2221 0044 660B sbc r22,r22
  2261. 2222 0046 770B sbc r23,r23
  2262. 2223 0048 FC01 movw r30,r24
  2263. GAS LISTING /tmp/ccr7450G.s page 40
  2264. 2224 004a 8481 ldd r24,Z+4
  2265. 2225 004c 9581 ldd r25,Z+5
  2266. 2226 004e A681 ldd r26,Z+6
  2267. 2227 0050 B781 ldd r27,Z+7
  2268. 2228 0052 F201 movw r30,r4
  2269. 2229 0054 0281 ldd r16,Z+2
  2270. 2230 0056 1381 ldd r17,Z+3
  2271. 2231 0058 2481 ldd r18,Z+4
  2272. 2232 005a 3581 ldd r19,Z+5
  2273. 2233 005c 801B sub r24,r16
  2274. 2234 005e 910B sbc r25,r17
  2275. 2235 0060 A20B sbc r26,r18
  2276. 2236 0062 B30B sbc r27,r19
  2277. 2237 0064 8417 cp r24,r20
  2278. 2238 0066 9507 cpc r25,r21
  2279. 2239 0068 A607 cpc r26,r22
  2280. 2240 006a B707 cpc r27,r23
  2281. 2241 006c 00F4 brsh .L211
  2282. 2242 006e C401 movw r24,r8
  2283. 2243 0070 0E94 0000 call BankNodePointer
  2284. 2244 0074 FC01 movw r30,r24
  2285. 2245 0076 C480 ldd r12,Z+4
  2286. 2246 0078 D580 ldd r13,Z+5
  2287. 2247 007a F201 movw r30,r4
  2288. 2248 007c 8281 ldd r24,Z+2
  2289. 2249 007e 9381 ldd r25,Z+3
  2290. 2250 0080 C81A sub r12,r24
  2291. 2251 0082 D90A sbc r13,r25
  2292. 2252 .L211:
  2293. 2253 0084 A12C mov r10,__zero_reg__
  2294. 2254 0086 B12C mov r11,__zero_reg__
  2295. 2255 .L212:
  2296. 2256 0088 C114 cp r12,__zero_reg__
  2297. 2257 008a D104 cpc r13,__zero_reg__
  2298. 2258 008c 01F0 breq .L218
  2299. 2259 008e F201 movw r30,r4
  2300. 2260 0090 4281 ldd r20,Z+2
  2301. 2261 0092 5381 ldd r21,Z+3
  2302. 2262 0094 6481 ldd r22,Z+4
  2303. 2263 0096 7581 ldd r23,Z+5
  2304. 2264 0098 E12C mov r14,__zero_reg__
  2305. 2265 009a F12C mov r15,__zero_reg__
  2306. 2266 009c 8E01 movw r16,r28
  2307. 2267 009e 0F5F subi r16,-1
  2308. 2268 00a0 1F4F sbci r17,-1
  2309. 2269 00a2 9E01 movw r18,r28
  2310. 2270 00a4 2D5F subi r18,-3
  2311. 2271 00a6 3F4F sbci r19,-1
  2312. 2272 00a8 C401 movw r24,r8
  2313. 2273 00aa 0E94 0000 call PnutNodeGetDataPtr
  2314. 2274 00ae 892B or r24,r25
  2315. 2275 00b0 01F4 brne .L218
  2316. 2276 00b2 8981 ldd r24,Y+1
  2317. 2277 00b4 9A81 ldd r25,Y+2
  2318. 2278 00b6 8C15 cp r24,r12
  2319. 2279 00b8 9D05 cpc r25,r13
  2320. 2280 00ba 00F0 brlo .L214
  2321. GAS LISTING /tmp/ccr7450G.s page 41
  2322. 2281 00bc DA82 std Y+2,r13
  2323. 2282 00be C982 std Y+1,r12
  2324. 2283 00c0 C12C mov r12,__zero_reg__
  2325. 2284 00c2 D12C mov r13,__zero_reg__
  2326. 2285 00c4 00C0 rjmp .L215
  2327. 2286 .L214:
  2328. 2287 00c6 C81A sub r12,r24
  2329. 2288 00c8 D90A sbc r13,r25
  2330. 2289 .L215:
  2331. 2290 00ca 0981 ldd r16,Y+1
  2332. 2291 00cc 1A81 ldd r17,Y+2
  2333. 2292 00ce 6B81 ldd r22,Y+3
  2334. 2293 00d0 7C81 ldd r23,Y+4
  2335. 2294 00d2 A801 movw r20,r16
  2336. 2295 00d4 C301 movw r24,r6
  2337. 2296 00d6 0E94 0000 call memcpy
  2338. 2297 00da A00E add r10,r16
  2339. 2298 00dc B11E adc r11,r17
  2340. 2299 00de 600E add r6,r16
  2341. 2300 00e0 711E adc r7,r17
  2342. 2301 00e2 F201 movw r30,r4
  2343. 2302 00e4 8281 ldd r24,Z+2
  2344. 2303 00e6 9381 ldd r25,Z+3
  2345. 2304 00e8 A481 ldd r26,Z+4
  2346. 2305 00ea B581 ldd r27,Z+5
  2347. 2306 00ec 800F add r24,r16
  2348. 2307 00ee 911F adc r25,r17
  2349. 2308 00f0 A11D adc r26,__zero_reg__
  2350. 2309 00f2 B11D adc r27,__zero_reg__
  2351. 2310 00f4 8283 std Z+2,r24
  2352. 2311 00f6 9383 std Z+3,r25
  2353. 2312 00f8 A483 std Z+4,r26
  2354. 2313 00fa B583 std Z+5,r27
  2355. 2314 00fc 00C0 rjmp .L212
  2356. 2315 .L218:
  2357. 2316 00fe C501 movw r24,r10
  2358. 2317 /* epilogue start */
  2359. 2318 0100 0F90 pop __tmp_reg__
  2360. 2319 0102 0F90 pop __tmp_reg__
  2361. 2320 0104 0F90 pop __tmp_reg__
  2362. 2321 0106 0F90 pop __tmp_reg__
  2363. 2322 0108 DF91 pop r29
  2364. 2323 010a CF91 pop r28
  2365. 2324 010c 1F91 pop r17
  2366. 2325 010e 0F91 pop r16
  2367. 2326 0110 FF90 pop r15
  2368. 2327 0112 EF90 pop r14
  2369. 2328 0114 DF90 pop r13
  2370. 2329 0116 CF90 pop r12
  2371. 2330 0118 BF90 pop r11
  2372. 2331 011a AF90 pop r10
  2373. 2332 011c 9F90 pop r9
  2374. 2333 011e 8F90 pop r8
  2375. 2334 0120 7F90 pop r7
  2376. 2335 0122 6F90 pop r6
  2377. 2336 0124 5F90 pop r5
  2378. 2337 0126 4F90 pop r4
  2379. GAS LISTING /tmp/ccr7450G.s page 42
  2380. 2338 0128 0895 ret
  2381. 2339 .size PnutFileRead, .-PnutFileRead
  2382. 2340 .global devPnut
  2383. 2341 .data
  2384. 2342 .type devPnut, @object
  2385. 2343 .size devPnut, 37
  2386. 2344 devPnut:
  2387. 2345 0000 0000 .word 0
  2388. 2346 0002 50 .byte 80
  2389. 2347 0003 4E .byte 78
  2390. 2348 0004 55 .byte 85
  2391. 2349 0005 54 .byte 84
  2392. 2350 0006 00 .byte 0
  2393. 2351 0007 00 .byte 0
  2394. 2352 0008 00 .byte 0
  2395. 2353 0009 00 .byte 0
  2396. 2354 000a 00 .byte 0
  2397. 2355 000b 00 .byte 0
  2398. 2356 000c 0000 .word 0
  2399. 2357 000e 00 .byte 0
  2400. 2358 000f 0000 .word 0
  2401. 2359 0011 0000 .word 0
  2402. 2360 0013 0000 .word gs(PnutInit)
  2403. 2361 0015 0000 .word gs(PnutIOCtl)
  2404. 2362 0017 0000 .word gs(PnutFileRead)
  2405. 2363 0019 0000 .word gs(PnutFileWrite)
  2406. 2364 001b 0000 .word gs(PnutFileWrite_P)
  2407. 2365 001d 0000 .word gs(PnutFileOpen)
  2408. 2366 001f 0000 .word gs(PnutFileClose)
  2409. 2367 0021 0000 .word gs(PnutFileSize)
  2410. 2368 0023 0000 .word 0
  2411. 2369 .type blockFreeList, @object
  2412. 2370 .size blockFreeList, 2
  2413. 2371 blockFreeList:
  2414. 2372 0025 FFFF .word -1
  2415. 2373 .local root
  2416. 2374 .comm root,2,1
  2417. 2375 .ident "GCC: (GNU) 5.3.0"
  2418. 2376 .global __do_copy_data
  2419. 2377 .global __do_clear_bss
  2420. GAS LISTING /tmp/ccr7450G.s page 43
  2421. DEFINED SYMBOLS
  2422. *ABS*:0000000000000000 pnutfs.c
  2423. /tmp/ccr7450G.s:2 *ABS*:000000000000003e __SP_H__
  2424. /tmp/ccr7450G.s:3 *ABS*:000000000000003d __SP_L__
  2425. /tmp/ccr7450G.s:4 *ABS*:000000000000003f __SREG__
  2426. /tmp/ccr7450G.s:5 *ABS*:000000000000003b __RAMPZ__
  2427. /tmp/ccr7450G.s:6 *ABS*:0000000000000000 __tmp_reg__
  2428. /tmp/ccr7450G.s:7 *ABS*:0000000000000001 __zero_reg__
  2429. /tmp/ccr7450G.s:10 .text.PnutFileWrite_P:0000000000000000 PnutFileWrite_P
  2430. /tmp/ccr7450G.s:22 .text.BankSelect:0000000000000000 BankSelect
  2431. /tmp/ccr7450G.s:44 .text.BankNodePointer:0000000000000000 BankNodePointer
  2432. /tmp/ccr7450G.s:74 .text.PnutBlockAlloc:0000000000000000 PnutBlockAlloc
  2433. /tmp/ccr7450G.s:2371 .data:0000000000000025 blockFreeList
  2434. /tmp/ccr7450G.s:109 .text.PnutNodeGetDataPtr:0000000000000000 PnutNodeGetDataPtr
  2435. /tmp/ccr7450G.s:253 .text.PnutDirFindEntry:0000000000000000 PnutDirFindEntry
  2436. /tmp/ccr7450G.s:399 .text.PnutDirFindPath:0000000000000000 PnutDirFindPath
  2437. /tmp/ccr7450G.s:541 .text.PnutNodeAlloc:0000000000000000 PnutNodeAlloc
  2438. /tmp/ccr7450G.s:589 .text.PnutDirAddEntry:0000000000000000 PnutDirAddEntry
  2439. /tmp/ccr7450G.s:724 .text.PnutBlockRelease:0000000000000000 PnutBlockRelease
  2440. /tmp/ccr7450G.s:750 .text.PnutInit:0000000000000000 PnutInit
  2441. .bss:0000000000000000 root
  2442. /tmp/ccr7450G.s:808 .text.PnutNodeDataRelease:0000000000000000 PnutNodeDataRelease
  2443. /tmp/ccr7450G.s:893 .text.PnutNodeRelease:0000000000000000 PnutNodeRelease
  2444. /tmp/ccr7450G.s:910 .text.PnutDelete:0000000000000000 PnutDelete
  2445. /tmp/ccr7450G.s:1155 .text.PnutIOCtl:0000000000000000 PnutIOCtl
  2446. /tmp/ccr7450G.s:1763 .text.PnutFileSize:0000000000000000 PnutFileSize
  2447. /tmp/ccr7450G.s:1785 .text.PnutFileClose:0000000000000000 PnutFileClose
  2448. /tmp/ccr7450G.s:1833 .text.PnutFileOpen:0000000000000000 PnutFileOpen
  2449. /tmp/ccr7450G.s:2014 .text.PnutFileWrite:0000000000000000 PnutFileWrite
  2450. /tmp/ccr7450G.s:2183 .text.PnutFileRead:0000000000000000 PnutFileRead
  2451. /tmp/ccr7450G.s:2344 .data:0000000000000000 devPnut
  2452. UNDEFINED SYMBOLS
  2453. strncmp
  2454. time
  2455. strcpy
  2456. strcmp
  2457. errno
  2458. malloc
  2459. free
  2460. memcpy
  2461. __do_copy_data
  2462. __do_clear_bss