twif.lst 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605
  1. GAS LISTING /tmp/cczZ1JLd.s page 1
  2. 1 .file "twif.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.TwInterrupt,"ax",@progbits
  10. 9 .type TwInterrupt, @function
  11. 10 TwInterrupt:
  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 1896 adiw r26,8
  18. 17 0004 ED91 ld r30,X+
  19. 18 0006 FC91 ld r31,X
  20. 19 0008 1997 sbiw r26,8+1
  21. 20 000a 9091 BC00 lds r25,188
  22. 21 000e 8091 B900 lds r24,185
  23. 22 0012 887F andi r24,lo8(-8)
  24. 23 0014 8036 cpi r24,lo8(96)
  25. 24 0016 01F4 brne .+2
  26. 25 0018 00C0 rjmp .L3
  27. 26 001a 00F4 brsh .L4
  28. 27 001c 8832 cpi r24,lo8(40)
  29. 28 001e 01F4 brne .+2
  30. 29 0020 00C0 rjmp .L5
  31. 30 0022 00F4 brsh .L6
  32. 31 0024 8031 cpi r24,lo8(16)
  33. 32 0026 01F4 brne .+2
  34. 33 0028 00C0 rjmp .L7
  35. 34 002a 00F4 brsh .L8
  36. 35 002c 8823 tst r24
  37. 36 002e 01F4 brne .+2
  38. 37 0030 00C0 rjmp .L9
  39. 38 0032 8830 cpi r24,lo8(8)
  40. 39 0034 01F4 brne .+2
  41. 40 0036 00C0 rjmp .L7
  42. 41 0038 0895 ret
  43. 42 .L8:
  44. 43 003a 8831 cpi r24,lo8(24)
  45. 44 003c 01F4 brne .+2
  46. 45 003e 00C0 rjmp .L5
  47. 46 0040 8032 cpi r24,lo8(32)
  48. 47 0042 01F4 brne .+2
  49. 48 0044 00C0 rjmp .L28
  50. 49 0046 0895 ret
  51. 50 .L6:
  52. 51 0048 8034 cpi r24,lo8(64)
  53. 52 004a 01F4 brne .+2
  54. 53 004c 00C0 rjmp .L11
  55. 54 004e 00F4 brsh .L12
  56. 55 0050 8033 cpi r24,lo8(48)
  57. 56 0052 01F4 brne .+2
  58. 57 0054 00C0 rjmp .L173
  59. GAS LISTING /tmp/cczZ1JLd.s page 2
  60. 58 0056 8833 cpi r24,lo8(56)
  61. 59 0058 01F4 brne .+2
  62. 60 005a 00C0 rjmp .L13
  63. 61 005c 0895 ret
  64. 62 .L12:
  65. 63 005e 8035 cpi r24,lo8(80)
  66. 64 0060 01F4 brne .+2
  67. 65 0062 00C0 rjmp .L14
  68. 66 0064 8835 cpi r24,lo8(88)
  69. 67 0066 01F4 brne .+2
  70. 68 0068 00C0 rjmp .L15
  71. 69 006a 8834 cpi r24,lo8(72)
  72. 70 006c 01F0 breq .+2
  73. 71 006e 00C0 rjmp .L1
  74. 72 0070 00C0 rjmp .L28
  75. 73 .L4:
  76. 74 0072 8839 cpi r24,lo8(-104)
  77. 75 0074 01F4 brne .+2
  78. 76 0076 00C0 rjmp .L16
  79. 77 0078 00F4 brsh .L17
  80. 78 007a 8837 cpi r24,lo8(120)
  81. 79 007c 01F4 brne .+2
  82. 80 007e 00C0 rjmp .L3
  83. 81 0080 00F4 brsh .L18
  84. 82 0082 8836 cpi r24,lo8(104)
  85. 83 0084 01F4 brne .+2
  86. 84 0086 00C0 rjmp .L3
  87. 85 0088 8037 cpi r24,lo8(112)
  88. 86 008a 01F4 brne .+2
  89. 87 008c 00C0 rjmp .L3
  90. 88 008e 0895 ret
  91. 89 .L18:
  92. 90 0090 8838 cpi r24,lo8(-120)
  93. 91 0092 01F4 brne .+2
  94. 92 0094 00C0 rjmp .L16
  95. 93 0096 8039 cpi r24,lo8(-112)
  96. 94 0098 01F4 brne .+2
  97. 95 009a 00C0 rjmp .L19
  98. 96 009c 8038 cpi r24,lo8(-128)
  99. 97 009e 01F0 breq .+2
  100. 98 00a0 00C0 rjmp .L1
  101. 99 00a2 00C0 rjmp .L19
  102. 100 .L17:
  103. 101 00a4 803B cpi r24,lo8(-80)
  104. 102 00a6 01F4 brne .+2
  105. 103 00a8 00C0 rjmp .L20
  106. 104 00aa 00F4 brsh .L21
  107. 105 00ac 803A cpi r24,lo8(-96)
  108. 106 00ae 01F4 brne .+2
  109. 107 00b0 00C0 rjmp .L22
  110. 108 00b2 883A cpi r24,lo8(-88)
  111. 109 00b4 01F4 brne .+2
  112. 110 00b6 00C0 rjmp .L20
  113. 111 00b8 0895 ret
  114. 112 .L21:
  115. 113 00ba 803C cpi r24,lo8(-64)
  116. 114 00bc 01F4 brne .+2
  117. GAS LISTING /tmp/cczZ1JLd.s page 3
  118. 115 00be 00C0 rjmp .L23
  119. 116 00c0 883C cpi r24,lo8(-56)
  120. 117 00c2 01F4 brne .+2
  121. 118 00c4 00C0 rjmp .L23
  122. 119 00c6 883B cpi r24,lo8(-72)
  123. 120 00c8 01F4 brne .+2
  124. 121 00ca 00C0 rjmp .L24
  125. 122 00cc 0895 ret
  126. 123 .L7:
  127. 124 00ce 81E0 ldi r24,lo8(1)
  128. 125 00d0 8083 st Z,r24
  129. 126 00d2 1286 std Z+10,__zero_reg__
  130. 127 00d4 1186 std Z+9,__zero_reg__
  131. 128 00d6 108A std Z+16,__zero_reg__
  132. 129 00d8 1786 std Z+15,__zero_reg__
  133. 130 00da 2781 ldd r18,Z+7
  134. 131 00dc 3085 ldd r19,Z+8
  135. 132 00de 232B or r18,r19
  136. 133 00e0 01F0 breq .L25
  137. 134 00e2 2181 ldd r18,Z+1
  138. 135 00e4 3281 ldd r19,Z+2
  139. 136 00e6 00C0 rjmp .L156
  140. 137 .L25:
  141. 138 00e8 2181 ldd r18,Z+1
  142. 139 00ea 3281 ldd r19,Z+2
  143. 140 00ec 2160 ori r18,lo8(1)
  144. 141 .L156:
  145. 142 00ee 2093 BB00 sts 187,r18
  146. 143 00f2 00C0 rjmp .L161
  147. 144 .L5:
  148. 145 00f4 4185 ldd r20,Z+9
  149. 146 00f6 5285 ldd r21,Z+10
  150. 147 00f8 2781 ldd r18,Z+7
  151. 148 00fa 3085 ldd r19,Z+8
  152. 149 00fc 4217 cp r20,r18
  153. 150 00fe 5307 cpc r21,r19
  154. 151 0100 00F4 brsh .L27
  155. 152 0102 2185 ldd r18,Z+9
  156. 153 0104 3285 ldd r19,Z+10
  157. 154 0106 A581 ldd r26,Z+5
  158. 155 0108 B681 ldd r27,Z+6
  159. 156 010a A20F add r26,r18
  160. 157 010c B31F adc r27,r19
  161. 158 010e 8C91 ld r24,X
  162. 159 0110 8093 BB00 sts 187,r24
  163. 160 0114 2185 ldd r18,Z+9
  164. 161 0116 3285 ldd r19,Z+10
  165. 162 0118 2F5F subi r18,-1
  166. 163 011a 3F4F sbci r19,-1
  167. 164 011c 3287 std Z+10,r19
  168. 165 011e 2187 std Z+9,r18
  169. 166 .L161:
  170. 167 0120 9074 andi r25,lo8(64)
  171. 168 0122 9568 ori r25,lo8(-123)
  172. 169 .L162:
  173. 170 0124 9093 BC00 sts 188,r25
  174. 171 0128 0895 ret
  175. GAS LISTING /tmp/cczZ1JLd.s page 4
  176. 172 .L27:
  177. 173 012a 1086 std Z+8,__zero_reg__
  178. 174 012c 1782 std Z+7,__zero_reg__
  179. 175 012e 2585 ldd r18,Z+13
  180. 176 0130 3685 ldd r19,Z+14
  181. 177 0132 232B or r18,r19
  182. 178 0134 01F0 breq .L10
  183. 179 0136 9074 andi r25,lo8(64)
  184. 180 0138 956A ori r25,lo8(-91)
  185. 181 013a 00C0 rjmp .L162
  186. 182 .L10:
  187. 183 013c 8032 cpi r24,lo8(32)
  188. 184 013e 01F0 breq .L28
  189. 185 0140 8834 cpi r24,lo8(72)
  190. 186 0142 01F4 brne .L173
  191. 187 .L28:
  192. 188 0144 8CEF ldi r24,lo8(-4)
  193. 189 0146 8383 std Z+3,r24
  194. 190 0148 1086 std Z+8,__zero_reg__
  195. 191 014a 1782 std Z+7,__zero_reg__
  196. 192 014c 00C0 rjmp .L174
  197. 193 .L13:
  198. 194 014e 8091 BC00 lds r24,188
  199. 195 0152 8062 ori r24,lo8(32)
  200. 196 0154 00C0 rjmp .L160
  201. 197 .L14:
  202. 198 0156 8785 ldd r24,Z+15
  203. 199 0158 9089 ldd r25,Z+16
  204. 200 015a 2091 BB00 lds r18,187
  205. 201 015e A385 ldd r26,Z+11
  206. 202 0160 B485 ldd r27,Z+12
  207. 203 0162 A80F add r26,r24
  208. 204 0164 B91F adc r27,r25
  209. 205 0166 2C93 st X,r18
  210. 206 0168 8785 ldd r24,Z+15
  211. 207 016a 9089 ldd r25,Z+16
  212. 208 016c 0196 adiw r24,1
  213. 209 016e 908B std Z+16,r25
  214. 210 0170 8787 std Z+15,r24
  215. 211 .L11:
  216. 212 0172 8785 ldd r24,Z+15
  217. 213 0174 9089 ldd r25,Z+16
  218. 214 0176 2585 ldd r18,Z+13
  219. 215 0178 3685 ldd r19,Z+14
  220. 216 017a 0196 adiw r24,1
  221. 217 017c 8217 cp r24,r18
  222. 218 017e 9307 cpc r25,r19
  223. 219 0180 00F0 brlo .+2
  224. 220 0182 00C0 rjmp .L164
  225. 221 0184 00C0 rjmp .L166
  226. 222 .L15:
  227. 223 0186 8785 ldd r24,Z+15
  228. 224 0188 9089 ldd r25,Z+16
  229. 225 018a 2091 BB00 lds r18,187
  230. 226 018e A385 ldd r26,Z+11
  231. 227 0190 B485 ldd r27,Z+12
  232. 228 0192 A80F add r26,r24
  233. GAS LISTING /tmp/cczZ1JLd.s page 5
  234. 229 0194 B91F adc r27,r25
  235. 230 0196 2C93 st X,r18
  236. 231 0198 8785 ldd r24,Z+15
  237. 232 019a 9089 ldd r25,Z+16
  238. 233 019c 0196 adiw r24,1
  239. 234 019e 908B std Z+16,r25
  240. 235 01a0 8787 std Z+15,r24
  241. 236 .L174:
  242. 237 01a2 1686 std Z+14,__zero_reg__
  243. 238 01a4 1586 std Z+13,__zero_reg__
  244. 239 .L173:
  245. 240 01a6 A289 ldd r26,Z+18
  246. 241 01a8 B389 ldd r27,Z+19
  247. 242 01aa 1097 sbiw r26,0
  248. 243 01ac 01F4 brne .L35
  249. 244 01ae 8FEF ldi r24,lo8(-1)
  250. 245 01b0 9FEF ldi r25,lo8(-1)
  251. 246 01b2 938B std Z+19,r25
  252. 247 01b4 828B std Z+18,r24
  253. 248 01b6 00C0 rjmp .L36
  254. 249 .L35:
  255. 250 01b8 AF3F cpi r26,-1
  256. 251 01ba 8FEF ldi r24,-1
  257. 252 01bc B807 cpc r27,r24
  258. 253 01be 01F0 breq .L36
  259. 254 01c0 1496 adiw r26,4
  260. 255 01c2 8D91 ld r24,X+
  261. 256 01c4 9C91 ld r25,X
  262. 257 01c6 1597 sbiw r26,4+1
  263. 258 01c8 0196 adiw r24,1
  264. 259 01ca 1596 adiw r26,4+1
  265. 260 01cc 9C93 st X,r25
  266. 261 01ce 8E93 st -X,r24
  267. 262 01d0 1497 sbiw r26,4
  268. 263 .L36:
  269. 264 01d2 878D ldd r24,Z+31
  270. 265 01d4 90A1 ldd r25,Z+32
  271. 266 01d6 892B or r24,r25
  272. 267 01d8 01F0 breq .L37
  273. 268 01da 85ED ldi r24,lo8(-43)
  274. 269 01dc 00C0 rjmp .L160
  275. 270 .L37:
  276. 271 01de 85E9 ldi r24,lo8(-107)
  277. 272 01e0 00C0 rjmp .L160
  278. 273 .L3:
  279. 274 01e2 878D ldd r24,Z+31
  280. 275 01e4 90A1 ldd r25,Z+32
  281. 276 01e6 892B or r24,r25
  282. 277 01e8 01F4 brne .+2
  283. 278 01ea 00C0 rjmp .L164
  284. 279 01ec 81E0 ldi r24,lo8(1)
  285. 280 01ee 8083 st Z,r24
  286. 281 01f0 8091 BB00 lds r24,187
  287. 282 01f4 848B std Z+20,r24
  288. 283 01f6 85EC ldi r24,lo8(-59)
  289. 284 01f8 8093 BC00 sts 188,r24
  290. 285 01fc 12A2 std Z+34,__zero_reg__
  291. GAS LISTING /tmp/cczZ1JLd.s page 6
  292. 286 01fe 11A2 std Z+33,__zero_reg__
  293. 287 0200 0895 ret
  294. 288 .L19:
  295. 289 0202 21A1 ldd r18,Z+33
  296. 290 0204 32A1 ldd r19,Z+34
  297. 291 0206 878D ldd r24,Z+31
  298. 292 0208 90A1 ldd r25,Z+32
  299. 293 020a 2817 cp r18,r24
  300. 294 020c 3907 cpc r19,r25
  301. 295 020e 00F4 brsh .L40
  302. 296 0210 81A1 ldd r24,Z+33
  303. 297 0212 92A1 ldd r25,Z+34
  304. 298 0214 2091 BB00 lds r18,187
  305. 299 0218 A58D ldd r26,Z+29
  306. 300 021a B68D ldd r27,Z+30
  307. 301 021c A80F add r26,r24
  308. 302 021e B91F adc r27,r25
  309. 303 0220 2C93 st X,r18
  310. 304 0222 81A1 ldd r24,Z+33
  311. 305 0224 92A1 ldd r25,Z+34
  312. 306 0226 0196 adiw r24,1
  313. 307 0228 92A3 std Z+34,r25
  314. 308 022a 81A3 std Z+33,r24
  315. 309 022c 00C0 rjmp .L41
  316. 310 .L40:
  317. 311 022e 10A2 std Z+32,__zero_reg__
  318. 312 0230 178E std Z+31,__zero_reg__
  319. 313 .L41:
  320. 314 0232 878D ldd r24,Z+31
  321. 315 0234 90A1 ldd r25,Z+32
  322. 316 0236 892B or r24,r25
  323. 317 0238 01F0 breq .+2
  324. 318 023a 00C0 rjmp .L166
  325. 319 .L16:
  326. 320 023c 8781 ldd r24,Z+7
  327. 321 023e 9085 ldd r25,Z+8
  328. 322 0240 892B or r24,r25
  329. 323 0242 01F4 brne .L42
  330. 324 0244 8585 ldd r24,Z+13
  331. 325 0246 9685 ldd r25,Z+14
  332. 326 0248 892B or r24,r25
  333. 327 024a 01F0 breq .L43
  334. 328 .L42:
  335. 329 024c 8091 BC00 lds r24,188
  336. 330 0250 8066 ori r24,lo8(96)
  337. 331 0252 00C0 rjmp .L165
  338. 332 .L43:
  339. 333 0254 8091 BC00 lds r24,188
  340. 334 0258 8064 ori r24,lo8(64)
  341. 335 025a 00C0 rjmp .L165
  342. 336 .L22:
  343. 337 025c A3A1 ldd r26,Z+35
  344. 338 025e B4A1 ldd r27,Z+36
  345. 339 0260 1097 sbiw r26,0
  346. 340 0262 01F0 breq .L44
  347. 341 0264 8589 ldd r24,Z+21
  348. 342 0266 8823 tst r24
  349. GAS LISTING /tmp/cczZ1JLd.s page 7
  350. 343 0268 01F0 breq .L45
  351. 344 .L44:
  352. 345 026a 8781 ldd r24,Z+7
  353. 346 026c 9085 ldd r25,Z+8
  354. 347 026e 892B or r24,r25
  355. 348 0270 01F4 brne .L46
  356. 349 0272 8585 ldd r24,Z+13
  357. 350 0274 9685 ldd r25,Z+14
  358. 351 0276 892B or r24,r25
  359. 352 0278 01F0 breq .L47
  360. 353 .L46:
  361. 354 027a 85EA ldi r24,lo8(-91)
  362. 355 027c 00C0 rjmp .L160
  363. 356 .L47:
  364. 357 027e 85E8 ldi r24,lo8(-123)
  365. 358 0280 00C0 rjmp .L160
  366. 359 .L45:
  367. 360 0282 AF3F cpi r26,-1
  368. 361 0284 8FEF ldi r24,-1
  369. 362 0286 B807 cpc r27,r24
  370. 363 0288 01F0 breq .L49
  371. 364 028a 1496 adiw r26,4
  372. 365 028c 2D91 ld r18,X+
  373. 366 028e 3C91 ld r19,X
  374. 367 0290 1597 sbiw r26,4+1
  375. 368 0292 2F5F subi r18,-1
  376. 369 0294 3F4F sbci r19,-1
  377. 370 0296 1596 adiw r26,4+1
  378. 371 0298 3C93 st X,r19
  379. 372 029a 2E93 st -X,r18
  380. 373 029c 1497 sbiw r26,4
  381. 374 .L49:
  382. 375 029e 10A2 std Z+32,__zero_reg__
  383. 376 02a0 178E std Z+31,__zero_reg__
  384. 377 02a2 9E77 andi r25,lo8(126)
  385. 378 02a4 00C0 rjmp .L162
  386. 379 .L20:
  387. 380 02a6 81E0 ldi r24,lo8(1)
  388. 381 02a8 8083 st Z,r24
  389. 382 02aa 148E std Z+28,__zero_reg__
  390. 383 02ac 138E std Z+27,__zero_reg__
  391. 384 .L24:
  392. 385 02ae 238D ldd r18,Z+27
  393. 386 02b0 348D ldd r19,Z+28
  394. 387 02b2 818D ldd r24,Z+25
  395. 388 02b4 928D ldd r25,Z+26
  396. 389 02b6 2817 cp r18,r24
  397. 390 02b8 3907 cpc r19,r25
  398. 391 02ba 00F4 brsh .L50
  399. 392 02bc 838D ldd r24,Z+27
  400. 393 02be 948D ldd r25,Z+28
  401. 394 02c0 A789 ldd r26,Z+23
  402. 395 02c2 B08D ldd r27,Z+24
  403. 396 02c4 A80F add r26,r24
  404. 397 02c6 B91F adc r27,r25
  405. 398 02c8 8C91 ld r24,X
  406. 399 02ca 8093 BB00 sts 187,r24
  407. GAS LISTING /tmp/cczZ1JLd.s page 8
  408. 400 02ce 838D ldd r24,Z+27
  409. 401 02d0 948D ldd r25,Z+28
  410. 402 02d2 0196 adiw r24,1
  411. 403 02d4 948F std Z+28,r25
  412. 404 02d6 838F std Z+27,r24
  413. 405 02d8 238D ldd r18,Z+27
  414. 406 02da 348D ldd r19,Z+28
  415. 407 02dc 818D ldd r24,Z+25
  416. 408 02de 928D ldd r25,Z+26
  417. 409 02e0 2817 cp r18,r24
  418. 410 02e2 3907 cpc r19,r25
  419. 411 02e4 00F4 brsh .L51
  420. 412 .L166:
  421. 413 02e6 85EC ldi r24,lo8(-59)
  422. 414 02e8 00C0 rjmp .L165
  423. 415 .L51:
  424. 416 02ea 128E std Z+26,__zero_reg__
  425. 417 02ec 118E std Z+25,__zero_reg__
  426. 418 02ee 00C0 rjmp .L164
  427. 419 .L50:
  428. 420 02f0 1092 BB00 sts 187,__zero_reg__
  429. 421 .L164:
  430. 422 02f4 85E8 ldi r24,lo8(-123)
  431. 423 .L165:
  432. 424 02f6 8093 BC00 sts 188,r24
  433. 425 02fa 0895 ret
  434. 426 .L23:
  435. 427 02fc A5A1 ldd r26,Z+37
  436. 428 02fe B6A1 ldd r27,Z+38
  437. 429 0300 1097 sbiw r26,0
  438. 430 0302 01F4 brne .L52
  439. 431 0304 8FEF ldi r24,lo8(-1)
  440. 432 0306 9FEF ldi r25,lo8(-1)
  441. 433 0308 96A3 std Z+38,r25
  442. 434 030a 85A3 std Z+37,r24
  443. 435 030c 00C0 rjmp .L53
  444. 436 .L52:
  445. 437 030e AF3F cpi r26,-1
  446. 438 0310 8FEF ldi r24,-1
  447. 439 0312 B807 cpc r27,r24
  448. 440 0314 01F0 breq .L53
  449. 441 0316 1496 adiw r26,4
  450. 442 0318 8D91 ld r24,X+
  451. 443 031a 9C91 ld r25,X
  452. 444 031c 1597 sbiw r26,4+1
  453. 445 031e 0196 adiw r24,1
  454. 446 0320 1596 adiw r26,4+1
  455. 447 0322 9C93 st X,r25
  456. 448 0324 8E93 st -X,r24
  457. 449 0326 1497 sbiw r26,4
  458. 450 .L53:
  459. 451 0328 8781 ldd r24,Z+7
  460. 452 032a 9085 ldd r25,Z+8
  461. 453 032c 892B or r24,r25
  462. 454 032e 01F4 brne .L54
  463. 455 0330 8585 ldd r24,Z+13
  464. 456 0332 9685 ldd r25,Z+14
  465. GAS LISTING /tmp/cczZ1JLd.s page 9
  466. 457 0334 892B or r24,r25
  467. 458 0336 01F0 breq .L55
  468. 459 .L54:
  469. 460 0338 85EE ldi r24,lo8(-27)
  470. 461 033a 00C0 rjmp .L160
  471. 462 .L55:
  472. 463 033c 85EC ldi r24,lo8(-59)
  473. 464 .L160:
  474. 465 033e 8093 BC00 sts 188,r24
  475. 466 0342 1082 st Z,__zero_reg__
  476. 467 0344 0895 ret
  477. 468 .L9:
  478. 469 0346 8091 BC00 lds r24,188
  479. 470 034a 8061 ori r24,lo8(16)
  480. 471 034c 8093 BC00 sts 188,r24
  481. 472 0350 1082 st Z,__zero_reg__
  482. 473 0352 8EEF ldi r24,lo8(-2)
  483. 474 0354 8383 std Z+3,r24
  484. 475 0356 858B std Z+21,r24
  485. 476 0358 A3A1 ldd r26,Z+35
  486. 477 035a B4A1 ldd r27,Z+36
  487. 478 035c 1097 sbiw r26,0
  488. 479 035e 01F4 brne .L57
  489. 480 0360 8FEF ldi r24,lo8(-1)
  490. 481 0362 9FEF ldi r25,lo8(-1)
  491. 482 0364 94A3 std Z+36,r25
  492. 483 0366 83A3 std Z+35,r24
  493. 484 0368 00C0 rjmp .L58
  494. 485 .L57:
  495. 486 036a AF3F cpi r26,-1
  496. 487 036c 8FEF ldi r24,-1
  497. 488 036e B807 cpc r27,r24
  498. 489 0370 01F0 breq .L58
  499. 490 0372 1496 adiw r26,4
  500. 491 0374 8D91 ld r24,X+
  501. 492 0376 9C91 ld r25,X
  502. 493 0378 1597 sbiw r26,4+1
  503. 494 037a 0196 adiw r24,1
  504. 495 037c 1596 adiw r26,4+1
  505. 496 037e 9C93 st X,r25
  506. 497 0380 8E93 st -X,r24
  507. 498 0382 1497 sbiw r26,4
  508. 499 .L58:
  509. 500 0384 A5A1 ldd r26,Z+37
  510. 501 0386 B6A1 ldd r27,Z+38
  511. 502 0388 1097 sbiw r26,0
  512. 503 038a 01F4 brne .L59
  513. 504 038c 8FEF ldi r24,lo8(-1)
  514. 505 038e 9FEF ldi r25,lo8(-1)
  515. 506 0390 96A3 std Z+38,r25
  516. 507 0392 85A3 std Z+37,r24
  517. 508 0394 00C0 rjmp .L60
  518. 509 .L59:
  519. 510 0396 AF3F cpi r26,-1
  520. 511 0398 8FEF ldi r24,-1
  521. 512 039a B807 cpc r27,r24
  522. 513 039c 01F0 breq .L60
  523. GAS LISTING /tmp/cczZ1JLd.s page 10
  524. 514 039e 1496 adiw r26,4
  525. 515 03a0 8D91 ld r24,X+
  526. 516 03a2 9C91 ld r25,X
  527. 517 03a4 1597 sbiw r26,4+1
  528. 518 03a6 0196 adiw r24,1
  529. 519 03a8 1596 adiw r26,4+1
  530. 520 03aa 9C93 st X,r25
  531. 521 03ac 8E93 st -X,r24
  532. 522 03ae 1497 sbiw r26,4
  533. 523 .L60:
  534. 524 03b0 A289 ldd r26,Z+18
  535. 525 03b2 B389 ldd r27,Z+19
  536. 526 03b4 1097 sbiw r26,0
  537. 527 03b6 01F4 brne .L61
  538. 528 03b8 8FEF ldi r24,lo8(-1)
  539. 529 03ba 9FEF ldi r25,lo8(-1)
  540. 530 03bc 938B std Z+19,r25
  541. 531 03be 828B std Z+18,r24
  542. 532 03c0 0895 ret
  543. 533 .L61:
  544. 534 03c2 AF3F cpi r26,-1
  545. 535 03c4 8FEF ldi r24,-1
  546. 536 03c6 B807 cpc r27,r24
  547. 537 03c8 01F0 breq .L1
  548. 538 03ca 1496 adiw r26,4
  549. 539 03cc 8D91 ld r24,X+
  550. 540 03ce 9C91 ld r25,X
  551. 541 03d0 1597 sbiw r26,4+1
  552. 542 03d2 0196 adiw r24,1
  553. 543 03d4 1596 adiw r26,4+1
  554. 544 03d6 9C93 st X,r25
  555. 545 03d8 8E93 st -X,r24
  556. 546 03da 1497 sbiw r26,4
  557. 547 .L1:
  558. 548 03dc 0895 ret
  559. 549 .size TwInterrupt, .-TwInterrupt
  560. 550 .section .text.NutTwiMasterTranceive,"ax",@progbits
  561. 551 .global NutTwiMasterTranceive
  562. 552 .type NutTwiMasterTranceive, @function
  563. 553 NutTwiMasterTranceive:
  564. 554 0000 2F92 push r2
  565. 555 0002 3F92 push r3
  566. 556 0004 4F92 push r4
  567. 557 0006 5F92 push r5
  568. 558 0008 6F92 push r6
  569. 559 000a 7F92 push r7
  570. 560 000c 9F92 push r9
  571. 561 000e AF92 push r10
  572. 562 0010 BF92 push r11
  573. 563 0012 CF92 push r12
  574. 564 0014 DF92 push r13
  575. 565 0016 EF92 push r14
  576. 566 0018 FF92 push r15
  577. 567 001a 0F93 push r16
  578. 568 001c 1F93 push r17
  579. 569 001e CF93 push r28
  580. 570 0020 DF93 push r29
  581. GAS LISTING /tmp/cczZ1JLd.s page 11
  582. 571 /* prologue: function */
  583. 572 /* frame size = 0 */
  584. 573 /* stack size = 17 */
  585. 574 .L__stack_usage = 17
  586. 575 0022 962E mov r9,r22
  587. 576 0024 3A01 movw r6,r20
  588. 577 0026 2901 movw r4,r18
  589. 578 0028 FC01 movw r30,r24
  590. 579 002a C085 ldd r28,Z+8
  591. 580 002c D185 ldd r29,Z+9
  592. 581 002e 1C01 movw r2,r24
  593. 582 0030 F6E0 ldi r31,6
  594. 583 0032 2F0E add r2,r31
  595. 584 0034 311C adc r3,__zero_reg__
  596. 585 0036 B601 movw r22,r12
  597. 586 0038 A501 movw r20,r10
  598. 587 003a C101 movw r24,r2
  599. 588 003c 0E94 0000 call NutEventWait
  600. 589 0040 892B or r24,r25
  601. 590 0042 01F0 breq .L177
  602. 591 0044 8DEF ldi r24,lo8(-3)
  603. 592 0046 8B83 std Y+3,r24
  604. 593 0048 C101 movw r24,r2
  605. 594 004a 0E94 0000 call NutEventPost
  606. 595 004e 00C0 rjmp .L189
  607. 596 .L177:
  608. 597 0050 8881 ld r24,Y
  609. 598 0052 8823 tst r24
  610. 599 0054 01F0 breq .L180
  611. 600 0056 61E0 ldi r22,lo8(1)
  612. 601 0058 70E0 ldi r23,0
  613. 602 005a 80E0 ldi r24,0
  614. 603 005c 90E0 ldi r25,0
  615. 604 005e 0E94 0000 call NutSleep
  616. 605 0062 00C0 rjmp .L180
  617. 606 .L181:
  618. 607 0064 21E0 ldi r18,1
  619. 608 0066 A216 cp r10,r18
  620. 609 0068 B104 cpc r11,__zero_reg__
  621. 610 006a C104 cpc r12,__zero_reg__
  622. 611 006c D104 cpc r13,__zero_reg__
  623. 612 006e 01F4 brne .+2
  624. 613 0070 00C0 rjmp .L189
  625. 614 0072 61E0 ldi r22,lo8(1)
  626. 615 0074 70E0 ldi r23,0
  627. 616 0076 80E0 ldi r24,0
  628. 617 0078 90E0 ldi r25,0
  629. 618 007a 0E94 0000 call NutSleep
  630. 619 007e 81E0 ldi r24,1
  631. 620 0080 A81A sub r10,r24
  632. 621 0082 B108 sbc r11,__zero_reg__
  633. 622 0084 C108 sbc r12,__zero_reg__
  634. 623 0086 D108 sbc r13,__zero_reg__
  635. 624 .L180:
  636. 625 0088 8881 ld r24,Y
  637. 626 008a 8111 cpse r24,__zero_reg__
  638. 627 008c 00C0 rjmp .L181
  639. GAS LISTING /tmp/cczZ1JLd.s page 12
  640. 628 /* #APP */
  641. 629 ; 478 "../../nut/arch/avr/dev/twif.c" 1
  642. 630 008e 0FB6 in __tmp_reg__, __SREG__
  643. 631 0090 F894 cli
  644. 632 0092 0F92 push __tmp_reg__
  645. 633
  646. 634 ; 0 "" 2
  647. 635 /* #NOAPP */
  648. 636 0094 892D mov r24,r9
  649. 637 0096 90E0 ldi r25,0
  650. 638 0098 880F lsl r24
  651. 639 009a 991F rol r25
  652. 640 009c 9A83 std Y+2,r25
  653. 641 009e 8983 std Y+1,r24
  654. 642 00a0 1B82 std Y+3,__zero_reg__
  655. 643 00a2 5886 std Y+8,r5
  656. 644 00a4 4F82 std Y+7,r4
  657. 645 00a6 7E82 std Y+6,r7
  658. 646 00a8 6D82 std Y+5,r6
  659. 647 00aa FE86 std Y+14,r15
  660. 648 00ac ED86 std Y+13,r14
  661. 649 00ae 1C87 std Y+12,r17
  662. 650 00b0 0B87 std Y+11,r16
  663. 651 00b2 8881 ld r24,Y
  664. 652 00b4 8111 cpse r24,__zero_reg__
  665. 653 00b6 00C0 rjmp .L182
  666. 654 00b8 8091 BC00 lds r24,188
  667. 655 00bc 9091 B900 lds r25,185
  668. 656 00c0 987F andi r25,lo8(-8)
  669. 657 00c2 983F cpi r25,lo8(-8)
  670. 658 00c4 01F4 brne .L182
  671. 659 00c6 2F8D ldd r18,Y+31
  672. 660 00c8 38A1 ldd r19,Y+32
  673. 661 00ca 8071 andi r24,lo8(16)
  674. 662 00cc 232B or r18,r19
  675. 663 00ce 01F0 breq .L183
  676. 664 00d0 8566 ori r24,lo8(101)
  677. 665 00d2 00C0 rjmp .L193
  678. 666 .L183:
  679. 667 00d4 8562 ori r24,lo8(37)
  680. 668 .L193:
  681. 669 00d6 8093 BC00 sts 188,r24
  682. 670 .L182:
  683. 671 00da 8A89 ldd r24,Y+18
  684. 672 00dc 9B89 ldd r25,Y+19
  685. 673 00de 0196 adiw r24,1
  686. 674 00e0 01F4 brne .L184
  687. 675 00e2 1B8A std Y+19,__zero_reg__
  688. 676 00e4 1A8A std Y+18,__zero_reg__
  689. 677 .L184:
  690. 678 /* #APP */
  691. 679 ; 512 "../../nut/arch/avr/dev/twif.c" 1
  692. 680 00e6 0F90 pop __tmp_reg__
  693. 681 00e8 0FBE out __SREG__, __tmp_reg__
  694. 682
  695. 683 ; 0 "" 2
  696. 684 /* #NOAPP */
  697. GAS LISTING /tmp/cczZ1JLd.s page 13
  698. 685 00ea B601 movw r22,r12
  699. 686 00ec A501 movw r20,r10
  700. 687 00ee CE01 movw r24,r28
  701. 688 00f0 4296 adiw r24,18
  702. 689 00f2 0E94 0000 call NutEventWait
  703. 690 00f6 892B or r24,r25
  704. 691 00f8 01F0 breq .L185
  705. 692 00fa 8FEF ldi r24,lo8(-1)
  706. 693 00fc 8C83 std Y+4,r24
  707. 694 00fe CFEF ldi r28,lo8(-1)
  708. 695 0100 DFEF ldi r29,lo8(-1)
  709. 696 0102 00C0 rjmp .L186
  710. 697 .L185:
  711. 698 /* #APP */
  712. 699 ; 521 "../../nut/arch/avr/dev/twif.c" 1
  713. 700 0104 0FB6 in __tmp_reg__, __SREG__
  714. 701 0106 F894 cli
  715. 702 0108 0F92 push __tmp_reg__
  716. 703
  717. 704 ; 0 "" 2
  718. 705 /* #NOAPP */
  719. 706 010a 8B81 ldd r24,Y+3
  720. 707 010c 8823 tst r24
  721. 708 010e 01F0 breq .L187
  722. 709 0110 8B81 ldd r24,Y+3
  723. 710 0112 8C83 std Y+4,r24
  724. 711 0114 CFEF ldi r28,lo8(-1)
  725. 712 0116 DFEF ldi r29,lo8(-1)
  726. 713 0118 00C0 rjmp .L188
  727. 714 .L187:
  728. 715 011a 0F84 ldd __tmp_reg__,Y+15
  729. 716 011c D889 ldd r29,Y+16
  730. 717 011e C02D mov r28,__tmp_reg__
  731. 718 .L188:
  732. 719 /* #APP */
  733. 720 ; 527 "../../nut/arch/avr/dev/twif.c" 1
  734. 721 0120 0F90 pop __tmp_reg__
  735. 722 0122 0FBE out __SREG__, __tmp_reg__
  736. 723
  737. 724 ; 0 "" 2
  738. 725 /* #NOAPP */
  739. 726 .L186:
  740. 727 0124 C101 movw r24,r2
  741. 728 0126 0E94 0000 call NutEventPost
  742. 729 012a CE01 movw r24,r28
  743. 730 012c 00C0 rjmp .L178
  744. 731 .L189:
  745. 732 012e 8FEF ldi r24,lo8(-1)
  746. 733 0130 9FEF ldi r25,lo8(-1)
  747. 734 .L178:
  748. 735 /* epilogue start */
  749. 736 0132 DF91 pop r29
  750. 737 0134 CF91 pop r28
  751. 738 0136 1F91 pop r17
  752. 739 0138 0F91 pop r16
  753. 740 013a FF90 pop r15
  754. 741 013c EF90 pop r14
  755. GAS LISTING /tmp/cczZ1JLd.s page 14
  756. 742 013e DF90 pop r13
  757. 743 0140 CF90 pop r12
  758. 744 0142 BF90 pop r11
  759. 745 0144 AF90 pop r10
  760. 746 0146 9F90 pop r9
  761. 747 0148 7F90 pop r7
  762. 748 014a 6F90 pop r6
  763. 749 014c 5F90 pop r5
  764. 750 014e 4F90 pop r4
  765. 751 0150 3F90 pop r3
  766. 752 0152 2F90 pop r2
  767. 753 0154 0895 ret
  768. 754 .size NutTwiMasterTranceive, .-NutTwiMasterTranceive
  769. 755 .section .text.NutTwiMasterError,"ax",@progbits
  770. 756 .global NutTwiMasterError
  771. 757 .type NutTwiMasterError, @function
  772. 758 NutTwiMasterError:
  773. 759 /* prologue: function */
  774. 760 /* frame size = 0 */
  775. 761 /* stack size = 0 */
  776. 762 .L__stack_usage = 0
  777. 763 0000 DC01 movw r26,r24
  778. 764 0002 1896 adiw r26,8
  779. 765 0004 ED91 ld r30,X+
  780. 766 0006 FC91 ld r31,X
  781. 767 0008 1997 sbiw r26,8+1
  782. 768 000a 8481 ldd r24,Z+4
  783. 769 000c 1482 std Z+4,__zero_reg__
  784. 770 000e 082E mov __tmp_reg__,r24
  785. 771 0010 000C lsl r0
  786. 772 0012 990B sbc r25,r25
  787. 773 0014 0895 ret
  788. 774 .size NutTwiMasterError, .-NutTwiMasterError
  789. 775 .section .text.NutTwiSlaveListen,"ax",@progbits
  790. 776 .global NutTwiSlaveListen
  791. 777 .type NutTwiSlaveListen, @function
  792. 778 NutTwiSlaveListen:
  793. 779 0000 CF92 push r12
  794. 780 0002 DF92 push r13
  795. 781 0004 EF92 push r14
  796. 782 0006 FF92 push r15
  797. 783 0008 0F93 push r16
  798. 784 000a 1F93 push r17
  799. 785 000c CF93 push r28
  800. 786 000e DF93 push r29
  801. 787 /* prologue: function */
  802. 788 /* frame size = 0 */
  803. 789 /* stack size = 8 */
  804. 790 .L__stack_usage = 8
  805. 791 0010 6B01 movw r12,r22
  806. 792 0012 FC01 movw r30,r24
  807. 793 0014 C085 ldd r28,Z+8
  808. 794 0016 D185 ldd r29,Z+9
  809. 795 /* #APP */
  810. 796 ; 588 "../../nut/arch/avr/dev/twif.c" 1
  811. 797 0018 0FB6 in __tmp_reg__, __SREG__
  812. 798 001a F894 cli
  813. GAS LISTING /tmp/cczZ1JLd.s page 15
  814. 799 001c 0F92 push __tmp_reg__
  815. 800
  816. 801 ; 0 "" 2
  817. 802 /* #NOAPP */
  818. 803 001e 1D8A std Y+21,__zero_reg__
  819. 804 0020 38A3 std Y+32,r19
  820. 805 0022 2F8F std Y+31,r18
  821. 806 0024 5E8F std Y+30,r21
  822. 807 0026 4D8F std Y+29,r20
  823. 808 0028 8881 ld r24,Y
  824. 809 002a 8111 cpse r24,__zero_reg__
  825. 810 002c 00C0 rjmp .L196
  826. 811 002e 8091 B900 lds r24,185
  827. 812 0032 887F andi r24,lo8(-8)
  828. 813 0034 883F cpi r24,lo8(-8)
  829. 814 0036 01F4 brne .L196
  830. 815 0038 8F81 ldd r24,Y+7
  831. 816 003a 9885 ldd r25,Y+8
  832. 817 003c 892B or r24,r25
  833. 818 003e 01F4 brne .L197
  834. 819 0040 8D85 ldd r24,Y+13
  835. 820 0042 9E85 ldd r25,Y+14
  836. 821 0044 892B or r24,r25
  837. 822 0046 01F0 breq .L198
  838. 823 .L197:
  839. 824 0048 85E6 ldi r24,lo8(101)
  840. 825 004a 00C0 rjmp .L206
  841. 826 .L198:
  842. 827 004c 85E4 ldi r24,lo8(69)
  843. 828 .L206:
  844. 829 004e 8093 BC00 sts 188,r24
  845. 830 .L196:
  846. 831 0052 8BA1 ldd r24,Y+35
  847. 832 0054 9CA1 ldd r25,Y+36
  848. 833 0056 0196 adiw r24,1
  849. 834 0058 01F4 brne .L199
  850. 835 005a 1CA2 std Y+36,__zero_reg__
  851. 836 005c 1BA2 std Y+35,__zero_reg__
  852. 837 .L199:
  853. 838 /* #APP */
  854. 839 ; 615 "../../nut/arch/avr/dev/twif.c" 1
  855. 840 005e 0F90 pop __tmp_reg__
  856. 841 0060 0FBE out __SREG__, __tmp_reg__
  857. 842
  858. 843 ; 0 "" 2
  859. 844 /* #NOAPP */
  860. 845 0062 B801 movw r22,r16
  861. 846 0064 A701 movw r20,r14
  862. 847 0066 CE01 movw r24,r28
  863. 848 0068 8396 adiw r24,35
  864. 849 006a 0E94 0000 call NutEventWait
  865. 850 006e 892B or r24,r25
  866. 851 0070 01F0 breq .L200
  867. 852 /* #APP */
  868. 853 ; 619 "../../nut/arch/avr/dev/twif.c" 1
  869. 854 0072 0FB6 in __tmp_reg__, __SREG__
  870. 855 0074 F894 cli
  871. GAS LISTING /tmp/cczZ1JLd.s page 16
  872. 856 0076 0F92 push __tmp_reg__
  873. 857
  874. 858 ; 0 "" 2
  875. 859 /* #NOAPP */
  876. 860 0078 8FEF ldi r24,lo8(-1)
  877. 861 007a 8D8B std Y+21,r24
  878. 862 007c 18A2 std Y+32,__zero_reg__
  879. 863 007e 1F8E std Y+31,__zero_reg__
  880. 864 /* #APP */
  881. 865 ; 622 "../../nut/arch/avr/dev/twif.c" 1
  882. 866 0080 0F90 pop __tmp_reg__
  883. 867 0082 0FBE out __SREG__, __tmp_reg__
  884. 868
  885. 869 ; 0 "" 2
  886. 870 /* #NOAPP */
  887. 871 .L200:
  888. 872 0084 8D89 ldd r24,Y+21
  889. 873 0086 8111 cpse r24,__zero_reg__
  890. 874 0088 00C0 rjmp .L202
  891. 875 008a 89A1 ldd r24,Y+33
  892. 876 008c 9AA1 ldd r25,Y+34
  893. 877 008e 2C89 ldd r18,Y+20
  894. 878 0090 F601 movw r30,r12
  895. 879 0092 2083 st Z,r18
  896. 880 0094 00C0 rjmp .L201
  897. 881 .L202:
  898. 882 0096 8FEF ldi r24,lo8(-1)
  899. 883 0098 9FEF ldi r25,lo8(-1)
  900. 884 .L201:
  901. 885 /* epilogue start */
  902. 886 009a DF91 pop r29
  903. 887 009c CF91 pop r28
  904. 888 009e 1F91 pop r17
  905. 889 00a0 0F91 pop r16
  906. 890 00a2 FF90 pop r15
  907. 891 00a4 EF90 pop r14
  908. 892 00a6 DF90 pop r13
  909. 893 00a8 CF90 pop r12
  910. 894 00aa 0895 ret
  911. 895 .size NutTwiSlaveListen, .-NutTwiSlaveListen
  912. 896 .section .text.NutTwiSlaveRespond,"ax",@progbits
  913. 897 .global NutTwiSlaveRespond
  914. 898 .type NutTwiSlaveRespond, @function
  915. 899 NutTwiSlaveRespond:
  916. 900 0000 EF92 push r14
  917. 901 0002 FF92 push r15
  918. 902 0004 0F93 push r16
  919. 903 0006 1F93 push r17
  920. 904 0008 CF93 push r28
  921. 905 000a DF93 push r29
  922. 906 /* prologue: function */
  923. 907 /* frame size = 0 */
  924. 908 /* stack size = 6 */
  925. 909 .L__stack_usage = 6
  926. 910 000c 7B01 movw r14,r22
  927. 911 000e FA01 movw r30,r20
  928. 912 0010 B901 movw r22,r18
  929. GAS LISTING /tmp/cczZ1JLd.s page 17
  930. 913 0012 A801 movw r20,r16
  931. 914 0014 DC01 movw r26,r24
  932. 915 0016 1896 adiw r26,8
  933. 916 0018 CD91 ld r28,X+
  934. 917 001a DC91 ld r29,X
  935. 918 001c 1997 sbiw r26,8+1
  936. 919 001e F88E std Y+24,r15
  937. 920 0020 EF8A std Y+23,r14
  938. 921 0022 FA8F std Y+26,r31
  939. 922 0024 E98F std Y+25,r30
  940. 923 0026 EF2B or r30,r31
  941. 924 0028 01F0 breq .L208
  942. 925 /* #APP */
  943. 926 ; 672 "../../nut/arch/avr/dev/twif.c" 1
  944. 927 002a 0FB6 in __tmp_reg__, __SREG__
  945. 928 002c F894 cli
  946. 929 002e 0F92 push __tmp_reg__
  947. 930
  948. 931 ; 0 "" 2
  949. 932 /* #NOAPP */
  950. 933 0030 8DA1 ldd r24,Y+37
  951. 934 0032 9EA1 ldd r25,Y+38
  952. 935 0034 0196 adiw r24,1
  953. 936 0036 01F4 brne .L209
  954. 937 0038 1EA2 std Y+38,__zero_reg__
  955. 938 003a 1DA2 std Y+37,__zero_reg__
  956. 939 .L209:
  957. 940 003c 85EC ldi r24,lo8(-59)
  958. 941 003e 8093 BC00 sts 188,r24
  959. 942 /* #APP */
  960. 943 ; 682 "../../nut/arch/avr/dev/twif.c" 1
  961. 944 0042 0F90 pop __tmp_reg__
  962. 945 0044 0FBE out __SREG__, __tmp_reg__
  963. 946
  964. 947 ; 0 "" 2
  965. 948 /* #NOAPP */
  966. 949 0046 CE01 movw r24,r28
  967. 950 0048 8596 adiw r24,37
  968. 951 004a 0E94 0000 call NutEventWait
  969. 952 004e 892B or r24,r25
  970. 953 0050 01F0 breq .L210
  971. 954 0052 8FEF ldi r24,lo8(-1)
  972. 955 0054 8D8B std Y+21,r24
  973. 956 .L210:
  974. 957 /* #APP */
  975. 958 ; 687 "../../nut/arch/avr/dev/twif.c" 1
  976. 959 0056 0FB6 in __tmp_reg__, __SREG__
  977. 960 0058 F894 cli
  978. 961 005a 0F92 push __tmp_reg__
  979. 962
  980. 963 ; 0 "" 2
  981. 964 /* #NOAPP */
  982. 965 005c 1A8E std Y+26,__zero_reg__
  983. 966 005e 198E std Y+25,__zero_reg__
  984. 967 0060 8D89 ldd r24,Y+21
  985. 968 0062 8823 tst r24
  986. 969 0064 01F0 breq .L211
  987. GAS LISTING /tmp/cczZ1JLd.s page 18
  988. 970 0066 8D89 ldd r24,Y+21
  989. 971 0068 8E8B std Y+22,r24
  990. 972 006a 8FEF ldi r24,lo8(-1)
  991. 973 006c 9FEF ldi r25,lo8(-1)
  992. 974 006e 00C0 rjmp .L212
  993. 975 .L211:
  994. 976 0070 8B8D ldd r24,Y+27
  995. 977 0072 9C8D ldd r25,Y+28
  996. 978 .L212:
  997. 979 /* #APP */
  998. 980 ; 694 "../../nut/arch/avr/dev/twif.c" 1
  999. 981 0074 0F90 pop __tmp_reg__
  1000. 982 0076 0FBE out __SREG__, __tmp_reg__
  1001. 983
  1002. 984 ; 0 "" 2
  1003. 985 /* #NOAPP */
  1004. 986 0078 00C0 rjmp .L213
  1005. 987 .L208:
  1006. 988 /* #APP */
  1007. 989 ; 704 "../../nut/arch/avr/dev/twif.c" 1
  1008. 990 007a 0FB6 in __tmp_reg__, __SREG__
  1009. 991 007c F894 cli
  1010. 992 007e 0F92 push __tmp_reg__
  1011. 993
  1012. 994 ; 0 "" 2
  1013. 995 /* #NOAPP */
  1014. 996 0080 8091 BC00 lds r24,188
  1015. 997 0084 8091 B900 lds r24,185
  1016. 998 0088 8F81 ldd r24,Y+7
  1017. 999 008a 9885 ldd r25,Y+8
  1018. 1000 008c 892B or r24,r25
  1019. 1001 008e 01F4 brne .L214
  1020. 1002 0090 8D85 ldd r24,Y+13
  1021. 1003 0092 9E85 ldd r25,Y+14
  1022. 1004 0094 892B or r24,r25
  1023. 1005 0096 01F0 breq .L215
  1024. 1006 .L214:
  1025. 1007 0098 85EA ldi r24,lo8(-91)
  1026. 1008 009a 00C0 rjmp .L220
  1027. 1009 .L215:
  1028. 1010 009c 1882 st Y,__zero_reg__
  1029. 1011 009e 85E8 ldi r24,lo8(-123)
  1030. 1012 .L220:
  1031. 1013 00a0 8093 BC00 sts 188,r24
  1032. 1014 /* #APP */
  1033. 1015 ; 717 "../../nut/arch/avr/dev/twif.c" 1
  1034. 1016 00a4 0F90 pop __tmp_reg__
  1035. 1017 00a6 0FBE out __SREG__, __tmp_reg__
  1036. 1018
  1037. 1019 ; 0 "" 2
  1038. 1020 /* #NOAPP */
  1039. 1021 00a8 80E0 ldi r24,0
  1040. 1022 00aa 90E0 ldi r25,0
  1041. 1023 .L213:
  1042. 1024 /* epilogue start */
  1043. 1025 00ac DF91 pop r29
  1044. 1026 00ae CF91 pop r28
  1045. GAS LISTING /tmp/cczZ1JLd.s page 19
  1046. 1027 00b0 1F91 pop r17
  1047. 1028 00b2 0F91 pop r16
  1048. 1029 00b4 FF90 pop r15
  1049. 1030 00b6 EF90 pop r14
  1050. 1031 00b8 0895 ret
  1051. 1032 .size NutTwiSlaveRespond, .-NutTwiSlaveRespond
  1052. 1033 .section .text.NutTwiSlaveError,"ax",@progbits
  1053. 1034 .global NutTwiSlaveError
  1054. 1035 .type NutTwiSlaveError, @function
  1055. 1036 NutTwiSlaveError:
  1056. 1037 /* prologue: function */
  1057. 1038 /* frame size = 0 */
  1058. 1039 /* stack size = 0 */
  1059. 1040 .L__stack_usage = 0
  1060. 1041 0000 DC01 movw r26,r24
  1061. 1042 0002 1896 adiw r26,8
  1062. 1043 0004 ED91 ld r30,X+
  1063. 1044 0006 FC91 ld r31,X
  1064. 1045 0008 1997 sbiw r26,8+1
  1065. 1046 000a 8689 ldd r24,Z+22
  1066. 1047 000c 168A std Z+22,__zero_reg__
  1067. 1048 000e 90E0 ldi r25,0
  1068. 1049 0010 0895 ret
  1069. 1050 .size NutTwiSlaveError, .-NutTwiSlaveError
  1070. 1051 .section .text.NutTwiSetSpeed,"ax",@progbits
  1071. 1052 .global NutTwiSetSpeed
  1072. 1053 .type NutTwiSetSpeed, @function
  1073. 1054 NutTwiSetSpeed:
  1074. 1055 0000 CF93 push r28
  1075. 1056 0002 DF93 push r29
  1076. 1057 0004 00D0 rcall .
  1077. 1058 0006 1F92 push __zero_reg__
  1078. 1059 0008 CDB7 in r28,__SP_L__
  1079. 1060 000a DEB7 in r29,__SP_H__
  1080. 1061 /* prologue: function */
  1081. 1062 /* frame size = 4 */
  1082. 1063 /* stack size = 6 */
  1083. 1064 .L__stack_usage = 6
  1084. 1065 000c 9A01 movw r18,r20
  1085. 1066 000e AB01 movw r20,r22
  1086. 1067 0010 2138 cpi r18,-127
  1087. 1068 0012 6AE1 ldi r22,26
  1088. 1069 0014 3607 cpc r19,r22
  1089. 1070 0016 66E0 ldi r22,6
  1090. 1071 0018 4607 cpc r20,r22
  1091. 1072 001a 5105 cpc r21,__zero_reg__
  1092. 1073 001c 00F0 brlo .L223
  1093. 1074 .L225:
  1094. 1075 001e 8FEF ldi r24,lo8(-1)
  1095. 1076 0020 9FEF ldi r25,lo8(-1)
  1096. 1077 0022 00C0 rjmp .L224
  1097. 1078 .L223:
  1098. 1079 0024 892B or r24,r25
  1099. 1080 0026 01F0 breq .L225
  1100. 1081 0028 2983 std Y+1,r18
  1101. 1082 002a 3A83 std Y+2,r19
  1102. 1083 002c 4B83 std Y+3,r20
  1103. GAS LISTING /tmp/cczZ1JLd.s page 20
  1104. 1084 002e 5C83 std Y+4,r21
  1105. 1085 0030 0E94 0000 call NutGetCpuClock
  1106. 1086 0034 660F lsl r22
  1107. 1087 0036 771F rol r23
  1108. 1088 0038 881F rol r24
  1109. 1089 003a 991F rol r25
  1110. 1090 003c 2981 ldd r18,Y+1
  1111. 1091 003e 3A81 ldd r19,Y+2
  1112. 1092 0040 4B81 ldd r20,Y+3
  1113. 1093 0042 5C81 ldd r21,Y+4
  1114. 1094 0044 0E94 0000 call __udivmodsi4
  1115. 1095 0048 DA01 movw r26,r20
  1116. 1096 004a C901 movw r24,r18
  1117. 1097 004c 0196 adiw r24,1
  1118. 1098 004e A11D adc r26,__zero_reg__
  1119. 1099 0050 B11D adc r27,__zero_reg__
  1120. 1100 0052 B695 lsr r27
  1121. 1101 0054 A795 ror r26
  1122. 1102 0056 9795 ror r25
  1123. 1103 0058 8795 ror r24
  1124. 1104 005a 4097 sbiw r24,16
  1125. 1105 005c A109 sbc r26,__zero_reg__
  1126. 1106 005e B109 sbc r27,__zero_reg__
  1127. 1107 0060 AC01 movw r20,r24
  1128. 1108 0062 BD01 movw r22,r26
  1129. 1109 0064 7695 lsr r23
  1130. 1110 0066 6795 ror r22
  1131. 1111 0068 5795 ror r21
  1132. 1112 006a 4795 ror r20
  1133. 1113 006c 4D3F cpi r20,-3
  1134. 1114 006e 23E0 ldi r18,3
  1135. 1115 0070 5207 cpc r21,r18
  1136. 1116 0072 6105 cpc r22,__zero_reg__
  1137. 1117 0074 7105 cpc r23,__zero_reg__
  1138. 1118 0076 00F0 brlo .L226
  1139. 1119 0078 AC01 movw r20,r24
  1140. 1120 007a BD01 movw r22,r26
  1141. 1121 007c 95E0 ldi r25,5
  1142. 1122 1:
  1143. 1123 007e 7695 lsr r23
  1144. 1124 0080 6795 ror r22
  1145. 1125 0082 5795 ror r21
  1146. 1126 0084 4795 ror r20
  1147. 1127 0086 9A95 dec r25
  1148. 1128 0088 01F4 brne 1b
  1149. 1129 008a 8091 B900 lds r24,185
  1150. 1130 008e 8260 ori r24,lo8(2)
  1151. 1131 0090 00C0 rjmp .L233
  1152. 1132 .L226:
  1153. 1133 0092 8091 B900 lds r24,185
  1154. 1134 0096 8D7F andi r24,lo8(-3)
  1155. 1135 .L233:
  1156. 1136 0098 8093 B900 sts 185,r24
  1157. 1137 009c 4F3F cpi r20,-1
  1158. 1138 009e 5105 cpc r21,__zero_reg__
  1159. 1139 00a0 6105 cpc r22,__zero_reg__
  1160. 1140 00a2 7105 cpc r23,__zero_reg__
  1161. GAS LISTING /tmp/cczZ1JLd.s page 21
  1162. 1141 00a4 01F0 breq .L228
  1163. 1142 00a6 00F0 brlo .L228
  1164. 1143 00a8 82E0 ldi r24,2
  1165. 1144 1:
  1166. 1145 00aa 7695 lsr r23
  1167. 1146 00ac 6795 ror r22
  1168. 1147 00ae 5795 ror r21
  1169. 1148 00b0 4795 ror r20
  1170. 1149 00b2 8A95 dec r24
  1171. 1150 00b4 01F4 brne 1b
  1172. 1151 00b6 8091 B900 lds r24,185
  1173. 1152 00ba 8160 ori r24,lo8(1)
  1174. 1153 00bc 00C0 rjmp .L234
  1175. 1154 .L228:
  1176. 1155 00be 8091 B900 lds r24,185
  1177. 1156 00c2 8E7F andi r24,lo8(-2)
  1178. 1157 .L234:
  1179. 1158 00c4 8093 B900 sts 185,r24
  1180. 1159 00c8 DB01 movw r26,r22
  1181. 1160 00ca CA01 movw r24,r20
  1182. 1161 00cc 0A97 sbiw r24,10
  1183. 1162 00ce A109 sbc r26,__zero_reg__
  1184. 1163 00d0 B109 sbc r27,__zero_reg__
  1185. 1164 00d2 863F cpi r24,-10
  1186. 1165 00d4 9105 cpc r25,__zero_reg__
  1187. 1166 00d6 A105 cpc r26,__zero_reg__
  1188. 1167 00d8 B105 cpc r27,__zero_reg__
  1189. 1168 00da 00F0 brlo .+2
  1190. 1169 00dc 00C0 rjmp .L225
  1191. 1170 00de 4093 B800 sts 184,r20
  1192. 1171 00e2 80E0 ldi r24,0
  1193. 1172 00e4 90E0 ldi r25,0
  1194. 1173 .L224:
  1195. 1174 /* epilogue start */
  1196. 1175 00e6 0F90 pop __tmp_reg__
  1197. 1176 00e8 0F90 pop __tmp_reg__
  1198. 1177 00ea 0F90 pop __tmp_reg__
  1199. 1178 00ec 0F90 pop __tmp_reg__
  1200. 1179 00ee DF91 pop r29
  1201. 1180 00f0 CF91 pop r28
  1202. 1181 00f2 0895 ret
  1203. 1182 .size NutTwiSetSpeed, .-NutTwiSetSpeed
  1204. 1183 .section .text.NutTwiGetSpeed,"ax",@progbits
  1205. 1184 .global NutTwiGetSpeed
  1206. 1185 .type NutTwiGetSpeed, @function
  1207. 1186 NutTwiGetSpeed:
  1208. 1187 0000 CF92 push r12
  1209. 1188 0002 DF92 push r13
  1210. 1189 0004 EF92 push r14
  1211. 1190 0006 FF92 push r15
  1212. 1191 0008 0F93 push r16
  1213. 1192 000a 1F93 push r17
  1214. 1193 000c CF93 push r28
  1215. 1194 000e DF93 push r29
  1216. 1195 0010 00D0 rcall .
  1217. 1196 0012 1F92 push __zero_reg__
  1218. 1197 0014 CDB7 in r28,__SP_L__
  1219. GAS LISTING /tmp/cczZ1JLd.s page 22
  1220. 1198 0016 DEB7 in r29,__SP_H__
  1221. 1199 /* prologue: function */
  1222. 1200 /* frame size = 4 */
  1223. 1201 /* stack size = 12 */
  1224. 1202 .L__stack_usage = 12
  1225. 1203 0018 8B01 movw r16,r22
  1226. 1204 001a 892B or r24,r25
  1227. 1205 001c 01F0 breq .L236
  1228. 1206 001e 8091 B900 lds r24,185
  1229. 1207 0022 80FF sbrs r24,0
  1230. 1208 0024 00C0 rjmp .L239
  1231. 1209 0026 28E0 ldi r18,lo8(8)
  1232. 1210 0028 30E0 ldi r19,0
  1233. 1211 002a 40E0 ldi r20,0
  1234. 1212 002c 50E0 ldi r21,0
  1235. 1213 002e 00C0 rjmp .L237
  1236. 1214 .L239:
  1237. 1215 0030 22E0 ldi r18,lo8(2)
  1238. 1216 0032 30E0 ldi r19,0
  1239. 1217 0034 40E0 ldi r20,0
  1240. 1218 0036 50E0 ldi r21,0
  1241. 1219 .L237:
  1242. 1220 0038 8091 B900 lds r24,185
  1243. 1221 003c 81FF sbrs r24,1
  1244. 1222 003e 00C0 rjmp .L238
  1245. 1223 0040 84E0 ldi r24,4
  1246. 1224 1:
  1247. 1225 0042 220F lsl r18
  1248. 1226 0044 331F rol r19
  1249. 1227 0046 441F rol r20
  1250. 1228 0048 551F rol r21
  1251. 1229 004a 8A95 dec r24
  1252. 1230 004c 01F4 brne 1b
  1253. 1231 .L238:
  1254. 1232 004e 2983 std Y+1,r18
  1255. 1233 0050 3A83 std Y+2,r19
  1256. 1234 0052 4B83 std Y+3,r20
  1257. 1235 0054 5C83 std Y+4,r21
  1258. 1236 0056 0E94 0000 call NutGetCpuClock
  1259. 1237 005a 6B01 movw r12,r22
  1260. 1238 005c 7C01 movw r14,r24
  1261. 1239 005e A091 B800 lds r26,184
  1262. 1240 0062 B0E0 ldi r27,0
  1263. 1241 0064 2981 ldd r18,Y+1
  1264. 1242 0066 3A81 ldd r19,Y+2
  1265. 1243 0068 4B81 ldd r20,Y+3
  1266. 1244 006a 5C81 ldd r21,Y+4
  1267. 1245 006c 0E94 0000 call __muluhisi3
  1268. 1246 0070 9B01 movw r18,r22
  1269. 1247 0072 AC01 movw r20,r24
  1270. 1248 0074 205F subi r18,-16
  1271. 1249 0076 3F4F sbci r19,-1
  1272. 1250 0078 4F4F sbci r20,-1
  1273. 1251 007a 5F4F sbci r21,-1
  1274. 1252 007c C701 movw r24,r14
  1275. 1253 007e B601 movw r22,r12
  1276. 1254 0080 0E94 0000 call __udivmodsi4
  1277. GAS LISTING /tmp/cczZ1JLd.s page 23
  1278. 1255 0084 F801 movw r30,r16
  1279. 1256 0086 2083 st Z,r18
  1280. 1257 0088 3183 std Z+1,r19
  1281. 1258 008a 4283 std Z+2,r20
  1282. 1259 008c 5383 std Z+3,r21
  1283. 1260 .L236:
  1284. 1261 008e 80E0 ldi r24,0
  1285. 1262 0090 90E0 ldi r25,0
  1286. 1263 /* epilogue start */
  1287. 1264 0092 0F90 pop __tmp_reg__
  1288. 1265 0094 0F90 pop __tmp_reg__
  1289. 1266 0096 0F90 pop __tmp_reg__
  1290. 1267 0098 0F90 pop __tmp_reg__
  1291. 1268 009a DF91 pop r29
  1292. 1269 009c CF91 pop r28
  1293. 1270 009e 1F91 pop r17
  1294. 1271 00a0 0F91 pop r16
  1295. 1272 00a2 FF90 pop r15
  1296. 1273 00a4 EF90 pop r14
  1297. 1274 00a6 DF90 pop r13
  1298. 1275 00a8 CF90 pop r12
  1299. 1276 00aa 0895 ret
  1300. 1277 .size NutTwiGetSpeed, .-NutTwiGetSpeed
  1301. 1278 .section .text.NutTwiIOCtl,"ax",@progbits
  1302. 1279 .global NutTwiIOCtl
  1303. 1280 .type NutTwiIOCtl, @function
  1304. 1281 NutTwiIOCtl:
  1305. 1282 0000 CF93 push r28
  1306. 1283 0002 DF93 push r29
  1307. 1284 /* prologue: function */
  1308. 1285 /* frame size = 0 */
  1309. 1286 /* stack size = 2 */
  1310. 1287 .L__stack_usage = 2
  1311. 1288 0004 FA01 movw r30,r20
  1312. 1289 0006 6330 cpi r22,3
  1313. 1290 0008 24E0 ldi r18,4
  1314. 1291 000a 7207 cpc r23,r18
  1315. 1292 000c 01F0 breq .L248
  1316. 1293 000e 04F4 brge .L249
  1317. 1294 0010 6130 cpi r22,1
  1318. 1295 0012 D4E0 ldi r29,4
  1319. 1296 0014 7D07 cpc r23,r29
  1320. 1297 0016 01F0 breq .L250
  1321. 1298 0018 6230 cpi r22,2
  1322. 1299 001a 7440 sbci r23,4
  1323. 1300 001c 01F0 breq .L251
  1324. 1301 001e 00C0 rjmp .L247
  1325. 1302 .L249:
  1326. 1303 0020 6430 cpi r22,4
  1327. 1304 0022 84E0 ldi r24,4
  1328. 1305 0024 7807 cpc r23,r24
  1329. 1306 0026 01F0 breq .L252
  1330. 1307 0028 6950 subi r22,9
  1331. 1308 002a 7440 sbci r23,4
  1332. 1309 002c 6230 cpi r22,2
  1333. 1310 002e 7105 cpc r23,__zero_reg__
  1334. 1311 0030 00F0 brlo .L255
  1335. GAS LISTING /tmp/cczZ1JLd.s page 24
  1336. 1312 .L247:
  1337. 1313 0032 8FEF ldi r24,lo8(-1)
  1338. 1314 0034 9FEF ldi r25,lo8(-1)
  1339. 1315 0036 00C0 rjmp .L253
  1340. 1316 .L250:
  1341. 1317 0038 4081 ld r20,Z
  1342. 1318 003a 5181 ldd r21,Z+1
  1343. 1319 003c 6281 ldd r22,Z+2
  1344. 1320 003e 7381 ldd r23,Z+3
  1345. 1321 /* epilogue start */
  1346. 1322 0040 DF91 pop r29
  1347. 1323 0042 CF91 pop r28
  1348. 1324 0044 0C94 0000 jmp NutTwiSetSpeed
  1349. 1325 .L251:
  1350. 1326 0048 BA01 movw r22,r20
  1351. 1327 /* epilogue start */
  1352. 1328 004a DF91 pop r29
  1353. 1329 004c CF91 pop r28
  1354. 1330 004e 0C94 0000 jmp NutTwiGetSpeed
  1355. 1331 .L252:
  1356. 1332 0052 8091 BA00 lds r24,186
  1357. 1333 0056 8083 st Z,r24
  1358. 1334 0058 00C0 rjmp .L255
  1359. 1335 .L248:
  1360. 1336 005a EC01 movw r28,r24
  1361. 1337 005c A885 ldd r26,Y+8
  1362. 1338 005e B985 ldd r27,Y+9
  1363. 1339 0060 8081 ld r24,Z
  1364. 1340 0062 880F lsl r24
  1365. 1341 0064 8160 ori r24,lo8(1)
  1366. 1342 0066 8093 BA00 sts 186,r24
  1367. 1343 006a 8081 ld r24,Z
  1368. 1344 006c 9181 ldd r25,Z+1
  1369. 1345 006e 1296 adiw r26,1+1
  1370. 1346 0070 9C93 st X,r25
  1371. 1347 0072 8E93 st -X,r24
  1372. 1348 0074 1197 sbiw r26,1
  1373. 1349 .L255:
  1374. 1350 0076 80E0 ldi r24,0
  1375. 1351 0078 90E0 ldi r25,0
  1376. 1352 .L253:
  1377. 1353 /* epilogue start */
  1378. 1354 007a DF91 pop r29
  1379. 1355 007c CF91 pop r28
  1380. 1356 007e 0895 ret
  1381. 1357 .size NutTwiIOCtl, .-NutTwiIOCtl
  1382. 1358 .section .text.NutRegisterTwiBus,"ax",@progbits
  1383. 1359 .global NutRegisterTwiBus
  1384. 1360 .type NutRegisterTwiBus, @function
  1385. 1361 NutRegisterTwiBus:
  1386. 1362 0000 1F93 push r17
  1387. 1363 0002 CF93 push r28
  1388. 1364 0004 DF93 push r29
  1389. 1365 /* prologue: function */
  1390. 1366 /* frame size = 0 */
  1391. 1367 /* stack size = 3 */
  1392. 1368 .L__stack_usage = 3
  1393. GAS LISTING /tmp/cczZ1JLd.s page 25
  1394. 1369 0006 EC01 movw r28,r24
  1395. 1370 0008 162F mov r17,r22
  1396. 1371 000a 8885 ldd r24,Y+8
  1397. 1372 000c 9985 ldd r25,Y+9
  1398. 1373 000e 892B or r24,r25
  1399. 1374 0010 01F4 brne .L269
  1400. 1375 0012 67E2 ldi r22,lo8(39)
  1401. 1376 0014 70E0 ldi r23,0
  1402. 1377 0016 80E0 ldi r24,lo8(heapFreeList)
  1403. 1378 0018 90E0 ldi r25,hi8(heapFreeList)
  1404. 1379 001a 0E94 0000 call NutHeapRootAlloc
  1405. 1380 001e 0097 sbiw r24,0
  1406. 1381 0020 01F0 breq .L269
  1407. 1382 0022 27E2 ldi r18,lo8(39)
  1408. 1383 0024 FC01 movw r30,r24
  1409. 1384 0:
  1410. 1385 0026 1192 st Z+,__zero_reg__
  1411. 1386 0028 2A95 dec r18
  1412. 1387 002a 01F4 brne 0b
  1413. 1388 002c 9987 std Y+9,r25
  1414. 1389 002e 8887 std Y+8,r24
  1415. 1390 0030 EC85 ldd r30,Y+12
  1416. 1391 0032 FD85 ldd r31,Y+13
  1417. 1392 0034 3097 sbiw r30,0
  1418. 1393 0036 01F0 breq .L260
  1419. 1394 0038 1995 eicall
  1420. 1395 .L260:
  1421. 1396 003a 110F lsl r17
  1422. 1397 003c 1160 ori r17,lo8(1)
  1423. 1398 003e 1093 BA00 sts 186,r17
  1424. 1399 0042 40E6 ldi r20,lo8(96)
  1425. 1400 0044 59E0 ldi r21,lo8(9)
  1426. 1401 0046 60E0 ldi r22,0
  1427. 1402 0048 70E0 ldi r23,0
  1428. 1403 004a CE01 movw r24,r28
  1429. 1404 004c 0E94 0000 call NutTwiSetSpeed
  1430. 1405 0050 0097 sbiw r24,0
  1431. 1406 0052 01F4 brne .L262
  1432. 1407 0054 AE01 movw r20,r28
  1433. 1408 0056 60E0 ldi r22,lo8(gs(TwInterrupt))
  1434. 1409 0058 70E0 ldi r23,hi8(gs(TwInterrupt))
  1435. 1410 005a 8A81 ldd r24,Y+2
  1436. 1411 005c 9B81 ldd r25,Y+3
  1437. 1412 005e 0E94 0000 call NutRegisterIrqHandler
  1438. 1413 0062 0097 sbiw r24,0
  1439. 1414 0064 01F4 brne .L262
  1440. 1415 0066 8A81 ldd r24,Y+2
  1441. 1416 0068 9B81 ldd r25,Y+3
  1442. 1417 006a 0E94 0000 call NutIrqEnable
  1443. 1418 006e 80E8 ldi r24,lo8(-128)
  1444. 1419 0070 8093 BC00 sts 188,r24
  1445. 1420 0074 85E0 ldi r24,lo8(5)
  1446. 1421 0076 8093 BC00 sts 188,r24
  1447. 1422 007a CE01 movw r24,r28
  1448. 1423 007c 0696 adiw r24,6
  1449. 1424 007e 0E94 0000 call NutEventPost
  1450. 1425 .L269:
  1451. GAS LISTING /tmp/cczZ1JLd.s page 26
  1452. 1426 0082 20E0 ldi r18,0
  1453. 1427 0084 90E0 ldi r25,0
  1454. 1428 0086 00C0 rjmp .L258
  1455. 1429 .L262:
  1456. 1430 0088 282F mov r18,r24
  1457. 1431 .L258:
  1458. 1432 008a 822F mov r24,r18
  1459. 1433 /* epilogue start */
  1460. 1434 008c DF91 pop r29
  1461. 1435 008e CF91 pop r28
  1462. 1436 0090 1F91 pop r17
  1463. 1437 0092 0895 ret
  1464. 1438 .size NutRegisterTwiBus, .-NutRegisterTwiBus
  1465. 1439 .section .text.NutDestroyTwiBus,"ax",@progbits
  1466. 1440 .global NutDestroyTwiBus
  1467. 1441 .type NutDestroyTwiBus, @function
  1468. 1442 NutDestroyTwiBus:
  1469. 1443 0000 CF93 push r28
  1470. 1444 0002 DF93 push r29
  1471. 1445 /* prologue: function */
  1472. 1446 /* frame size = 0 */
  1473. 1447 /* stack size = 2 */
  1474. 1448 .L__stack_usage = 2
  1475. 1449 0004 EC01 movw r28,r24
  1476. 1450 0006 8885 ldd r24,Y+8
  1477. 1451 0008 9985 ldd r25,Y+9
  1478. 1452 000a 892B or r24,r25
  1479. 1453 000c 01F0 breq .L271
  1480. 1454 000e 8A81 ldd r24,Y+2
  1481. 1455 0010 9B81 ldd r25,Y+3
  1482. 1456 0012 0E94 0000 call NutIrqDisable
  1483. 1457 0016 6885 ldd r22,Y+8
  1484. 1458 0018 7985 ldd r23,Y+9
  1485. 1459 001a 80E0 ldi r24,lo8(heapFreeList)
  1486. 1460 001c 90E0 ldi r25,hi8(heapFreeList)
  1487. 1461 001e 0E94 0000 call NutHeapRootFree
  1488. 1462 .L271:
  1489. 1463 0022 80E0 ldi r24,0
  1490. 1464 0024 90E0 ldi r25,0
  1491. 1465 /* epilogue start */
  1492. 1466 0026 DF91 pop r29
  1493. 1467 0028 CF91 pop r28
  1494. 1468 002a 0895 ret
  1495. 1469 .size NutDestroyTwiBus, .-NutDestroyTwiBus
  1496. 1470 .global AVRTwiBus
  1497. 1471 .data
  1498. 1472 .type AVRTwiBus, @object
  1499. 1473 .size AVRTwiBus, 16
  1500. 1474 AVRTwiBus:
  1501. 1475 0000 0000 .word 0
  1502. 1476 0002 0000 .word sig_2WIRE_SERIAL
  1503. 1477 0004 0000 .word 0
  1504. 1478 0006 0000 .word 0
  1505. 1479 0008 0000 .word 0
  1506. 1480 000a 00 .byte 0
  1507. 1481 000b 00 .byte 0
  1508. 1482 000c 0000 .word 0
  1509. GAS LISTING /tmp/cczZ1JLd.s page 27
  1510. 1483 000e 0000 .word 0
  1511. 1484 .ident "GCC: (GNU) 5.3.0"
  1512. 1485 .global __do_copy_data
  1513. GAS LISTING /tmp/cczZ1JLd.s page 28
  1514. DEFINED SYMBOLS
  1515. *ABS*:0000000000000000 twif.c
  1516. /tmp/cczZ1JLd.s:2 *ABS*:000000000000003e __SP_H__
  1517. /tmp/cczZ1JLd.s:3 *ABS*:000000000000003d __SP_L__
  1518. /tmp/cczZ1JLd.s:4 *ABS*:000000000000003f __SREG__
  1519. /tmp/cczZ1JLd.s:5 *ABS*:000000000000003b __RAMPZ__
  1520. /tmp/cczZ1JLd.s:6 *ABS*:0000000000000000 __tmp_reg__
  1521. /tmp/cczZ1JLd.s:7 *ABS*:0000000000000001 __zero_reg__
  1522. /tmp/cczZ1JLd.s:10 .text.TwInterrupt:0000000000000000 TwInterrupt
  1523. /tmp/cczZ1JLd.s:553 .text.NutTwiMasterTranceive:0000000000000000 NutTwiMasterTranceive
  1524. /tmp/cczZ1JLd.s:758 .text.NutTwiMasterError:0000000000000000 NutTwiMasterError
  1525. /tmp/cczZ1JLd.s:778 .text.NutTwiSlaveListen:0000000000000000 NutTwiSlaveListen
  1526. /tmp/cczZ1JLd.s:899 .text.NutTwiSlaveRespond:0000000000000000 NutTwiSlaveRespond
  1527. /tmp/cczZ1JLd.s:1036 .text.NutTwiSlaveError:0000000000000000 NutTwiSlaveError
  1528. /tmp/cczZ1JLd.s:1054 .text.NutTwiSetSpeed:0000000000000000 NutTwiSetSpeed
  1529. /tmp/cczZ1JLd.s:1186 .text.NutTwiGetSpeed:0000000000000000 NutTwiGetSpeed
  1530. /tmp/cczZ1JLd.s:1281 .text.NutTwiIOCtl:0000000000000000 NutTwiIOCtl
  1531. /tmp/cczZ1JLd.s:1361 .text.NutRegisterTwiBus:0000000000000000 NutRegisterTwiBus
  1532. /tmp/cczZ1JLd.s:1442 .text.NutDestroyTwiBus:0000000000000000 NutDestroyTwiBus
  1533. /tmp/cczZ1JLd.s:1474 .data:0000000000000000 AVRTwiBus
  1534. UNDEFINED SYMBOLS
  1535. NutEventWait
  1536. NutEventPost
  1537. NutSleep
  1538. NutGetCpuClock
  1539. __udivmodsi4
  1540. __muluhisi3
  1541. heapFreeList
  1542. NutHeapRootAlloc
  1543. NutRegisterIrqHandler
  1544. NutIrqEnable
  1545. NutIrqDisable
  1546. NutHeapRootFree
  1547. sig_2WIRE_SERIAL
  1548. __do_copy_data