uartavr.lst 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827
  1. GAS LISTING /tmp/ccWlS2uD.s page 1
  2. 1 .file "uartavr.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.TxComplete,"ax",@progbits
  10. 9 .type TxComplete, @function
  11. 10 TxComplete:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 DC01 movw r26,r24
  17. 16 0002 1F96 adiw r26,15
  18. 17 0004 ED91 ld r30,X+
  19. 18 0006 FC91 ld r31,X
  20. 19 0008 5097 sbiw r26,15+1
  21. 20 000a 9085 ldd r25,Z+8
  22. 21 000c 8185 ldd r24,Z+9
  23. 22 000e 9817 cp r25,r24
  24. 23 0010 01F0 breq .L2
  25. 24 0012 1C96 adiw r26,12
  26. 25 0014 8D91 ld r24,X+
  27. 26 0016 9C91 ld r25,X
  28. 27 0018 1D97 sbiw r26,12+1
  29. 28 001a 892B or r24,r25
  30. 29 001c 01F0 breq .L3
  31. 30 001e 8085 ldd r24,Z+8
  32. 31 0020 DF01 movw r26,r30
  33. 32 0022 A80F add r26,r24
  34. 33 0024 B11D adc r27,__zero_reg__
  35. 34 0026 A45F subi r26,-12
  36. 35 0028 BE4F sbci r27,-2
  37. 36 002a 8C91 ld r24,X
  38. 37 002c 8093 CE00 sts 206,r24
  39. 38 0030 00C0 rjmp .L4
  40. 39 .L3:
  41. 40 0032 8085 ldd r24,Z+8
  42. 41 0034 DF01 movw r26,r30
  43. 42 0036 A80F add r26,r24
  44. 43 0038 B11D adc r27,__zero_reg__
  45. 44 003a A45F subi r26,-12
  46. 45 003c BE4F sbci r27,-2
  47. 46 003e 8C91 ld r24,X
  48. 47 0040 8093 C600 sts 198,r24
  49. 48 .L4:
  50. 49 0044 8085 ldd r24,Z+8
  51. 50 0046 8F5F subi r24,lo8(-(1))
  52. 51 0048 8087 std Z+8,r24
  53. 52 004a 0895 ret
  54. 53 .L2:
  55. 54 004c 1286 std Z+10,__zero_reg__
  56. 55 004e 5196 adiw r26,17
  57. 56 0050 0D90 ld __tmp_reg__,X+
  58. 57 0052 BC91 ld r27,X
  59. GAS LISTING /tmp/ccWlS2uD.s page 2
  60. 58 0054 A02D mov r26,__tmp_reg__
  61. 59 0056 1896 adiw r26,8
  62. 60 0058 ED91 ld r30,X+
  63. 61 005a FC91 ld r31,X
  64. 62 005c 1997 sbiw r26,8+1
  65. 63 005e 3097 sbiw r30,0
  66. 64 0060 01F4 brne .L6
  67. 65 0062 8FEF ldi r24,lo8(-1)
  68. 66 0064 9FEF ldi r25,lo8(-1)
  69. 67 0066 1996 adiw r26,8+1
  70. 68 0068 9C93 st X,r25
  71. 69 006a 8E93 st -X,r24
  72. 70 006c 1897 sbiw r26,8
  73. 71 006e 0895 ret
  74. 72 .L6:
  75. 73 0070 EF3F cpi r30,-1
  76. 74 0072 8FEF ldi r24,-1
  77. 75 0074 F807 cpc r31,r24
  78. 76 0076 01F0 breq .L1
  79. 77 0078 8481 ldd r24,Z+4
  80. 78 007a 9581 ldd r25,Z+5
  81. 79 007c 0196 adiw r24,1
  82. 80 007e 9583 std Z+5,r25
  83. 81 0080 8483 std Z+4,r24
  84. 82 .L1:
  85. 83 0082 0895 ret
  86. 84 .size TxComplete, .-TxComplete
  87. 85 .section .text.RxComplete,"ax",@progbits
  88. 86 .type RxComplete, @function
  89. 87 RxComplete:
  90. 88 0000 CF93 push r28
  91. 89 0002 DF93 push r29
  92. 90 /* prologue: function */
  93. 91 /* frame size = 0 */
  94. 92 /* stack size = 2 */
  95. 93 .L__stack_usage = 2
  96. 94 0004 DC01 movw r26,r24
  97. 95 0006 1F96 adiw r26,15
  98. 96 0008 ED91 ld r30,X+
  99. 97 000a FC91 ld r31,X
  100. 98 000c 5097 sbiw r26,15+1
  101. 99 000e 1C96 adiw r26,12
  102. 100 0010 8D91 ld r24,X+
  103. 101 0012 9C91 ld r25,X
  104. 102 0014 1D97 sbiw r26,12+1
  105. 103 0016 892B or r24,r25
  106. 104 0018 01F0 breq .L12
  107. 105 001a 9681 ldd r25,Z+6
  108. 106 001c 8091 CE00 lds r24,206
  109. 107 0020 00C0 rjmp .L19
  110. 108 .L12:
  111. 109 0022 9681 ldd r25,Z+6
  112. 110 0024 8091 C600 lds r24,198
  113. 111 .L19:
  114. 112 0028 EF01 movw r28,r30
  115. 113 002a C90F add r28,r25
  116. 114 002c D11D adc r29,__zero_reg__
  117. GAS LISTING /tmp/ccWlS2uD.s page 3
  118. 115 002e 8C87 std Y+12,r24
  119. 116 0030 8681 ldd r24,Z+6
  120. 117 0032 9781 ldd r25,Z+7
  121. 118 0034 9813 cpse r25,r24
  122. 119 0036 00C0 rjmp .L14
  123. 120 0038 5196 adiw r26,17
  124. 121 003a CD91 ld r28,X+
  125. 122 003c DC91 ld r29,X
  126. 123 003e 5297 sbiw r26,17+1
  127. 124 0040 AA85 ldd r26,Y+10
  128. 125 0042 BB85 ldd r27,Y+11
  129. 126 0044 1097 sbiw r26,0
  130. 127 0046 01F4 brne .L15
  131. 128 0048 8FEF ldi r24,lo8(-1)
  132. 129 004a 9FEF ldi r25,lo8(-1)
  133. 130 004c 9B87 std Y+11,r25
  134. 131 004e 8A87 std Y+10,r24
  135. 132 0050 00C0 rjmp .L14
  136. 133 .L15:
  137. 134 0052 AF3F cpi r26,-1
  138. 135 0054 8FEF ldi r24,-1
  139. 136 0056 B807 cpc r27,r24
  140. 137 0058 01F0 breq .L14
  141. 138 005a 1496 adiw r26,4
  142. 139 005c 8D91 ld r24,X+
  143. 140 005e 9C91 ld r25,X
  144. 141 0060 1597 sbiw r26,4+1
  145. 142 0062 0196 adiw r24,1
  146. 143 0064 1596 adiw r26,4+1
  147. 144 0066 9C93 st X,r25
  148. 145 0068 8E93 st -X,r24
  149. 146 006a 1497 sbiw r26,4
  150. 147 .L14:
  151. 148 006c 8681 ldd r24,Z+6
  152. 149 006e 8F5F subi r24,lo8(-(1))
  153. 150 0070 8683 std Z+6,r24
  154. 151 /* epilogue start */
  155. 152 0072 DF91 pop r29
  156. 153 0074 CF91 pop r28
  157. 154 0076 0895 ret
  158. 155 .size RxComplete, .-RxComplete
  159. 156 .section .text.UartAvrOutput,"ax",@progbits
  160. 157 .global UartAvrOutput
  161. 158 .type UartAvrOutput, @function
  162. 159 UartAvrOutput:
  163. 160 /* prologue: function */
  164. 161 /* frame size = 0 */
  165. 162 /* stack size = 0 */
  166. 163 .L__stack_usage = 0
  167. 164 0000 DC01 movw r26,r24
  168. 165 0002 1F96 adiw r26,15
  169. 166 0004 ED91 ld r30,X+
  170. 167 0006 FC91 ld r31,X
  171. 168 0008 5097 sbiw r26,15+1
  172. 169 000a 2285 ldd r18,Z+10
  173. 170 000c 2111 cpse r18,__zero_reg__
  174. 171 000e 00C0 rjmp .L21
  175. GAS LISTING /tmp/ccWlS2uD.s page 4
  176. 172 0010 3085 ldd r19,Z+8
  177. 173 0012 2185 ldd r18,Z+9
  178. 174 0014 3217 cp r19,r18
  179. 175 0016 01F0 breq .L21
  180. 176 0018 21E0 ldi r18,lo8(1)
  181. 177 001a 2287 std Z+10,r18
  182. 178 001c 1C96 adiw r26,12
  183. 179 001e 8D91 ld r24,X+
  184. 180 0020 9C91 ld r25,X
  185. 181 0022 1D97 sbiw r26,12+1
  186. 182 0024 892B or r24,r25
  187. 183 0026 01F0 breq .L22
  188. 184 0028 8085 ldd r24,Z+8
  189. 185 002a DF01 movw r26,r30
  190. 186 002c A80F add r26,r24
  191. 187 002e B11D adc r27,__zero_reg__
  192. 188 0030 A45F subi r26,-12
  193. 189 0032 BE4F sbci r27,-2
  194. 190 0034 8C91 ld r24,X
  195. 191 0036 8093 CE00 sts 206,r24
  196. 192 003a 00C0 rjmp .L23
  197. 193 .L22:
  198. 194 003c 8085 ldd r24,Z+8
  199. 195 003e DF01 movw r26,r30
  200. 196 0040 A80F add r26,r24
  201. 197 0042 B11D adc r27,__zero_reg__
  202. 198 0044 A45F subi r26,-12
  203. 199 0046 BE4F sbci r27,-2
  204. 200 0048 8C91 ld r24,X
  205. 201 004a 8093 C600 sts 198,r24
  206. 202 .L23:
  207. 203 004e 8085 ldd r24,Z+8
  208. 204 0050 8F5F subi r24,lo8(-(1))
  209. 205 0052 8087 std Z+8,r24
  210. 206 .L21:
  211. 207 0054 80E0 ldi r24,0
  212. 208 0056 90E0 ldi r25,0
  213. 209 0058 0895 ret
  214. 210 .size UartAvrOutput, .-UartAvrOutput
  215. 211 .section .text.UartAvrEnable,"ax",@progbits
  216. 212 .type UartAvrEnable, @function
  217. 213 UartAvrEnable:
  218. 214 /* prologue: function */
  219. 215 /* frame size = 0 */
  220. 216 /* stack size = 0 */
  221. 217 .L__stack_usage = 0
  222. 218 /* #APP */
  223. 219 ; 271 "../../nut/arch/avr/dev/uartavr.c" 1
  224. 220 0000 0FB6 in __tmp_reg__, __SREG__
  225. 221 0002 F894 cli
  226. 222 0004 0F92 push __tmp_reg__
  227. 223
  228. 224 ; 0 "" 2
  229. 225 /* #NOAPP */
  230. 226 0006 892B or r24,r25
  231. 227 0008 01F0 breq .L25
  232. 228 000a 88ED ldi r24,lo8(-40)
  233. GAS LISTING /tmp/ccWlS2uD.s page 5
  234. 229 000c 8093 C900 sts 201,r24
  235. 230 0010 00C0 rjmp .L26
  236. 231 .L25:
  237. 232 0012 88ED ldi r24,lo8(-40)
  238. 233 0014 8093 C100 sts 193,r24
  239. 234 .L26:
  240. 235 /* #APP */
  241. 236 ; 278 "../../nut/arch/avr/dev/uartavr.c" 1
  242. 237 0018 0F90 pop __tmp_reg__
  243. 238 001a 0FBE out __SREG__, __tmp_reg__
  244. 239
  245. 240 ; 0 "" 2
  246. 241 /* #NOAPP */
  247. 242 001c 0895 ret
  248. 243 .size UartAvrEnable, .-UartAvrEnable
  249. 244 .section .text.UartAvrInput,"ax",@progbits
  250. 245 .global UartAvrInput
  251. 246 .type UartAvrInput, @function
  252. 247 UartAvrInput:
  253. 248 0000 EF92 push r14
  254. 249 0002 FF92 push r15
  255. 250 0004 0F93 push r16
  256. 251 0006 1F93 push r17
  257. 252 0008 CF93 push r28
  258. 253 000a DF93 push r29
  259. 254 /* prologue: function */
  260. 255 /* frame size = 0 */
  261. 256 /* stack size = 6 */
  262. 257 .L__stack_usage = 6
  263. 258 000c FC01 movw r30,r24
  264. 259 000e C785 ldd r28,Z+15
  265. 260 0010 D089 ldd r29,Z+16
  266. 261 /* #APP */
  267. 262 ; 143 "../../nut/arch/avr/dev/uartavr.c" 1
  268. 263 0012 0FB6 in __tmp_reg__, __SREG__
  269. 264 0014 F894 cli
  270. 265 0016 0F92 push __tmp_reg__
  271. 266
  272. 267 ; 0 "" 2
  273. 268 /* #NOAPP */
  274. 269 0018 2E81 ldd r18,Y+6
  275. 270 /* #APP */
  276. 271 ; 145 "../../nut/arch/avr/dev/uartavr.c" 1
  277. 272 001a 0F90 pop __tmp_reg__
  278. 273 001c 0FBE out __SREG__, __tmp_reg__
  279. 274
  280. 275 ; 0 "" 2
  281. 276 /* #NOAPP */
  282. 277 001e 3F81 ldd r19,Y+7
  283. 278 0020 3217 cp r19,r18
  284. 279 0022 01F0 breq .L28
  285. 280 .L31:
  286. 281 0024 80E0 ldi r24,0
  287. 282 0026 90E0 ldi r25,0
  288. 283 0028 00C0 rjmp .L29
  289. 284 .L28:
  290. 285 002a FC01 movw r30,r24
  291. GAS LISTING /tmp/ccWlS2uD.s page 6
  292. 286 002c 0189 ldd r16,Z+17
  293. 287 002e 1289 ldd r17,Z+18
  294. 288 0030 7801 movw r14,r16
  295. 289 0032 FAE0 ldi r31,10
  296. 290 0034 EF0E add r14,r31
  297. 291 0036 F11C adc r15,__zero_reg__
  298. 292 .L30:
  299. 293 0038 F801 movw r30,r16
  300. 294 003a 4081 ld r20,Z
  301. 295 003c 5181 ldd r21,Z+1
  302. 296 003e 6281 ldd r22,Z+2
  303. 297 0040 7381 ldd r23,Z+3
  304. 298 0042 C701 movw r24,r14
  305. 299 0044 0E94 0000 call NutEventWait
  306. 300 /* #APP */
  307. 301 ; 163 "../../nut/arch/avr/dev/uartavr.c" 1
  308. 302 0048 0FB6 in __tmp_reg__, __SREG__
  309. 303 004a F894 cli
  310. 304 004c 0F92 push __tmp_reg__
  311. 305
  312. 306 ; 0 "" 2
  313. 307 /* #NOAPP */
  314. 308 004e 3F81 ldd r19,Y+7
  315. 309 0050 2E81 ldd r18,Y+6
  316. 310 /* #APP */
  317. 311 ; 165 "../../nut/arch/avr/dev/uartavr.c" 1
  318. 312 0052 0F90 pop __tmp_reg__
  319. 313 0054 0FBE out __SREG__, __tmp_reg__
  320. 314
  321. 315 ; 0 "" 2
  322. 316 /* #NOAPP */
  323. 317 0056 0097 sbiw r24,0
  324. 318 0058 01F4 brne .L29
  325. 319 005a 3217 cp r19,r18
  326. 320 005c 01F0 breq .L30
  327. 321 005e 00C0 rjmp .L31
  328. 322 .L29:
  329. 323 /* epilogue start */
  330. 324 0060 DF91 pop r29
  331. 325 0062 CF91 pop r28
  332. 326 0064 1F91 pop r17
  333. 327 0066 0F91 pop r16
  334. 328 0068 FF90 pop r15
  335. 329 006a EF90 pop r14
  336. 330 006c 0895 ret
  337. 331 .size UartAvrInput, .-UartAvrInput
  338. 332 .section .text.UartAvrFlush,"ax",@progbits
  339. 333 .global UartAvrFlush
  340. 334 .type UartAvrFlush, @function
  341. 335 UartAvrFlush:
  342. 336 0000 EF92 push r14
  343. 337 0002 FF92 push r15
  344. 338 0004 0F93 push r16
  345. 339 0006 1F93 push r17
  346. 340 0008 CF93 push r28
  347. 341 000a DF93 push r29
  348. 342 /* prologue: function */
  349. GAS LISTING /tmp/ccWlS2uD.s page 7
  350. 343 /* frame size = 0 */
  351. 344 /* stack size = 6 */
  352. 345 .L__stack_usage = 6
  353. 346 000c FC01 movw r30,r24
  354. 347 000e E784 ldd r14,Z+15
  355. 348 0010 F088 ldd r15,Z+16
  356. 349 0012 0189 ldd r16,Z+17
  357. 350 0014 1289 ldd r17,Z+18
  358. 351 0016 0E94 0000 call UartAvrOutput
  359. 352 001a EC01 movw r28,r24
  360. 353 001c 892B or r24,r25
  361. 354 001e 01F4 brne .L37
  362. 355 /* #APP */
  363. 356 ; 228 "../../nut/arch/avr/dev/uartavr.c" 1
  364. 357 0020 0FB6 in __tmp_reg__, __SREG__
  365. 358 0022 F894 cli
  366. 359 0024 0F92 push __tmp_reg__
  367. 360
  368. 361 ; 0 "" 2
  369. 362 /* #NOAPP */
  370. 363 0026 085F subi r16,-8
  371. 364 0028 1F4F sbci r17,-1
  372. 365 .L35:
  373. 366 002a F701 movw r30,r14
  374. 367 002c 9085 ldd r25,Z+8
  375. 368 002e 8185 ldd r24,Z+9
  376. 369 0030 9817 cp r25,r24
  377. 370 0032 01F0 breq .L38
  378. 371 0034 44E6 ldi r20,lo8(100)
  379. 372 0036 50E0 ldi r21,0
  380. 373 0038 60E0 ldi r22,0
  381. 374 003a 70E0 ldi r23,0
  382. 375 003c C801 movw r24,r16
  383. 376 003e 0E94 0000 call NutEventWait
  384. 377 0042 00C0 rjmp .L35
  385. 378 .L38:
  386. 379 /* #APP */
  387. 380 ; 231 "../../nut/arch/avr/dev/uartavr.c" 1
  388. 381 0044 0F90 pop __tmp_reg__
  389. 382 0046 0FBE out __SREG__, __tmp_reg__
  390. 383
  391. 384 ; 0 "" 2
  392. 385 /* #NOAPP */
  393. 386 0048 00C0 rjmp .L34
  394. 387 .L37:
  395. 388 004a CFEF ldi r28,lo8(-1)
  396. 389 004c DFEF ldi r29,lo8(-1)
  397. 390 .L34:
  398. 391 004e CE01 movw r24,r28
  399. 392 /* epilogue start */
  400. 393 0050 DF91 pop r29
  401. 394 0052 CF91 pop r28
  402. 395 0054 1F91 pop r17
  403. 396 0056 0F91 pop r16
  404. 397 0058 FF90 pop r15
  405. 398 005a EF90 pop r14
  406. 399 005c 0895 ret
  407. GAS LISTING /tmp/ccWlS2uD.s page 8
  408. 400 .size UartAvrFlush, .-UartAvrFlush
  409. 401 .section .text.UartAvrDisable,"ax",@progbits
  410. 402 .type UartAvrDisable, @function
  411. 403 UartAvrDisable:
  412. 404 0000 CF93 push r28
  413. 405 0002 DF93 push r29
  414. 406 /* prologue: function */
  415. 407 /* frame size = 0 */
  416. 408 /* stack size = 2 */
  417. 409 .L__stack_usage = 2
  418. 410 0004 EC01 movw r28,r24
  419. 411 /* #APP */
  420. 412 ; 289 "../../nut/arch/avr/dev/uartavr.c" 1
  421. 413 0006 0FB6 in __tmp_reg__, __SREG__
  422. 414 0008 F894 cli
  423. 415 000a 0F92 push __tmp_reg__
  424. 416
  425. 417 ; 0 "" 2
  426. 418 /* #NOAPP */
  427. 419 000c 892B or r24,r25
  428. 420 000e 01F0 breq .L40
  429. 421 0010 8091 C900 lds r24,201
  430. 422 0014 8F73 andi r24,lo8(63)
  431. 423 0016 8093 C900 sts 201,r24
  432. 424 001a 00C0 rjmp .L41
  433. 425 .L40:
  434. 426 001c 8091 C100 lds r24,193
  435. 427 0020 8F73 andi r24,lo8(63)
  436. 428 0022 8093 C100 sts 193,r24
  437. 429 .L41:
  438. 430 /* #APP */
  439. 431 ; 296 "../../nut/arch/avr/dev/uartavr.c" 1
  440. 432 0026 0F90 pop __tmp_reg__
  441. 433 0028 0FBE out __SREG__, __tmp_reg__
  442. 434
  443. 435 ; 0 "" 2
  444. 436 /* #NOAPP */
  445. 437 002a 8AE0 ldi r24,lo8(10)
  446. 438 002c 0E94 0000 call NutDelay
  447. 439 0030 CD2B or r28,r29
  448. 440 0032 01F0 breq .L42
  449. 441 0034 8091 C900 lds r24,201
  450. 442 0038 877E andi r24,lo8(-25)
  451. 443 003a 8093 C900 sts 201,r24
  452. 444 003e 00C0 rjmp .L39
  453. 445 .L42:
  454. 446 0040 8091 C100 lds r24,193
  455. 447 0044 877E andi r24,lo8(-25)
  456. 448 0046 8093 C100 sts 193,r24
  457. 449 .L39:
  458. 450 /* epilogue start */
  459. 451 004a DF91 pop r29
  460. 452 004c CF91 pop r28
  461. 453 004e 0895 ret
  462. 454 .size UartAvrDisable, .-UartAvrDisable
  463. 455 .section .text.UartAvrIOCtl,"ax",@progbits
  464. 456 .global UartAvrIOCtl
  465. GAS LISTING /tmp/ccWlS2uD.s page 9
  466. 457 .type UartAvrIOCtl, @function
  467. 458 UartAvrIOCtl:
  468. 459 0000 4F92 push r4
  469. 460 0002 5F92 push r5
  470. 461 0004 6F92 push r6
  471. 462 0006 7F92 push r7
  472. 463 0008 AF92 push r10
  473. 464 000a BF92 push r11
  474. 465 000c CF92 push r12
  475. 466 000e DF92 push r13
  476. 467 0010 EF92 push r14
  477. 468 0012 FF92 push r15
  478. 469 0014 0F93 push r16
  479. 470 0016 1F93 push r17
  480. 471 0018 CF93 push r28
  481. 472 001a DF93 push r29
  482. 473 001c 00D0 rcall .
  483. 474 001e 1F92 push __zero_reg__
  484. 475 0020 CDB7 in r28,__SP_L__
  485. 476 0022 DEB7 in r29,__SP_H__
  486. 477 /* prologue: function */
  487. 478 /* frame size = 4 */
  488. 479 /* stack size = 18 */
  489. 480 .L__stack_usage = 18
  490. 481 0024 9C01 movw r18,r24
  491. 482 0026 5A01 movw r10,r20
  492. 483 0028 DA01 movw r26,r20
  493. 484 002a 4D90 ld r4,X+
  494. 485 002c 5D90 ld r5,X+
  495. 486 002e 6D90 ld r6,X+
  496. 487 0030 7C90 ld r7,X
  497. 488 0032 042D mov r16,r4
  498. 489 0034 892B or r24,r25
  499. 490 0036 01F4 brne .L45
  500. 491 0038 20E0 ldi r18,lo8(devUart0)
  501. 492 003a 30E0 ldi r19,hi8(devUart0)
  502. 493 .L45:
  503. 494 003c F901 movw r30,r18
  504. 495 003e 4485 ldd r20,Z+12
  505. 496 0040 5585 ldd r21,Z+13
  506. 497 0042 142F mov r17,r20
  507. 498 0044 A189 ldd r26,Z+17
  508. 499 0046 B289 ldd r27,Z+18
  509. 500 0048 FB01 movw r30,r22
  510. 501 004a E150 subi r30,1
  511. 502 004c F140 sbci r31,1
  512. 503 004e E431 cpi r30,20
  513. 504 0050 F105 cpc r31,__zero_reg__
  514. 505 0052 00F0 brlo .+2
  515. 506 0054 00C0 rjmp .L46
  516. 507 0056 8827 clr r24
  517. 508 0058 E050 subi r30,pm_lo8(-(.L48))
  518. 509 005a F040 sbci r31,pm_hi8(-(.L48))
  519. 510 005c 8040 sbci r24,pm_hh8(-(.L48))
  520. 511 005e 0C94 0000 jmp __tablejump2__
  521. 512 .section .progmem.gcc_sw_table.UartAvrIOCtl,"a",@progbits
  522. 513 .p2align 1
  523. GAS LISTING /tmp/ccWlS2uD.s page 10
  524. 514 .L48:
  525. 515 0000 0000 .word gs(.L47)
  526. 516 0002 0000 .word gs(.L49)
  527. 517 0004 0000 .word gs(.L50)
  528. 518 0006 0000 .word gs(.L51)
  529. 519 0008 0000 .word gs(.L52)
  530. 520 000a 0000 .word gs(.L53)
  531. 521 000c 0000 .word gs(.L54)
  532. 522 000e 0000 .word gs(.L55)
  533. 523 0010 0000 .word gs(.L46)
  534. 524 0012 0000 .word gs(.L56)
  535. 525 0014 0000 .word gs(.L57)
  536. 526 0016 0000 .word gs(.L58)
  537. 527 0018 0000 .word gs(.L59)
  538. 528 001a 0000 .word gs(.L60)
  539. 529 001c 0000 .word gs(.L63)
  540. 530 001e 0000 .word gs(.L62)
  541. 531 0020 0000 .word gs(.L63)
  542. 532 0022 0000 .word gs(.L105)
  543. 533 0024 0000 .word gs(.L65)
  544. 534 0026 0000 .word gs(.L66)
  545. 535 .section .text.UartAvrIOCtl
  546. 536 .L47:
  547. 537 0062 7A01 movw r14,r20
  548. 538 0064 FF24 clr r15
  549. 539 0066 C701 movw r24,r14
  550. 540 0068 0E94 0000 call UartAvrDisable
  551. 541 006c 1123 tst r17
  552. 542 006e 01F0 breq .L67
  553. 543 0070 8091 C800 lds r24,200
  554. 544 0074 00C0 rjmp .L120
  555. 545 .L67:
  556. 546 0076 8091 C000 lds r24,192
  557. 547 .L120:
  558. 548 007a A301 movw r20,r6
  559. 549 007c 9201 movw r18,r4
  560. 550 007e 81FF sbrs r24,1
  561. 551 0080 00C0 rjmp .L70
  562. 552 0082 72E0 ldi r23,2
  563. 553 1:
  564. 554 0084 220F lsl r18
  565. 555 0086 331F rol r19
  566. 556 0088 441F rol r20
  567. 557 008a 551F rol r21
  568. 558 008c 7A95 dec r23
  569. 559 008e 01F4 brne 1b
  570. 560 0090 00C0 rjmp .L69
  571. 561 .L70:
  572. 562 0092 63E0 ldi r22,3
  573. 563 1:
  574. 564 0094 220F lsl r18
  575. 565 0096 331F rol r19
  576. 566 0098 441F rol r20
  577. 567 009a 551F rol r21
  578. 568 009c 6A95 dec r22
  579. 569 009e 01F4 brne 1b
  580. 570 .L69:
  581. GAS LISTING /tmp/ccWlS2uD.s page 11
  582. 571 00a0 2983 std Y+1,r18
  583. 572 00a2 3A83 std Y+2,r19
  584. 573 00a4 4B83 std Y+3,r20
  585. 574 00a6 5C83 std Y+4,r21
  586. 575 00a8 0E94 0000 call NutGetCpuClock
  587. 576 00ac 2981 ldd r18,Y+1
  588. 577 00ae 3A81 ldd r19,Y+2
  589. 578 00b0 4B81 ldd r20,Y+3
  590. 579 00b2 5C81 ldd r21,Y+4
  591. 580 00b4 0E94 0000 call __udivmodsi4
  592. 581 00b8 DA01 movw r26,r20
  593. 582 00ba C901 movw r24,r18
  594. 583 00bc 0196 adiw r24,1
  595. 584 00be A11D adc r26,__zero_reg__
  596. 585 00c0 B11D adc r27,__zero_reg__
  597. 586 00c2 B695 lsr r27
  598. 587 00c4 A795 ror r26
  599. 588 00c6 9795 ror r25
  600. 589 00c8 8795 ror r24
  601. 590 00ca 9C01 movw r18,r24
  602. 591 00cc 2150 subi r18,1
  603. 592 00ce 3109 sbc r19,__zero_reg__
  604. 593 00d0 1123 tst r17
  605. 594 00d2 01F0 breq .L71
  606. 595 00d4 2093 CC00 sts 204,r18
  607. 596 00d8 3093 CD00 sts 205,r19
  608. 597 00dc 00C0 rjmp .L72
  609. 598 .L71:
  610. 599 00de 2093 C400 sts 196,r18
  611. 600 00e2 3093 C500 sts 197,r19
  612. 601 .L72:
  613. 602 00e6 C701 movw r24,r14
  614. 603 00e8 0E94 0000 call UartAvrEnable
  615. 604 00ec 00C0 rjmp .L105
  616. 605 .L49:
  617. 606 00ee 4423 tst r20
  618. 607 00f0 01F0 breq .L73
  619. 608 00f2 8091 C800 lds r24,200
  620. 609 00f6 81FD sbrc r24,1
  621. 610 00f8 00C0 rjmp .L100
  622. 611 00fa 20E1 ldi r18,lo8(16)
  623. 612 00fc 30E0 ldi r19,0
  624. 613 00fe 40E0 ldi r20,0
  625. 614 0100 50E0 ldi r21,0
  626. 615 0102 00C0 rjmp .L74
  627. 616 .L100:
  628. 617 0104 28E0 ldi r18,lo8(8)
  629. 618 0106 30E0 ldi r19,0
  630. 619 0108 40E0 ldi r20,0
  631. 620 010a 50E0 ldi r21,0
  632. 621 .L74:
  633. 622 010c 8091 CD00 lds r24,205
  634. 623 0110 E090 CC00 lds r14,204
  635. 624 0114 00C0 rjmp .L116
  636. 625 .L73:
  637. 626 0116 8091 C000 lds r24,192
  638. 627 011a 81FD sbrc r24,1
  639. GAS LISTING /tmp/ccWlS2uD.s page 12
  640. 628 011c 00C0 rjmp .L101
  641. 629 011e 20E1 ldi r18,lo8(16)
  642. 630 0120 30E0 ldi r19,0
  643. 631 0122 40E0 ldi r20,0
  644. 632 0124 50E0 ldi r21,0
  645. 633 0126 00C0 rjmp .L76
  646. 634 .L101:
  647. 635 0128 28E0 ldi r18,lo8(8)
  648. 636 012a 30E0 ldi r19,0
  649. 637 012c 40E0 ldi r20,0
  650. 638 012e 50E0 ldi r21,0
  651. 639 .L76:
  652. 640 0130 8091 C500 lds r24,197
  653. 641 0134 E090 C400 lds r14,196
  654. 642 .L116:
  655. 643 0138 F12C mov r15,__zero_reg__
  656. 644 013a F82A or r15,r24
  657. 645 013c 2983 std Y+1,r18
  658. 646 013e 3A83 std Y+2,r19
  659. 647 0140 4B83 std Y+3,r20
  660. 648 0142 5C83 std Y+4,r21
  661. 649 0144 0E94 0000 call NutGetCpuClock
  662. 650 0148 2B01 movw r4,r22
  663. 651 014a 3C01 movw r6,r24
  664. 652 014c D701 movw r26,r14
  665. 653 014e 1196 adiw r26,1
  666. 654 0150 2981 ldd r18,Y+1
  667. 655 0152 3A81 ldd r19,Y+2
  668. 656 0154 4B81 ldd r20,Y+3
  669. 657 0156 5C81 ldd r21,Y+4
  670. 658 0158 0E94 0000 call __muluhisi3
  671. 659 015c 9B01 movw r18,r22
  672. 660 015e AC01 movw r20,r24
  673. 661 0160 C301 movw r24,r6
  674. 662 0162 B201 movw r22,r4
  675. 663 0164 0E94 0000 call __udivmodsi4
  676. 664 0168 D501 movw r26,r10
  677. 665 016a 2D93 st X+,r18
  678. 666 016c 3D93 st X+,r19
  679. 667 016e 4D93 st X+,r20
  680. 668 0170 5C93 st X,r21
  681. 669 0172 1397 sbiw r26,3
  682. 670 0174 00C0 rjmp .L105
  683. 671 .L50:
  684. 672 0176 7A01 movw r14,r20
  685. 673 0178 FF24 clr r15
  686. 674 017a C701 movw r24,r14
  687. 675 017c 0E94 0000 call UartAvrDisable
  688. 676 0180 8BEF ldi r24,lo8(-5)
  689. 677 0182 840D add r24,r4
  690. 678 0184 8430 cpi r24,lo8(4)
  691. 679 0186 00F0 brlo .+2
  692. 680 0188 00C0 rjmp .L104
  693. 681 018a 482E mov r4,r24
  694. 682 018c 440C lsl r4
  695. 683 018e 1123 tst r17
  696. 684 0190 01F0 breq .L78
  697. GAS LISTING /tmp/ccWlS2uD.s page 13
  698. 685 0192 2091 CA00 lds r18,202
  699. 686 0196 297F andi r18,lo8(-7)
  700. 687 0198 422A or r4,r18
  701. 688 019a 4092 CA00 sts 202,r4
  702. 689 019e 8091 C900 lds r24,201
  703. 690 01a2 8B7F andi r24,lo8(-5)
  704. 691 01a4 8093 C900 sts 201,r24
  705. 692 01a8 00C0 rjmp .L118
  706. 693 .L78:
  707. 694 01aa 2091 C200 lds r18,194
  708. 695 01ae 297F andi r18,lo8(-7)
  709. 696 01b0 422A or r4,r18
  710. 697 01b2 4092 C200 sts 194,r4
  711. 698 01b6 8091 C100 lds r24,193
  712. 699 01ba 8B7F andi r24,lo8(-5)
  713. 700 01bc 8093 C100 sts 193,r24
  714. 701 01c0 00C0 rjmp .L118
  715. 702 .L51:
  716. 703 01c2 4423 tst r20
  717. 704 01c4 01F0 breq .L79
  718. 705 01c6 8091 CA00 lds r24,202
  719. 706 01ca 00C0 rjmp .L126
  720. 707 .L79:
  721. 708 01cc 8091 C200 lds r24,194
  722. 709 .L126:
  723. 710 01d0 8670 andi r24,lo8(6)
  724. 711 01d2 90E0 ldi r25,0
  725. 712 01d4 9595 asr r25
  726. 713 01d6 8795 ror r24
  727. 714 01d8 0596 adiw r24,5
  728. 715 01da 00C0 rjmp .L124
  729. 716 .L52:
  730. 717 01dc 7A01 movw r14,r20
  731. 718 01de FF24 clr r15
  732. 719 01e0 C701 movw r24,r14
  733. 720 01e2 0E94 0000 call UartAvrDisable
  734. 721 01e6 0330 cpi r16,lo8(3)
  735. 722 01e8 00F0 brlo .+2
  736. 723 01ea 00C0 rjmp .L104
  737. 724 01ec 0130 cpi r16,lo8(1)
  738. 725 01ee 01F4 brne .L81
  739. 726 01f0 03E0 ldi r16,lo8(3)
  740. 727 .L81:
  741. 728 01f2 0295 swap r16
  742. 729 01f4 007F andi r16,lo8(-16)
  743. 730 01f6 1123 tst r17
  744. 731 01f8 01F0 breq .L82
  745. 732 01fa 8091 CA00 lds r24,202
  746. 733 01fe 8F7C andi r24,lo8(-49)
  747. 734 0200 802B or r24,r16
  748. 735 0202 8093 CA00 sts 202,r24
  749. 736 0206 00C0 rjmp .L83
  750. 737 .L82:
  751. 738 0208 8091 C200 lds r24,194
  752. 739 020c 8F7C andi r24,lo8(-49)
  753. 740 020e 802B or r24,r16
  754. 741 0210 8093 C200 sts 194,r24
  755. GAS LISTING /tmp/ccWlS2uD.s page 14
  756. 742 .L83:
  757. 743 0214 81E0 ldi r24,lo8(1)
  758. 744 0216 90E0 ldi r25,0
  759. 745 0218 0111 cpse r16,__zero_reg__
  760. 746 021a 00C0 rjmp .L84
  761. 747 021c 80E0 ldi r24,0
  762. 748 021e 90E0 ldi r25,0
  763. 749 .L84:
  764. 750 0220 0027 clr r16
  765. 751 0222 1127 clr r17
  766. 752 0224 081B sub r16,r24
  767. 753 0226 190B sbc r17,r25
  768. 754 0228 00C0 rjmp .L86
  769. 755 .L53:
  770. 756 022a 4423 tst r20
  771. 757 022c 01F0 breq .L85
  772. 758 022e 8091 CA00 lds r24,202
  773. 759 0232 00C0 rjmp .L105
  774. 760 .L85:
  775. 761 0234 8091 C200 lds r24,194
  776. 762 0238 00C0 rjmp .L105
  777. 763 .L54:
  778. 764 023a 7A01 movw r14,r20
  779. 765 023c FF24 clr r15
  780. 766 023e C701 movw r24,r14
  781. 767 0240 0E94 0000 call UartAvrDisable
  782. 768 0244 8FEF ldi r24,lo8(-1)
  783. 769 0246 840D add r24,r4
  784. 770 0248 8230 cpi r24,lo8(2)
  785. 771 024a 00F4 brsh .L104
  786. 772 024c 482E mov r4,r24
  787. 773 024e 440C lsl r4
  788. 774 0250 440C lsl r4
  789. 775 0252 440C lsl r4
  790. 776 0254 1123 tst r17
  791. 777 0256 01F0 breq .L87
  792. 778 0258 2091 CA00 lds r18,202
  793. 779 025c 277F andi r18,lo8(-9)
  794. 780 025e 422A or r4,r18
  795. 781 0260 4092 CA00 sts 202,r4
  796. 782 0264 00C0 rjmp .L118
  797. 783 .L87:
  798. 784 0266 2091 C200 lds r18,194
  799. 785 026a 277F andi r18,lo8(-9)
  800. 786 026c 422A or r4,r18
  801. 787 026e 4092 C200 sts 194,r4
  802. 788 .L118:
  803. 789 0272 00E0 ldi r16,0
  804. 790 0274 10E0 ldi r17,0
  805. 791 0276 00C0 rjmp .L86
  806. 792 .L104:
  807. 793 0278 0FEF ldi r16,lo8(-1)
  808. 794 027a 1FEF ldi r17,lo8(-1)
  809. 795 .L86:
  810. 796 027c C701 movw r24,r14
  811. 797 027e 0E94 0000 call UartAvrEnable
  812. 798 0282 00C0 rjmp .L64
  813. GAS LISTING /tmp/ccWlS2uD.s page 15
  814. 799 .L55:
  815. 800 0284 4423 tst r20
  816. 801 0286 01F0 breq .L88
  817. 802 0288 8091 CA00 lds r24,202
  818. 803 028c 83FB bst r24,3
  819. 804 028e CC24 clr r12
  820. 805 0290 C0F8 bld r12,0
  821. 806 0292 D12C mov r13,__zero_reg__
  822. 807 0294 FFEF ldi r31,-1
  823. 808 0296 CF1A sub r12,r31
  824. 809 0298 DF0A sbc r13,r31
  825. 810 029a 0D2C mov __tmp_reg__,r13
  826. 811 029c 000C lsl r0
  827. 812 029e EE08 sbc r14,r14
  828. 813 02a0 FF08 sbc r15,r15
  829. 814 02a2 D501 movw r26,r10
  830. 815 02a4 CD92 st X+,r12
  831. 816 02a6 DD92 st X+,r13
  832. 817 02a8 ED92 st X+,r14
  833. 818 02aa FC92 st X,r15
  834. 819 02ac 1397 sbiw r26,3
  835. 820 02ae 00C0 rjmp .L105
  836. 821 .L88:
  837. 822 02b0 8091 C200 lds r24,194
  838. 823 02b4 83FB bst r24,3
  839. 824 02b6 EE24 clr r14
  840. 825 02b8 E0F8 bld r14,0
  841. 826 02ba F12C mov r15,__zero_reg__
  842. 827 02bc C701 movw r24,r14
  843. 828 02be 0196 adiw r24,1
  844. 829 .L124:
  845. 830 02c0 092E mov __tmp_reg__,r25
  846. 831 02c2 000C lsl r0
  847. 832 02c4 AA0B sbc r26,r26
  848. 833 02c6 BB0B sbc r27,r27
  849. 834 02c8 00C0 rjmp .L121
  850. 835 .L56:
  851. 836 02ca D901 movw r26,r18
  852. 837 02cc 1F96 adiw r26,15
  853. 838 02ce ED91 ld r30,X+
  854. 839 02d0 FC91 ld r31,X
  855. 840 02d2 5097 sbiw r26,15+1
  856. 841 02d4 D501 movw r26,r10
  857. 842 02d6 1D92 st X+,__zero_reg__
  858. 843 02d8 1D92 st X+,__zero_reg__
  859. 844 02da 1D92 st X+,__zero_reg__
  860. 845 02dc 1C92 st X,__zero_reg__
  861. 846 02de 1397 sbiw r26,3
  862. 847 02e0 452B or r20,r21
  863. 848 02e2 01F0 breq .L89
  864. 849 02e4 8091 C800 lds r24,200
  865. 850 02e8 00C0 rjmp .L90
  866. 851 .L89:
  867. 852 02ea 8091 C000 lds r24,192
  868. 853 .L90:
  869. 854 02ee 82FF sbrs r24,2
  870. 855 02f0 00C0 rjmp .L91
  871. GAS LISTING /tmp/ccWlS2uD.s page 16
  872. 856 02f2 41E0 ldi r20,lo8(1)
  873. 857 02f4 50E0 ldi r21,0
  874. 858 02f6 60E0 ldi r22,0
  875. 859 02f8 70E0 ldi r23,0
  876. 860 02fa D501 movw r26,r10
  877. 861 02fc 4D93 st X+,r20
  878. 862 02fe 5D93 st X+,r21
  879. 863 0300 6D93 st X+,r22
  880. 864 0302 7C93 st X,r23
  881. 865 0304 1397 sbiw r26,3
  882. 866 .L91:
  883. 867 0306 8370 andi r24,lo8(3)
  884. 868 0308 01F0 breq .L92
  885. 869 030a D501 movw r26,r10
  886. 870 030c 4D91 ld r20,X+
  887. 871 030e 5D91 ld r21,X+
  888. 872 0310 6D91 ld r22,X+
  889. 873 0312 7C91 ld r23,X
  890. 874 0314 1397 sbiw r26,3
  891. 875 0316 4260 ori r20,2
  892. 876 0318 4D93 st X+,r20
  893. 877 031a 5D93 st X+,r21
  894. 878 031c 6D93 st X+,r22
  895. 879 031e 7C93 st X,r23
  896. 880 0320 1397 sbiw r26,3
  897. 881 .L92:
  898. 882 0322 9085 ldd r25,Z+8
  899. 883 0324 8185 ldd r24,Z+9
  900. 884 0326 9813 cpse r25,r24
  901. 885 0328 00C0 rjmp .L93
  902. 886 032a D501 movw r26,r10
  903. 887 032c 4D91 ld r20,X+
  904. 888 032e 5D91 ld r21,X+
  905. 889 0330 6D91 ld r22,X+
  906. 890 0332 7C91 ld r23,X
  907. 891 0334 1397 sbiw r26,3
  908. 892 0336 4068 ori r20,128
  909. 893 0338 4D93 st X+,r20
  910. 894 033a 5D93 st X+,r21
  911. 895 033c 6D93 st X+,r22
  912. 896 033e 7C93 st X,r23
  913. 897 0340 1397 sbiw r26,3
  914. 898 .L93:
  915. 899 0342 8681 ldd r24,Z+6
  916. 900 0344 9781 ldd r25,Z+7
  917. 901 0346 9813 cpse r25,r24
  918. 902 0348 00C0 rjmp .L105
  919. 903 034a F501 movw r30,r10
  920. 904 034c 8081 ld r24,Z
  921. 905 034e 9181 ldd r25,Z+1
  922. 906 0350 A281 ldd r26,Z+2
  923. 907 0352 B381 ldd r27,Z+3
  924. 908 0354 8064 ori r24,64
  925. 909 0356 00C0 rjmp .L123
  926. 910 .L57:
  927. 911 0358 4D92 st X+,r4
  928. 912 035a 5D92 st X+,r5
  929. GAS LISTING /tmp/ccWlS2uD.s page 17
  930. 913 035c 6D92 st X+,r6
  931. 914 035e 7C92 st X,r7
  932. 915 0360 1397 sbiw r26,3
  933. 916 0362 00C0 rjmp .L105
  934. 917 .L58:
  935. 918 0364 8D91 ld r24,X+
  936. 919 0366 9D91 ld r25,X+
  937. 920 0368 0D90 ld __tmp_reg__,X+
  938. 921 036a BC91 ld r27,X
  939. 922 036c A02D mov r26,__tmp_reg__
  940. 923 036e 00C0 rjmp .L121
  941. 924 .L59:
  942. 925 0370 1496 adiw r26,4
  943. 926 0372 4D92 st X+,r4
  944. 927 0374 5D92 st X+,r5
  945. 928 0376 6D92 st X+,r6
  946. 929 0378 7C92 st X,r7
  947. 930 037a 1797 sbiw r26,4+3
  948. 931 037c 00C0 rjmp .L105
  949. 932 .L60:
  950. 933 037e 1496 adiw r26,4
  951. 934 0380 8D91 ld r24,X+
  952. 935 0382 9D91 ld r25,X+
  953. 936 0384 0D90 ld __tmp_reg__,X+
  954. 937 0386 BC91 ld r27,X
  955. 938 0388 A02D mov r26,__tmp_reg__
  956. 939 .L121:
  957. 940 038a F501 movw r30,r10
  958. 941 .L123:
  959. 942 038c 8083 st Z,r24
  960. 943 038e 9183 std Z+1,r25
  961. 944 0390 A283 std Z+2,r26
  962. 945 0392 B383 std Z+3,r27
  963. 946 0394 00C0 rjmp .L105
  964. 947 .L62:
  965. 948 0396 1C96 adiw r26,12
  966. 949 0398 8D91 ld r24,X+
  967. 950 039a 9D91 ld r25,X+
  968. 951 039c 0D90 ld __tmp_reg__,X+
  969. 952 039e BC91 ld r27,X
  970. 953 03a0 A02D mov r26,__tmp_reg__
  971. 954 03a2 A0FF sbrs r26,0
  972. 955 03a4 00C0 rjmp .L95
  973. 956 .L98:
  974. 957 03a6 81E0 ldi r24,lo8(1)
  975. 958 03a8 90E0 ldi r25,0
  976. 959 03aa A0E0 ldi r26,0
  977. 960 03ac B0E0 ldi r27,0
  978. 961 03ae 00C0 rjmp .L121
  979. 962 .L66:
  980. 963 03b0 1C96 adiw r26,12
  981. 964 03b2 8D91 ld r24,X+
  982. 965 03b4 9D91 ld r25,X+
  983. 966 03b6 0D90 ld __tmp_reg__,X+
  984. 967 03b8 BC91 ld r27,X
  985. 968 03ba A02D mov r26,__tmp_reg__
  986. 969 03bc A1FD sbrc r26,1
  987. GAS LISTING /tmp/ccWlS2uD.s page 18
  988. 970 03be 00C0 rjmp .L98
  989. 971 .L95:
  990. 972 03c0 D501 movw r26,r10
  991. 973 03c2 1D92 st X+,__zero_reg__
  992. 974 03c4 1D92 st X+,__zero_reg__
  993. 975 03c6 1D92 st X+,__zero_reg__
  994. 976 03c8 1C92 st X,__zero_reg__
  995. 977 03ca 1397 sbiw r26,3
  996. 978 03cc 00C0 rjmp .L105
  997. 979 .L63:
  998. 980 03ce 1C96 adiw r26,12
  999. 981 03d0 4D91 ld r20,X+
  1000. 982 03d2 5D91 ld r21,X+
  1001. 983 03d4 6D91 ld r22,X+
  1002. 984 03d6 7C91 ld r23,X
  1003. 985 03d8 1F97 sbiw r26,12+3
  1004. 986 03da 0023 tst r16
  1005. 987 03dc 01F0 breq .L96
  1006. 988 03de 6160 ori r22,1
  1007. 989 03e0 00C0 rjmp .L122
  1008. 990 .L96:
  1009. 991 03e2 6E7F andi r22,254
  1010. 992 03e4 00C0 rjmp .L122
  1011. 993 .L65:
  1012. 994 03e6 1C96 adiw r26,12
  1013. 995 03e8 4D91 ld r20,X+
  1014. 996 03ea 5D91 ld r21,X+
  1015. 997 03ec 6D91 ld r22,X+
  1016. 998 03ee 7C91 ld r23,X
  1017. 999 03f0 1F97 sbiw r26,12+3
  1018. 1000 03f2 0023 tst r16
  1019. 1001 03f4 01F0 breq .L97
  1020. 1002 03f6 6260 ori r22,2
  1021. 1003 .L122:
  1022. 1004 03f8 1C96 adiw r26,12
  1023. 1005 03fa 4D93 st X+,r20
  1024. 1006 03fc 5D93 st X+,r21
  1025. 1007 03fe 6D93 st X+,r22
  1026. 1008 0400 7C93 st X,r23
  1027. 1009 0402 1F97 sbiw r26,12+3
  1028. 1010 0404 00C0 rjmp .L105
  1029. 1011 .L97:
  1030. 1012 0406 6D7F andi r22,253
  1031. 1013 0408 00C0 rjmp .L122
  1032. 1014 .L46:
  1033. 1015 040a 0FEF ldi r16,lo8(-1)
  1034. 1016 040c 1FEF ldi r17,lo8(-1)
  1035. 1017 040e 00C0 rjmp .L64
  1036. 1018 .L105:
  1037. 1019 0410 00E0 ldi r16,0
  1038. 1020 0412 10E0 ldi r17,0
  1039. 1021 .L64:
  1040. 1022 0414 C801 movw r24,r16
  1041. 1023 /* epilogue start */
  1042. 1024 0416 0F90 pop __tmp_reg__
  1043. 1025 0418 0F90 pop __tmp_reg__
  1044. 1026 041a 0F90 pop __tmp_reg__
  1045. GAS LISTING /tmp/ccWlS2uD.s page 19
  1046. 1027 041c 0F90 pop __tmp_reg__
  1047. 1028 041e DF91 pop r29
  1048. 1029 0420 CF91 pop r28
  1049. 1030 0422 1F91 pop r17
  1050. 1031 0424 0F91 pop r16
  1051. 1032 0426 FF90 pop r15
  1052. 1033 0428 EF90 pop r14
  1053. 1034 042a DF90 pop r13
  1054. 1035 042c CF90 pop r12
  1055. 1036 042e BF90 pop r11
  1056. 1037 0430 AF90 pop r10
  1057. 1038 0432 7F90 pop r7
  1058. 1039 0434 6F90 pop r6
  1059. 1040 0436 5F90 pop r5
  1060. 1041 0438 4F90 pop r4
  1061. 1042 043a 0895 ret
  1062. 1043 .size UartAvrIOCtl, .-UartAvrIOCtl
  1063. 1044 .section .text.UartAvrInit,"ax",@progbits
  1064. 1045 .global UartAvrInit
  1065. 1046 .type UartAvrInit, @function
  1066. 1047 UartAvrInit:
  1067. 1048 0000 0F93 push r16
  1068. 1049 0002 1F93 push r17
  1069. 1050 0004 CF93 push r28
  1070. 1051 0006 DF93 push r29
  1071. 1052 0008 00D0 rcall .
  1072. 1053 000a 1F92 push __zero_reg__
  1073. 1054 000c CDB7 in r28,__SP_L__
  1074. 1055 000e DEB7 in r29,__SP_H__
  1075. 1056 /* prologue: function */
  1076. 1057 /* frame size = 4 */
  1077. 1058 /* stack size = 8 */
  1078. 1059 .L__stack_usage = 8
  1079. 1060 0010 8C01 movw r16,r24
  1080. 1061 0012 80E8 ldi r24,lo8(-128)
  1081. 1062 0014 95E2 ldi r25,lo8(37)
  1082. 1063 0016 A0E0 ldi r26,0
  1083. 1064 0018 B0E0 ldi r27,0
  1084. 1065 001a 8983 std Y+1,r24
  1085. 1066 001c 9A83 std Y+2,r25
  1086. 1067 001e AB83 std Y+3,r26
  1087. 1068 0020 BC83 std Y+4,r27
  1088. 1069 0022 D801 movw r26,r16
  1089. 1070 0024 1B96 adiw r26,11
  1090. 1071 0026 8C91 ld r24,X
  1091. 1072 0028 8230 cpi r24,lo8(2)
  1092. 1073 002a 01F0 breq .L129
  1093. 1074 .L131:
  1094. 1075 002c 8FEF ldi r24,lo8(-1)
  1095. 1076 002e 9FEF ldi r25,lo8(-1)
  1096. 1077 0030 00C0 rjmp .L130
  1097. 1078 .L129:
  1098. 1079 0032 F801 movw r30,r16
  1099. 1080 0034 8685 ldd r24,Z+14
  1100. 1081 0036 8111 cpse r24,__zero_reg__
  1101. 1082 0038 00C0 rjmp .L131
  1102. 1083 003a 8485 ldd r24,Z+12
  1103. GAS LISTING /tmp/ccWlS2uD.s page 20
  1104. 1084 003c 9585 ldd r25,Z+13
  1105. 1085 003e 0297 sbiw r24,2
  1106. 1086 0040 00F4 brsh .L131
  1107. 1087 0042 0784 ldd __tmp_reg__,Z+15
  1108. 1088 0044 F089 ldd r31,Z+16
  1109. 1089 0046 E02D mov r30,__tmp_reg__
  1110. 1090 0048 8CE0 ldi r24,lo8(12)
  1111. 1091 004a 92E0 ldi r25,lo8(2)
  1112. 1092 004c DF01 movw r26,r30
  1113. 1093 004e 9C01 movw r18,r24
  1114. 1094 0:
  1115. 1095 0050 1D92 st X+,__zero_reg__
  1116. 1096 0052 2150 subi r18,1
  1117. 1097 0054 3040 sbci r19,0
  1118. 1098 0056 01F4 brne 0b
  1119. 1099 0058 80E0 ldi r24,lo8(gs(UartAvrInput))
  1120. 1100 005a 90E0 ldi r25,hi8(gs(UartAvrInput))
  1121. 1101 005c 9183 std Z+1,r25
  1122. 1102 005e 8083 st Z,r24
  1123. 1103 0060 80E0 ldi r24,lo8(gs(UartAvrOutput))
  1124. 1104 0062 90E0 ldi r25,hi8(gs(UartAvrOutput))
  1125. 1105 0064 9383 std Z+3,r25
  1126. 1106 0066 8283 std Z+2,r24
  1127. 1107 0068 80E0 ldi r24,lo8(gs(UartAvrFlush))
  1128. 1108 006a 90E0 ldi r25,hi8(gs(UartAvrFlush))
  1129. 1109 006c 9583 std Z+5,r25
  1130. 1110 006e 8483 std Z+4,r24
  1131. 1111 0070 D801 movw r26,r16
  1132. 1112 0072 5196 adiw r26,17
  1133. 1113 0074 ED91 ld r30,X+
  1134. 1114 0076 FC91 ld r31,X
  1135. 1115 0078 5297 sbiw r26,17+1
  1136. 1116 007a 80E1 ldi r24,lo8(16)
  1137. 1117 007c DF01 movw r26,r30
  1138. 1118 0:
  1139. 1119 007e 1D92 st X+,__zero_reg__
  1140. 1120 0080 8A95 dec r24
  1141. 1121 0082 01F4 brne 0b
  1142. 1122 0084 80E0 ldi r24,0
  1143. 1123 0086 90E0 ldi r25,0
  1144. 1124 0088 A0E1 ldi r26,lo8(16)
  1145. 1125 008a B0E0 ldi r27,0
  1146. 1126 008c 8487 std Z+12,r24
  1147. 1127 008e 9587 std Z+13,r25
  1148. 1128 0090 A687 std Z+14,r26
  1149. 1129 0092 B787 std Z+15,r27
  1150. 1130 0094 F801 movw r30,r16
  1151. 1131 0096 8485 ldd r24,Z+12
  1152. 1132 0098 9585 ldd r25,Z+13
  1153. 1133 009a A801 movw r20,r16
  1154. 1134 009c 60E0 ldi r22,lo8(gs(RxComplete))
  1155. 1135 009e 70E0 ldi r23,hi8(gs(RxComplete))
  1156. 1136 00a0 892B or r24,r25
  1157. 1137 00a2 01F0 breq .L132
  1158. 1138 00a4 80E0 ldi r24,lo8(sig_UART1_RECV)
  1159. 1139 00a6 90E0 ldi r25,hi8(sig_UART1_RECV)
  1160. 1140 00a8 0E94 0000 call NutRegisterIrqHandler
  1161. GAS LISTING /tmp/ccWlS2uD.s page 21
  1162. 1141 00ac 892B or r24,r25
  1163. 1142 00ae 01F0 breq .+2
  1164. 1143 00b0 00C0 rjmp .L131
  1165. 1144 00b2 A801 movw r20,r16
  1166. 1145 00b4 60E0 ldi r22,lo8(gs(TxComplete))
  1167. 1146 00b6 70E0 ldi r23,hi8(gs(TxComplete))
  1168. 1147 00b8 80E0 ldi r24,lo8(sig_UART1_TRANS)
  1169. 1148 00ba 90E0 ldi r25,hi8(sig_UART1_TRANS)
  1170. 1149 00bc 00C0 rjmp .L134
  1171. 1150 .L132:
  1172. 1151 00be 80E0 ldi r24,lo8(sig_UART0_RECV)
  1173. 1152 00c0 90E0 ldi r25,hi8(sig_UART0_RECV)
  1174. 1153 00c2 0E94 0000 call NutRegisterIrqHandler
  1175. 1154 00c6 892B or r24,r25
  1176. 1155 00c8 01F0 breq .+2
  1177. 1156 00ca 00C0 rjmp .L131
  1178. 1157 00cc A801 movw r20,r16
  1179. 1158 00ce 60E0 ldi r22,lo8(gs(TxComplete))
  1180. 1159 00d0 70E0 ldi r23,hi8(gs(TxComplete))
  1181. 1160 00d2 80E0 ldi r24,lo8(sig_UART0_TRANS)
  1182. 1161 00d4 90E0 ldi r25,hi8(sig_UART0_TRANS)
  1183. 1162 .L134:
  1184. 1163 00d6 0E94 0000 call NutRegisterIrqHandler
  1185. 1164 00da 892B or r24,r25
  1186. 1165 00dc 01F0 breq .+2
  1187. 1166 00de 00C0 rjmp .L131
  1188. 1167 00e0 AE01 movw r20,r28
  1189. 1168 00e2 4F5F subi r20,-1
  1190. 1169 00e4 5F4F sbci r21,-1
  1191. 1170 00e6 61E0 ldi r22,lo8(1)
  1192. 1171 00e8 71E0 ldi r23,lo8(1)
  1193. 1172 00ea C801 movw r24,r16
  1194. 1173 00ec 0E94 0000 call UartAvrIOCtl
  1195. 1174 00f0 80E0 ldi r24,0
  1196. 1175 00f2 90E0 ldi r25,0
  1197. 1176 .L130:
  1198. 1177 /* epilogue start */
  1199. 1178 00f4 0F90 pop __tmp_reg__
  1200. 1179 00f6 0F90 pop __tmp_reg__
  1201. 1180 00f8 0F90 pop __tmp_reg__
  1202. 1181 00fa 0F90 pop __tmp_reg__
  1203. 1182 00fc DF91 pop r29
  1204. 1183 00fe CF91 pop r28
  1205. 1184 0100 1F91 pop r17
  1206. 1185 0102 0F91 pop r16
  1207. 1186 0104 0895 ret
  1208. 1187 .size UartAvrInit, .-UartAvrInit
  1209. 1188 .section .text.UartAvrRead,"ax",@progbits
  1210. 1189 .global UartAvrRead
  1211. 1190 .type UartAvrRead, @function
  1212. 1191 UartAvrRead:
  1213. 1192 0000 4F92 push r4
  1214. 1193 0002 5F92 push r5
  1215. 1194 0004 7F92 push r7
  1216. 1195 0006 8F92 push r8
  1217. 1196 0008 9F92 push r9
  1218. 1197 000a AF92 push r10
  1219. GAS LISTING /tmp/ccWlS2uD.s page 22
  1220. 1198 000c BF92 push r11
  1221. 1199 000e CF92 push r12
  1222. 1200 0010 DF92 push r13
  1223. 1201 0012 EF92 push r14
  1224. 1202 0014 FF92 push r15
  1225. 1203 0016 0F93 push r16
  1226. 1204 0018 1F93 push r17
  1227. 1205 001a CF93 push r28
  1228. 1206 001c DF93 push r29
  1229. 1207 001e 1F92 push __zero_reg__
  1230. 1208 0020 1F92 push __zero_reg__
  1231. 1209 0022 CDB7 in r28,__SP_L__
  1232. 1210 0024 DEB7 in r29,__SP_H__
  1233. 1211 /* prologue: function */
  1234. 1212 /* frame size = 2 */
  1235. 1213 /* stack size = 17 */
  1236. 1214 .L__stack_usage = 17
  1237. 1215 0026 6A01 movw r12,r20
  1238. 1216 0028 DC01 movw r26,r24
  1239. 1217 002a ED90 ld r14,X+
  1240. 1218 002c FC90 ld r15,X
  1241. 1219 002e F701 movw r30,r14
  1242. 1220 0030 4784 ldd r4,Z+15
  1243. 1221 0032 5088 ldd r5,Z+16
  1244. 1222 0034 0188 ldd __tmp_reg__,Z+17
  1245. 1223 0036 F289 ldd r31,Z+18
  1246. 1224 0038 E02D mov r30,__tmp_reg__
  1247. 1225 003a 8484 ldd r8,Z+12
  1248. 1226 003c 9584 ldd r9,Z+13
  1249. 1227 003e A684 ldd r10,Z+14
  1250. 1228 0040 B784 ldd r11,Z+15
  1251. 1229 0042 8824 clr r8
  1252. 1230 0044 9924 clr r9
  1253. 1231 0046 F2E0 ldi r31,2
  1254. 1232 0048 AF22 and r10,r31
  1255. 1233 004a BB24 clr r11
  1256. 1234 004c 6115 cp r22,__zero_reg__
  1257. 1235 004e 7105 cpc r23,__zero_reg__
  1258. 1236 0050 01F0 breq .L136
  1259. 1237 0052 00E0 ldi r16,0
  1260. 1238 0054 10E0 ldi r17,0
  1261. 1239 0056 8AE0 ldi r24,lo8(10)
  1262. 1240 0058 782E mov r7,r24
  1263. 1241 005a 00C0 rjmp .L137
  1264. 1242 .L136:
  1265. 1243 005c D201 movw r26,r4
  1266. 1244 005e 1696 adiw r26,6
  1267. 1245 0060 8C91 ld r24,X
  1268. 1246 0062 1697 sbiw r26,6
  1269. 1247 0064 1796 adiw r26,7
  1270. 1248 0066 8C93 st X,r24
  1271. 1249 0068 00C0 rjmp .L150
  1272. 1250 .L148:
  1273. 1251 006a F201 movw r30,r4
  1274. 1252 006c 8681 ldd r24,Z+6
  1275. 1253 006e 9781 ldd r25,Z+7
  1276. 1254 0070 9817 cp r25,r24
  1277. GAS LISTING /tmp/ccWlS2uD.s page 23
  1278. 1255 0072 01F0 breq .L139
  1279. 1256 .L144:
  1280. 1257 0074 D201 movw r26,r4
  1281. 1258 0076 1796 adiw r26,7
  1282. 1259 0078 8C91 ld r24,X
  1283. 1260 007a 1797 sbiw r26,7
  1284. 1261 007c 91E0 ldi r25,lo8(1)
  1285. 1262 007e 980F add r25,r24
  1286. 1263 0080 1796 adiw r26,7
  1287. 1264 0082 9C93 st X,r25
  1288. 1265 0084 F201 movw r30,r4
  1289. 1266 0086 E80F add r30,r24
  1290. 1267 0088 F11D adc r31,__zero_reg__
  1291. 1268 008a 8485 ldd r24,Z+12
  1292. 1269 008c 8114 cp r8,__zero_reg__
  1293. 1270 008e 9104 cpc r9,__zero_reg__
  1294. 1271 0090 A104 cpc r10,__zero_reg__
  1295. 1272 0092 B104 cpc r11,__zero_reg__
  1296. 1273 0094 01F0 breq .L141
  1297. 1274 0096 8D30 cpi r24,lo8(13)
  1298. 1275 0098 01F4 brne .L158
  1299. 1276 .L145:
  1300. 1277 009a D201 movw r26,r4
  1301. 1278 009c 1B96 adiw r26,11
  1302. 1279 009e 9C91 ld r25,X
  1303. 1280 00a0 9923 tst r25
  1304. 1281 00a2 01F0 breq .L146
  1305. 1282 00a4 8917 cp r24,r25
  1306. 1283 00a6 01F0 breq .L146
  1307. 1284 .L137:
  1308. 1285 00a8 0C15 cp r16,r12
  1309. 1286 00aa 1D05 cpc r17,r13
  1310. 1287 00ac 04F0 brlt .L148
  1311. 1288 00ae 00C0 rjmp .L149
  1312. 1289 .L139:
  1313. 1290 00b0 0115 cp r16,__zero_reg__
  1314. 1291 00b2 1105 cpc r17,__zero_reg__
  1315. 1292 00b4 01F4 brne .L149
  1316. 1293 .L142:
  1317. 1294 00b6 F201 movw r30,r4
  1318. 1295 00b8 8681 ldd r24,Z+6
  1319. 1296 00ba 9781 ldd r25,Z+7
  1320. 1297 00bc 9813 cpse r25,r24
  1321. 1298 00be 00C0 rjmp .L144
  1322. 1299 00c0 C701 movw r24,r14
  1323. 1300 00c2 6983 std Y+1,r22
  1324. 1301 00c4 7A83 std Y+2,r23
  1325. 1302 00c6 0E94 0000 call UartAvrInput
  1326. 1303 00ca 6981 ldd r22,Y+1
  1327. 1304 00cc 7A81 ldd r23,Y+2
  1328. 1305 00ce 892B or r24,r25
  1329. 1306 00d0 01F0 breq .L142
  1330. 1307 00d2 00C0 rjmp .L150
  1331. 1308 .L158:
  1332. 1309 00d4 8A30 cpi r24,lo8(10)
  1333. 1310 00d6 01F4 brne .L141
  1334. 1311 00d8 00C0 rjmp .L145
  1335. GAS LISTING /tmp/ccWlS2uD.s page 24
  1336. 1312 .L146:
  1337. 1313 00da F201 movw r30,r4
  1338. 1314 00dc 8387 std Z+11,r24
  1339. 1315 00de DB01 movw r26,r22
  1340. 1316 00e0 7C92 st X,r7
  1341. 1317 00e2 00C0 rjmp .L157
  1342. 1318 .L141:
  1343. 1319 00e4 F201 movw r30,r4
  1344. 1320 00e6 1386 std Z+11,__zero_reg__
  1345. 1321 00e8 DB01 movw r26,r22
  1346. 1322 00ea 8C93 st X,r24
  1347. 1323 .L157:
  1348. 1324 00ec 0F5F subi r16,-1
  1349. 1325 00ee 1F4F sbci r17,-1
  1350. 1326 00f0 6F5F subi r22,-1
  1351. 1327 00f2 7F4F sbci r23,-1
  1352. 1328 00f4 00C0 rjmp .L137
  1353. 1329 .L149:
  1354. 1330 00f6 C801 movw r24,r16
  1355. 1331 00f8 00C0 rjmp .L138
  1356. 1332 .L150:
  1357. 1333 00fa 80E0 ldi r24,0
  1358. 1334 00fc 90E0 ldi r25,0
  1359. 1335 .L138:
  1360. 1336 /* epilogue start */
  1361. 1337 00fe 0F90 pop __tmp_reg__
  1362. 1338 0100 0F90 pop __tmp_reg__
  1363. 1339 0102 DF91 pop r29
  1364. 1340 0104 CF91 pop r28
  1365. 1341 0106 1F91 pop r17
  1366. 1342 0108 0F91 pop r16
  1367. 1343 010a FF90 pop r15
  1368. 1344 010c EF90 pop r14
  1369. 1345 010e DF90 pop r13
  1370. 1346 0110 CF90 pop r12
  1371. 1347 0112 BF90 pop r11
  1372. 1348 0114 AF90 pop r10
  1373. 1349 0116 9F90 pop r9
  1374. 1350 0118 8F90 pop r8
  1375. 1351 011a 7F90 pop r7
  1376. 1352 011c 5F90 pop r5
  1377. 1353 011e 4F90 pop r4
  1378. 1354 0120 0895 ret
  1379. 1355 .size UartAvrRead, .-UartAvrRead
  1380. 1356 .section .text.UartAvrPut,"ax",@progbits
  1381. 1357 .global UartAvrPut
  1382. 1358 .type UartAvrPut, @function
  1383. 1359 UartAvrPut:
  1384. 1360 0000 4F92 push r4
  1385. 1361 0002 5F92 push r5
  1386. 1362 0004 6F92 push r6
  1387. 1363 0006 7F92 push r7
  1388. 1364 0008 8F92 push r8
  1389. 1365 000a 9F92 push r9
  1390. 1366 000c AF92 push r10
  1391. 1367 000e BF92 push r11
  1392. 1368 0010 CF92 push r12
  1393. GAS LISTING /tmp/ccWlS2uD.s page 25
  1394. 1369 0012 DF92 push r13
  1395. 1370 0014 EF92 push r14
  1396. 1371 0016 FF92 push r15
  1397. 1372 0018 0F93 push r16
  1398. 1373 001a 1F93 push r17
  1399. 1374 001c CF93 push r28
  1400. 1375 001e DF93 push r29
  1401. 1376 0020 1F92 push __zero_reg__
  1402. 1377 0022 1F92 push __zero_reg__
  1403. 1378 0024 CDB7 in r28,__SP_L__
  1404. 1379 0026 DEB7 in r29,__SP_H__
  1405. 1380 /* prologue: function */
  1406. 1381 /* frame size = 2 */
  1407. 1382 /* stack size = 18 */
  1408. 1383 .L__stack_usage = 18
  1409. 1384 0028 2C01 movw r4,r24
  1410. 1385 002a 7B01 movw r14,r22
  1411. 1386 002c 5A01 movw r10,r20
  1412. 1387 002e 4901 movw r8,r18
  1413. 1388 0030 FC01 movw r30,r24
  1414. 1389 0032 0785 ldd r16,Z+15
  1415. 1390 0034 1089 ldd r17,Z+16
  1416. 1391 0036 C188 ldd r12,Z+17
  1417. 1392 0038 D288 ldd r13,Z+18
  1418. 1393 003a F601 movw r30,r12
  1419. 1394 003c 8485 ldd r24,Z+12
  1420. 1395 003e 9585 ldd r25,Z+13
  1421. 1396 0040 A685 ldd r26,Z+14
  1422. 1397 0042 B785 ldd r27,Z+15
  1423. 1398 0044 AC01 movw r20,r24
  1424. 1399 0046 BD01 movw r22,r26
  1425. 1400 0048 25E1 ldi r18,21
  1426. 1401 1:
  1427. 1402 004a 7695 lsr r23
  1428. 1403 004c 6795 ror r22
  1429. 1404 004e 5795 ror r21
  1430. 1405 0050 4795 ror r20
  1431. 1406 0052 2A95 dec r18
  1432. 1407 0054 01F4 brne 1b
  1433. 1408 0056 242F mov r18,r20
  1434. 1409 0058 2170 andi r18,lo8(1)
  1435. 1410 005a 31E1 ldi r19,17
  1436. 1411 1:
  1437. 1412 005c B695 lsr r27
  1438. 1413 005e A795 ror r26
  1439. 1414 0060 9795 ror r25
  1440. 1415 0062 8795 ror r24
  1441. 1416 0064 3A95 dec r19
  1442. 1417 0066 01F4 brne 1b
  1443. 1418 0068 382F mov r19,r24
  1444. 1419 006a 3170 andi r19,lo8(1)
  1445. 1420 006c E114 cp r14,__zero_reg__
  1446. 1421 006e F104 cpc r15,__zero_reg__
  1447. 1422 0070 01F0 breq .L160
  1448. 1423 0072 612C mov r6,__zero_reg__
  1449. 1424 0074 712C mov r7,__zero_reg__
  1450. 1425 0076 00C0 rjmp .L161
  1451. GAS LISTING /tmp/ccWlS2uD.s page 26
  1452. 1426 .L160:
  1453. 1427 0078 C201 movw r24,r4
  1454. 1428 /* epilogue start */
  1455. 1429 007a 0F90 pop __tmp_reg__
  1456. 1430 007c 0F90 pop __tmp_reg__
  1457. 1431 007e DF91 pop r29
  1458. 1432 0080 CF91 pop r28
  1459. 1433 0082 1F91 pop r17
  1460. 1434 0084 0F91 pop r16
  1461. 1435 0086 FF90 pop r15
  1462. 1436 0088 EF90 pop r14
  1463. 1437 008a DF90 pop r13
  1464. 1438 008c CF90 pop r12
  1465. 1439 008e BF90 pop r11
  1466. 1440 0090 AF90 pop r10
  1467. 1441 0092 9F90 pop r9
  1468. 1442 0094 8F90 pop r8
  1469. 1443 0096 7F90 pop r7
  1470. 1444 0098 6F90 pop r6
  1471. 1445 009a 5F90 pop r5
  1472. 1446 009c 4F90 pop r4
  1473. 1447 009e 0C94 0000 jmp UartAvrFlush
  1474. 1448 .L171:
  1475. 1449 00a2 F801 movw r30,r16
  1476. 1450 00a4 9085 ldd r25,Z+8
  1477. 1451 00a6 8185 ldd r24,Z+9
  1478. 1452 00a8 8F5F subi r24,lo8(-(1))
  1479. 1453 00aa 8917 cp r24,r25
  1480. 1454 00ac 01F0 breq .L162
  1481. 1455 .L166:
  1482. 1456 00ae 8114 cp r8,__zero_reg__
  1483. 1457 00b0 9104 cpc r9,__zero_reg__
  1484. 1458 00b2 01F0 breq .L182
  1485. 1459 00b4 F701 movw r30,r14
  1486. 1460 /* #APP */
  1487. 1461 ; 771 "../../nut/arch/avr/dev/uartavr.c" 1
  1488. 1462 00b6 8491 lpm r24, Z
  1489. 1463
  1490. 1464 ; 0 "" 2
  1491. 1465 /* #NOAPP */
  1492. 1466 .L167:
  1493. 1467 00b8 3130 cpi r19,lo8(1)
  1494. 1468 00ba 01F4 brne .L168
  1495. 1469 00bc 8A30 cpi r24,lo8(10)
  1496. 1470 00be 01F4 brne .L169
  1497. 1471 00c0 8DE0 ldi r24,lo8(13)
  1498. 1472 00c2 32E0 ldi r19,lo8(2)
  1499. 1473 00c4 2130 cpi r18,lo8(1)
  1500. 1474 00c6 01F4 brne .L170
  1501. 1475 00c8 22E0 ldi r18,lo8(2)
  1502. 1476 .L170:
  1503. 1477 00ca F801 movw r30,r16
  1504. 1478 00cc 9185 ldd r25,Z+9
  1505. 1479 00ce 41E0 ldi r20,lo8(1)
  1506. 1480 00d0 490F add r20,r25
  1507. 1481 00d2 4187 std Z+9,r20
  1508. 1482 00d4 E90F add r30,r25
  1509. GAS LISTING /tmp/ccWlS2uD.s page 27
  1510. 1483 00d6 F11D adc r31,__zero_reg__
  1511. 1484 00d8 E45F subi r30,-12
  1512. 1485 00da FE4F sbci r31,-2
  1513. 1486 00dc 8083 st Z,r24
  1514. 1487 .L161:
  1515. 1488 00de 6A14 cp r6,r10
  1516. 1489 00e0 7B04 cpc r7,r11
  1517. 1490 00e2 04F0 brlt .L171
  1518. 1491 00e4 00C0 rjmp .L183
  1519. 1492 .L162:
  1520. 1493 00e6 C201 movw r24,r4
  1521. 1494 00e8 2983 std Y+1,r18
  1522. 1495 00ea 3A83 std Y+2,r19
  1523. 1496 00ec 0E94 0000 call UartAvrFlush
  1524. 1497 00f0 2981 ldd r18,Y+1
  1525. 1498 00f2 3A81 ldd r19,Y+2
  1526. 1499 00f4 892B or r24,r25
  1527. 1500 00f6 01F0 breq .L166
  1528. 1501 00f8 00C0 rjmp .L165
  1529. 1502 .L182:
  1530. 1503 00fa F701 movw r30,r14
  1531. 1504 00fc 8081 ld r24,Z
  1532. 1505 00fe 00C0 rjmp .L167
  1533. 1506 .L168:
  1534. 1507 0100 3230 cpi r19,lo8(2)
  1535. 1508 0102 01F4 brne .L169
  1536. 1509 0104 31E0 ldi r19,lo8(1)
  1537. 1510 .L169:
  1538. 1511 0106 FFEF ldi r31,-1
  1539. 1512 0108 EF1A sub r14,r31
  1540. 1513 010a FF0A sbc r15,r31
  1541. 1514 010c 9FEF ldi r25,-1
  1542. 1515 010e 691A sub r6,r25
  1543. 1516 0110 790A sbc r7,r25
  1544. 1517 0112 00C0 rjmp .L170
  1545. 1518 .L183:
  1546. 1519 0114 2230 cpi r18,lo8(2)
  1547. 1520 0116 01F0 breq .L172
  1548. 1521 0118 F601 movw r30,r12
  1549. 1522 011a 8485 ldd r24,Z+12
  1550. 1523 011c 9585 ldd r25,Z+13
  1551. 1524 011e A685 ldd r26,Z+14
  1552. 1525 0120 B785 ldd r27,Z+15
  1553. 1526 0122 A4FF sbrs r26,4
  1554. 1527 0124 00C0 rjmp .L177
  1555. 1528 .L172:
  1556. 1529 0126 C201 movw r24,r4
  1557. 1530 0128 0E94 0000 call UartAvrFlush
  1558. 1531 012c 892B or r24,r25
  1559. 1532 012e 01F0 breq .L177
  1560. 1533 .L165:
  1561. 1534 0130 8FEF ldi r24,lo8(-1)
  1562. 1535 0132 9FEF ldi r25,lo8(-1)
  1563. 1536 0134 00C0 rjmp .L173
  1564. 1537 .L177:
  1565. 1538 0136 C301 movw r24,r6
  1566. 1539 .L173:
  1567. GAS LISTING /tmp/ccWlS2uD.s page 28
  1568. 1540 /* epilogue start */
  1569. 1541 0138 0F90 pop __tmp_reg__
  1570. 1542 013a 0F90 pop __tmp_reg__
  1571. 1543 013c DF91 pop r29
  1572. 1544 013e CF91 pop r28
  1573. 1545 0140 1F91 pop r17
  1574. 1546 0142 0F91 pop r16
  1575. 1547 0144 FF90 pop r15
  1576. 1548 0146 EF90 pop r14
  1577. 1549 0148 DF90 pop r13
  1578. 1550 014a CF90 pop r12
  1579. 1551 014c BF90 pop r11
  1580. 1552 014e AF90 pop r10
  1581. 1553 0150 9F90 pop r9
  1582. 1554 0152 8F90 pop r8
  1583. 1555 0154 7F90 pop r7
  1584. 1556 0156 6F90 pop r6
  1585. 1557 0158 5F90 pop r5
  1586. 1558 015a 4F90 pop r4
  1587. 1559 015c 0895 ret
  1588. 1560 .size UartAvrPut, .-UartAvrPut
  1589. 1561 .section .text.UartAvrWrite,"ax",@progbits
  1590. 1562 .global UartAvrWrite
  1591. 1563 .type UartAvrWrite, @function
  1592. 1564 UartAvrWrite:
  1593. 1565 /* prologue: function */
  1594. 1566 /* frame size = 0 */
  1595. 1567 /* stack size = 0 */
  1596. 1568 .L__stack_usage = 0
  1597. 1569 0000 20E0 ldi r18,0
  1598. 1570 0002 30E0 ldi r19,0
  1599. 1571 0004 FC01 movw r30,r24
  1600. 1572 0006 8081 ld r24,Z
  1601. 1573 0008 9181 ldd r25,Z+1
  1602. 1574 000a 0C94 0000 jmp UartAvrPut
  1603. 1575 .size UartAvrWrite, .-UartAvrWrite
  1604. 1576 .section .text.UartAvrWrite_P,"ax",@progbits
  1605. 1577 .global UartAvrWrite_P
  1606. 1578 .type UartAvrWrite_P, @function
  1607. 1579 UartAvrWrite_P:
  1608. 1580 /* prologue: function */
  1609. 1581 /* frame size = 0 */
  1610. 1582 /* stack size = 0 */
  1611. 1583 .L__stack_usage = 0
  1612. 1584 0000 21E0 ldi r18,lo8(1)
  1613. 1585 0002 30E0 ldi r19,0
  1614. 1586 0004 FC01 movw r30,r24
  1615. 1587 0006 8081 ld r24,Z
  1616. 1588 0008 9181 ldd r25,Z+1
  1617. 1589 000a 0C94 0000 jmp UartAvrPut
  1618. 1590 .size UartAvrWrite_P, .-UartAvrWrite_P
  1619. 1591 .section .text.UartAvrOpen,"ax",@progbits
  1620. 1592 .global UartAvrOpen
  1621. 1593 .type UartAvrOpen, @function
  1622. 1594 UartAvrOpen:
  1623. 1595 0000 EF92 push r14
  1624. 1596 0002 FF92 push r15
  1625. GAS LISTING /tmp/ccWlS2uD.s page 29
  1626. 1597 0004 0F93 push r16
  1627. 1598 0006 1F93 push r17
  1628. 1599 0008 CF93 push r28
  1629. 1600 000a DF93 push r29
  1630. 1601 /* prologue: function */
  1631. 1602 /* frame size = 0 */
  1632. 1603 /* stack size = 6 */
  1633. 1604 .L__stack_usage = 6
  1634. 1605 000c EC01 movw r28,r24
  1635. 1606 000e 7A01 movw r14,r20
  1636. 1607 0010 64E0 ldi r22,lo8(4)
  1637. 1608 0012 70E0 ldi r23,0
  1638. 1609 0014 80E0 ldi r24,lo8(heapFreeList)
  1639. 1610 0016 90E0 ldi r25,hi8(heapFreeList)
  1640. 1611 0018 0E94 0000 call NutHeapRootAlloc
  1641. 1612 001c FC01 movw r30,r24
  1642. 1613 001e 892B or r24,r25
  1643. 1614 0020 01F0 breq .L190
  1644. 1615 0022 A989 ldd r26,Y+17
  1645. 1616 0024 BA89 ldd r27,Y+18
  1646. 1617 0026 1C96 adiw r26,12
  1647. 1618 0028 0D91 ld r16,X+
  1648. 1619 002a 1D91 ld r17,X+
  1649. 1620 002c 2D91 ld r18,X+
  1650. 1621 002e 3C91 ld r19,X
  1651. 1622 0030 1F97 sbiw r26,12+3
  1652. 1623 0032 F7FE sbrs r15,7
  1653. 1624 0034 00C0 rjmp .L188
  1654. 1625 0036 2D7F andi r18,253
  1655. 1626 0038 00C0 rjmp .L191
  1656. 1627 .L188:
  1657. 1628 003a 2260 ori r18,2
  1658. 1629 .L191:
  1659. 1630 003c 1C96 adiw r26,12
  1660. 1631 003e 0D93 st X+,r16
  1661. 1632 0040 1D93 st X+,r17
  1662. 1633 0042 2D93 st X+,r18
  1663. 1634 0044 3C93 st X,r19
  1664. 1635 0046 1F97 sbiw r26,12+3
  1665. 1636 0048 D183 std Z+1,r29
  1666. 1637 004a C083 st Z,r28
  1667. 1638 004c 1382 std Z+3,__zero_reg__
  1668. 1639 004e 1282 std Z+2,__zero_reg__
  1669. 1640 0050 CF01 movw r24,r30
  1670. 1641 0052 00C0 rjmp .L187
  1671. 1642 .L190:
  1672. 1643 0054 8FEF ldi r24,lo8(-1)
  1673. 1644 0056 9FEF ldi r25,lo8(-1)
  1674. 1645 .L187:
  1675. 1646 /* epilogue start */
  1676. 1647 0058 DF91 pop r29
  1677. 1648 005a CF91 pop r28
  1678. 1649 005c 1F91 pop r17
  1679. 1650 005e 0F91 pop r16
  1680. 1651 0060 FF90 pop r15
  1681. 1652 0062 EF90 pop r14
  1682. 1653 0064 0895 ret
  1683. GAS LISTING /tmp/ccWlS2uD.s page 30
  1684. 1654 .size UartAvrOpen, .-UartAvrOpen
  1685. 1655 .section .text.UartAvrClose,"ax",@progbits
  1686. 1656 .global UartAvrClose
  1687. 1657 .type UartAvrClose, @function
  1688. 1658 UartAvrClose:
  1689. 1659 /* prologue: function */
  1690. 1660 /* frame size = 0 */
  1691. 1661 /* stack size = 0 */
  1692. 1662 .L__stack_usage = 0
  1693. 1663 0000 BC01 movw r22,r24
  1694. 1664 0002 80E0 ldi r24,lo8(heapFreeList)
  1695. 1665 0004 90E0 ldi r25,hi8(heapFreeList)
  1696. 1666 0006 0E94 0000 call NutHeapRootFree
  1697. 1667 000a 80E0 ldi r24,0
  1698. 1668 000c 90E0 ldi r25,0
  1699. 1669 000e 0895 ret
  1700. 1670 .size UartAvrClose, .-UartAvrClose
  1701. 1671 .section .text.UartAvrSize,"ax",@progbits
  1702. 1672 .global UartAvrSize
  1703. 1673 .type UartAvrSize, @function
  1704. 1674 UartAvrSize:
  1705. 1675 /* prologue: function */
  1706. 1676 /* frame size = 0 */
  1707. 1677 /* stack size = 0 */
  1708. 1678 .L__stack_usage = 0
  1709. 1679 0000 DC01 movw r26,r24
  1710. 1680 0002 ED91 ld r30,X+
  1711. 1681 0004 FC91 ld r31,X
  1712. 1682 0006 0784 ldd __tmp_reg__,Z+15
  1713. 1683 0008 F089 ldd r31,Z+16
  1714. 1684 000a E02D mov r30,__tmp_reg__
  1715. 1685 000c 6681 ldd r22,Z+6
  1716. 1686 000e 8781 ldd r24,Z+7
  1717. 1687 0010 681B sub r22,r24
  1718. 1688 0012 70E0 ldi r23,0
  1719. 1689 0014 80E0 ldi r24,0
  1720. 1690 0016 90E0 ldi r25,0
  1721. 1691 0018 0895 ret
  1722. 1692 .size UartAvrSize, .-UartAvrSize
  1723. 1693 .ident "GCC: (GNU) 5.3.0"
  1724. GAS LISTING /tmp/ccWlS2uD.s page 31
  1725. DEFINED SYMBOLS
  1726. *ABS*:0000000000000000 uartavr.c
  1727. /tmp/ccWlS2uD.s:2 *ABS*:000000000000003e __SP_H__
  1728. /tmp/ccWlS2uD.s:3 *ABS*:000000000000003d __SP_L__
  1729. /tmp/ccWlS2uD.s:4 *ABS*:000000000000003f __SREG__
  1730. /tmp/ccWlS2uD.s:5 *ABS*:000000000000003b __RAMPZ__
  1731. /tmp/ccWlS2uD.s:6 *ABS*:0000000000000000 __tmp_reg__
  1732. /tmp/ccWlS2uD.s:7 *ABS*:0000000000000001 __zero_reg__
  1733. /tmp/ccWlS2uD.s:10 .text.TxComplete:0000000000000000 TxComplete
  1734. /tmp/ccWlS2uD.s:87 .text.RxComplete:0000000000000000 RxComplete
  1735. /tmp/ccWlS2uD.s:159 .text.UartAvrOutput:0000000000000000 UartAvrOutput
  1736. /tmp/ccWlS2uD.s:213 .text.UartAvrEnable:0000000000000000 UartAvrEnable
  1737. /tmp/ccWlS2uD.s:247 .text.UartAvrInput:0000000000000000 UartAvrInput
  1738. /tmp/ccWlS2uD.s:335 .text.UartAvrFlush:0000000000000000 UartAvrFlush
  1739. /tmp/ccWlS2uD.s:403 .text.UartAvrDisable:0000000000000000 UartAvrDisable
  1740. /tmp/ccWlS2uD.s:458 .text.UartAvrIOCtl:0000000000000000 UartAvrIOCtl
  1741. /tmp/ccWlS2uD.s:1047 .text.UartAvrInit:0000000000000000 UartAvrInit
  1742. /tmp/ccWlS2uD.s:1191 .text.UartAvrRead:0000000000000000 UartAvrRead
  1743. /tmp/ccWlS2uD.s:1359 .text.UartAvrPut:0000000000000000 UartAvrPut
  1744. /tmp/ccWlS2uD.s:1564 .text.UartAvrWrite:0000000000000000 UartAvrWrite
  1745. /tmp/ccWlS2uD.s:1579 .text.UartAvrWrite_P:0000000000000000 UartAvrWrite_P
  1746. /tmp/ccWlS2uD.s:1594 .text.UartAvrOpen:0000000000000000 UartAvrOpen
  1747. /tmp/ccWlS2uD.s:1658 .text.UartAvrClose:0000000000000000 UartAvrClose
  1748. /tmp/ccWlS2uD.s:1674 .text.UartAvrSize:0000000000000000 UartAvrSize
  1749. UNDEFINED SYMBOLS
  1750. NutEventWait
  1751. NutDelay
  1752. devUart0
  1753. __tablejump2__
  1754. NutGetCpuClock
  1755. __udivmodsi4
  1756. __muluhisi3
  1757. sig_UART1_RECV
  1758. NutRegisterIrqHandler
  1759. sig_UART1_TRANS
  1760. sig_UART0_RECV
  1761. sig_UART0_TRANS
  1762. heapFreeList
  1763. NutHeapRootAlloc
  1764. NutHeapRootFree