blockdev.lst 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845
  1. GAS LISTING /tmp/cc2ll6PK.s page 1
  2. 1 .file "blockdev.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.NutBlockDeviceInit,"ax",@progbits
  10. 9 .global NutBlockDeviceInit
  11. 10 .type NutBlockDeviceInit, @function
  12. 11 NutBlockDeviceInit:
  13. 12 /* prologue: function */
  14. 13 /* frame size = 0 */
  15. 14 /* stack size = 0 */
  16. 15 .L__stack_usage = 0
  17. 16 0000 80E0 ldi r24,0
  18. 17 0002 90E0 ldi r25,0
  19. 18 0004 0895 ret
  20. 19 .size NutBlockDeviceInit, .-NutBlockDeviceInit
  21. 20 .section .text.NutBlockDeviceOpen,"ax",@progbits
  22. 21 .global NutBlockDeviceOpen
  23. 22 .type NutBlockDeviceOpen, @function
  24. 23 NutBlockDeviceOpen:
  25. 24 0000 6F92 push r6
  26. 25 0002 7F92 push r7
  27. 26 0004 8F92 push r8
  28. 27 0006 9F92 push r9
  29. 28 0008 AF92 push r10
  30. 29 000a BF92 push r11
  31. 30 000c CF92 push r12
  32. 31 000e DF92 push r13
  33. 32 0010 EF92 push r14
  34. 33 0012 FF92 push r15
  35. 34 0014 0F93 push r16
  36. 35 0016 1F93 push r17
  37. 36 0018 CF93 push r28
  38. 37 001a DF93 push r29
  39. 38 001c 00D0 rcall .
  40. 39 001e CDB7 in r28,__SP_L__
  41. 40 0020 DEB7 in r29,__SP_H__
  42. 41 /* prologue: function */
  43. 42 /* frame size = 3 */
  44. 43 /* stack size = 17 */
  45. 44 .L__stack_usage = 17
  46. 45 0022 5C01 movw r10,r24
  47. 46 0024 FB01 movw r30,r22
  48. 47 0026 8081 ld r24,Z
  49. 48 0028 8823 tst r24
  50. 49 002a 01F0 breq .L3
  51. 50 002c CB01 movw r24,r22
  52. 51 002e 0196 adiw r24,1
  53. 52 .L4:
  54. 53 0030 FC01 movw r30,r24
  55. 54 0032 2081 ld r18,Z
  56. 55 0034 0196 adiw r24,1
  57. 56 0036 2223 tst r18
  58. 57 0038 01F0 breq .L3
  59. GAS LISTING /tmp/cc2ll6PK.s page 2
  60. 58 003a 2F32 cpi r18,lo8(47)
  61. 59 003c 01F4 brne .L4
  62. 60 003e FC01 movw r30,r24
  63. 61 .L3:
  64. 62 0040 8081 ld r24,Z
  65. 63 0042 8823 tst r24
  66. 64 0044 01F0 breq .L6
  67. 65 0046 CF01 movw r24,r30
  68. 66 0048 0E94 0000 call NutDeviceLookup
  69. 67 004c 00C0 rjmp .L27
  70. 68 .L6:
  71. 69 004e 60E1 ldi r22,lo8(16)
  72. 70 0050 80E0 ldi r24,0
  73. 71 0052 90E0 ldi r25,0
  74. 72 0054 0E94 0000 call NutDeviceLookupType
  75. 73 .L27:
  76. 74 0058 6C01 movw r12,r24
  77. 75 005a 892B or r24,r25
  78. 76 005c 01F4 brne .L8
  79. 77 005e 83E1 ldi r24,lo8(19)
  80. 78 0060 90E0 ldi r25,0
  81. 79 0062 9093 0000 sts errno+1,r25
  82. 80 0066 8093 0000 sts errno,r24
  83. 81 006a 00C0 rjmp .L14
  84. 82 .L8:
  85. 83 006c 82E1 ldi r24,lo8(18)
  86. 84 006e 90E0 ldi r25,0
  87. 85 0070 0E94 0000 call malloc
  88. 86 0074 8C01 movw r16,r24
  89. 87 0076 0097 sbiw r24,0
  90. 88 0078 01F4 brne .+2
  91. 89 007a 00C0 rjmp .L14
  92. 90 007c D501 movw r26,r10
  93. 91 007e 5196 adiw r26,17
  94. 92 0080 ED91 ld r30,X+
  95. 93 0082 FC91 ld r31,X
  96. 94 0084 5297 sbiw r26,17+1
  97. 95 0086 DC01 movw r26,r24
  98. 96 0088 1196 adiw r26,1
  99. 97 008a DC92 st X,r13
  100. 98 008c CE92 st -X,r12
  101. 99 008e 4285 ldd r20,Z+10
  102. 100 0090 5385 ldd r21,Z+11
  103. 101 0092 6485 ldd r22,Z+12
  104. 102 0094 7585 ldd r23,Z+13
  105. 103 0096 1896 adiw r26,8
  106. 104 0098 4D93 st X+,r20
  107. 105 009a 5D93 st X+,r21
  108. 106 009c 6D93 st X+,r22
  109. 107 009e 7C93 st X,r23
  110. 108 00a0 1B97 sbiw r26,8+3
  111. 109 00a2 8281 ldd r24,Z+2
  112. 110 00a4 9381 ldd r25,Z+3
  113. 111 00a6 A481 ldd r26,Z+4
  114. 112 00a8 B581 ldd r27,Z+5
  115. 113 00aa 841B sub r24,r20
  116. 114 00ac 950B sbc r25,r21
  117. GAS LISTING /tmp/cc2ll6PK.s page 3
  118. 115 00ae A60B sbc r26,r22
  119. 116 00b0 B70B sbc r27,r23
  120. 117 00b2 4685 ldd r20,Z+14
  121. 118 00b4 5785 ldd r21,Z+15
  122. 119 00b6 6089 ldd r22,Z+16
  123. 120 00b8 7189 ldd r23,Z+17
  124. 121 00ba 3C01 movw r6,r24
  125. 122 00bc 4D01 movw r8,r26
  126. 123 00be 641A sub r6,r20
  127. 124 00c0 750A sbc r7,r21
  128. 125 00c2 860A sbc r8,r22
  129. 126 00c4 970A sbc r9,r23
  130. 127 00c6 D801 movw r26,r16
  131. 128 00c8 1296 adiw r26,2
  132. 129 00ca 6D92 st X+,r6
  133. 130 00cc 7D92 st X+,r7
  134. 131 00ce 8D92 st X+,r8
  135. 132 00d0 9C92 st X,r9
  136. 133 00d2 1597 sbiw r26,2+3
  137. 134 00d4 1C96 adiw r26,12
  138. 135 00d6 1D92 st X+,__zero_reg__
  139. 136 00d8 1D92 st X+,__zero_reg__
  140. 137 00da 1D92 st X+,__zero_reg__
  141. 138 00dc 1C92 st X,__zero_reg__
  142. 139 00de 1F97 sbiw r26,12+3
  143. 140 00e0 8681 ldd r24,Z+6
  144. 141 00e2 9781 ldd r25,Z+7
  145. 142 00e4 A085 ldd r26,Z+8
  146. 143 00e6 B185 ldd r27,Z+9
  147. 144 00e8 F801 movw r30,r16
  148. 145 00ea 9783 std Z+7,r25
  149. 146 00ec 8683 std Z+6,r24
  150. 147 00ee 0E94 0000 call malloc
  151. 148 00f2 D801 movw r26,r16
  152. 149 00f4 5196 adiw r26,16+1
  153. 150 00f6 9C93 st X,r25
  154. 151 00f8 8E93 st -X,r24
  155. 152 00fa 5097 sbiw r26,16
  156. 153 00fc 892B or r24,r25
  157. 154 00fe 01F0 breq .L11
  158. 155 0100 84E0 ldi r24,lo8(4)
  159. 156 0102 90E0 ldi r25,0
  160. 157 0104 0E94 0000 call malloc
  161. 158 0108 7C01 movw r14,r24
  162. 159 010a 0097 sbiw r24,0
  163. 160 010c 01F0 breq .L11
  164. 161 010e FC01 movw r30,r24
  165. 162 0110 B182 std Z+1,r11
  166. 163 0112 A082 st Z,r10
  167. 164 0114 1383 std Z+3,r17
  168. 165 0116 0283 std Z+2,r16
  169. 166 0118 9A83 std Y+2,r25
  170. 167 011a 8983 std Y+1,r24
  171. 168 011c 1B82 std Y+3,__zero_reg__
  172. 169 011e D601 movw r26,r12
  173. 170 0120 5596 adiw r26,21
  174. 171 0122 ED91 ld r30,X+
  175. GAS LISTING /tmp/cc2ll6PK.s page 4
  176. 172 0124 FC91 ld r31,X
  177. 173 0126 5697 sbiw r26,21+1
  178. 174 0128 AE01 movw r20,r28
  179. 175 012a 4F5F subi r20,-1
  180. 176 012c 5F4F sbci r21,-1
  181. 177 012e 60E3 ldi r22,lo8(48)
  182. 178 0130 71E1 ldi r23,lo8(17)
  183. 179 0132 C601 movw r24,r12
  184. 180 0134 1995 eicall
  185. 181 0136 892B or r24,r25
  186. 182 0138 01F4 brne .L13
  187. 183 013a C701 movw r24,r14
  188. 184 013c 00C0 rjmp .L26
  189. 185 .L13:
  190. 186 013e C701 movw r24,r14
  191. 187 0140 0E94 0000 call free
  192. 188 .L11:
  193. 189 0144 C801 movw r24,r16
  194. 190 0146 0E94 0000 call free
  195. 191 .L14:
  196. 192 014a 8FEF ldi r24,lo8(-1)
  197. 193 014c 9FEF ldi r25,lo8(-1)
  198. 194 .L26:
  199. 195 /* epilogue start */
  200. 196 014e 0F90 pop __tmp_reg__
  201. 197 0150 0F90 pop __tmp_reg__
  202. 198 0152 0F90 pop __tmp_reg__
  203. 199 0154 DF91 pop r29
  204. 200 0156 CF91 pop r28
  205. 201 0158 1F91 pop r17
  206. 202 015a 0F91 pop r16
  207. 203 015c FF90 pop r15
  208. 204 015e EF90 pop r14
  209. 205 0160 DF90 pop r13
  210. 206 0162 CF90 pop r12
  211. 207 0164 BF90 pop r11
  212. 208 0166 AF90 pop r10
  213. 209 0168 9F90 pop r9
  214. 210 016a 8F90 pop r8
  215. 211 016c 7F90 pop r7
  216. 212 016e 6F90 pop r6
  217. 213 0170 0895 ret
  218. 214 .size NutBlockDeviceOpen, .-NutBlockDeviceOpen
  219. 215 .section .text.NutBlockDeviceClose,"ax",@progbits
  220. 216 .global NutBlockDeviceClose
  221. 217 .type NutBlockDeviceClose, @function
  222. 218 NutBlockDeviceClose:
  223. 219 0000 EF92 push r14
  224. 220 0002 FF92 push r15
  225. 221 0004 0F93 push r16
  226. 222 0006 1F93 push r17
  227. 223 0008 CF93 push r28
  228. 224 000a DF93 push r29
  229. 225 /* prologue: function */
  230. 226 /* frame size = 0 */
  231. 227 /* stack size = 6 */
  232. 228 .L__stack_usage = 6
  233. GAS LISTING /tmp/cc2ll6PK.s page 5
  234. 229 000c 7C01 movw r14,r24
  235. 230 000e DC01 movw r26,r24
  236. 231 0010 1296 adiw r26,2
  237. 232 0012 CD91 ld r28,X+
  238. 233 0014 DC91 ld r29,X
  239. 234 0016 1397 sbiw r26,2+1
  240. 235 0018 2097 sbiw r28,0
  241. 236 001a 01F0 breq .L31
  242. 237 001c 8881 ld r24,Y
  243. 238 001e 9981 ldd r25,Y+1
  244. 239 0020 DC01 movw r26,r24
  245. 240 0022 5596 adiw r26,21
  246. 241 0024 ED91 ld r30,X+
  247. 242 0026 FC91 ld r31,X
  248. 243 0028 5697 sbiw r26,21+1
  249. 244 002a 40E0 ldi r20,0
  250. 245 002c 50E0 ldi r21,0
  251. 246 002e 61E3 ldi r22,lo8(49)
  252. 247 0030 71E1 ldi r23,lo8(17)
  253. 248 0032 1995 eicall
  254. 249 0034 8C01 movw r16,r24
  255. 250 0036 CE01 movw r24,r28
  256. 251 0038 0E94 0000 call free
  257. 252 003c 00C0 rjmp .L30
  258. 253 .L31:
  259. 254 003e 0FEF ldi r16,lo8(-1)
  260. 255 0040 1FEF ldi r17,lo8(-1)
  261. 256 .L30:
  262. 257 0042 C701 movw r24,r14
  263. 258 0044 0E94 0000 call free
  264. 259 0048 C801 movw r24,r16
  265. 260 /* epilogue start */
  266. 261 004a DF91 pop r29
  267. 262 004c CF91 pop r28
  268. 263 004e 1F91 pop r17
  269. 264 0050 0F91 pop r16
  270. 265 0052 FF90 pop r15
  271. 266 0054 EF90 pop r14
  272. 267 0056 0895 ret
  273. 268 .size NutBlockDeviceClose, .-NutBlockDeviceClose
  274. 269 .section .text.NutBlockDeviceIOCtl,"ax",@progbits
  275. 270 .global NutBlockDeviceIOCtl
  276. 271 .type NutBlockDeviceIOCtl, @function
  277. 272 NutBlockDeviceIOCtl:
  278. 273 0000 CF93 push r28
  279. 274 0002 DF93 push r29
  280. 275 /* prologue: function */
  281. 276 /* frame size = 0 */
  282. 277 /* stack size = 2 */
  283. 278 .L__stack_usage = 2
  284. 279 0004 DA01 movw r26,r20
  285. 280 0006 6230 cpi r22,2
  286. 281 0008 22E1 ldi r18,18
  287. 282 000a 7207 cpc r23,r18
  288. 283 000c 01F0 breq .L34
  289. 284 000e 6330 cpi r22,3
  290. 285 0010 C2E1 ldi r28,18
  291. GAS LISTING /tmp/cc2ll6PK.s page 6
  292. 286 0012 7C07 cpc r23,r28
  293. 287 0014 01F4 brne .L37
  294. 288 0016 ED91 ld r30,X+
  295. 289 0018 FC91 ld r31,X
  296. 290 001a 1197 sbiw r26,1
  297. 291 001c 0280 ldd __tmp_reg__,Z+2
  298. 292 001e F381 ldd r31,Z+3
  299. 293 0020 E02D mov r30,__tmp_reg__
  300. 294 0022 1296 adiw r26,2
  301. 295 0024 8D91 ld r24,X+
  302. 296 0026 9D91 ld r25,X+
  303. 297 0028 0D90 ld __tmp_reg__,X+
  304. 298 002a BC91 ld r27,X
  305. 299 002c A02D mov r26,__tmp_reg__
  306. 300 002e 8487 std Z+12,r24
  307. 301 0030 9587 std Z+13,r25
  308. 302 0032 A687 std Z+14,r26
  309. 303 0034 B787 std Z+15,r27
  310. 304 0036 00C0 rjmp .L36
  311. 305 .L34:
  312. 306 0038 ED91 ld r30,X+
  313. 307 003a FC91 ld r31,X
  314. 308 003c 1197 sbiw r26,1
  315. 309 003e 0280 ldd __tmp_reg__,Z+2
  316. 310 0040 F381 ldd r31,Z+3
  317. 311 0042 E02D mov r30,__tmp_reg__
  318. 312 0044 4281 ldd r20,Z+2
  319. 313 0046 5381 ldd r21,Z+3
  320. 314 0048 6481 ldd r22,Z+4
  321. 315 004a 7581 ldd r23,Z+5
  322. 316 004c 1296 adiw r26,2
  323. 317 004e 4D93 st X+,r20
  324. 318 0050 5D93 st X+,r21
  325. 319 0052 6D93 st X+,r22
  326. 320 0054 7C93 st X,r23
  327. 321 0056 1597 sbiw r26,2+3
  328. 322 0058 4681 ldd r20,Z+6
  329. 323 005a 5781 ldd r21,Z+7
  330. 324 005c 052E mov __tmp_reg__,r21
  331. 325 005e 000C lsl r0
  332. 326 0060 660B sbc r22,r22
  333. 327 0062 770B sbc r23,r23
  334. 328 0064 1696 adiw r26,6
  335. 329 0066 4D93 st X+,r20
  336. 330 0068 5D93 st X+,r21
  337. 331 006a 6D93 st X+,r22
  338. 332 006c 7C93 st X,r23
  339. 333 006e 1997 sbiw r26,6+3
  340. 334 0070 8089 ldd r24,Z+16
  341. 335 0072 9189 ldd r25,Z+17
  342. 336 0074 1B96 adiw r26,10+1
  343. 337 0076 9C93 st X,r25
  344. 338 0078 8E93 st -X,r24
  345. 339 007a 1A97 sbiw r26,10
  346. 340 007c 00C0 rjmp .L36
  347. 341 .L37:
  348. 342 007e EC01 movw r28,r24
  349. GAS LISTING /tmp/cc2ll6PK.s page 7
  350. 343 0080 E989 ldd r30,Y+17
  351. 344 0082 FA89 ldd r31,Y+18
  352. 345 0084 008C ldd __tmp_reg__,Z+24
  353. 346 0086 F18D ldd r31,Z+25
  354. 347 0088 E02D mov r30,__tmp_reg__
  355. 348 /* epilogue start */
  356. 349 008a DF91 pop r29
  357. 350 008c CF91 pop r28
  358. 351 008e 1994 eijmp
  359. 352 .L36:
  360. 353 0090 80E0 ldi r24,0
  361. 354 0092 90E0 ldi r25,0
  362. 355 /* epilogue start */
  363. 356 0094 DF91 pop r29
  364. 357 0096 CF91 pop r28
  365. 358 0098 0895 ret
  366. 359 .size NutBlockDeviceIOCtl, .-NutBlockDeviceIOCtl
  367. 360 .section .text.NutBlockDeviceRead,"ax",@progbits
  368. 361 .global NutBlockDeviceRead
  369. 362 .type NutBlockDeviceRead, @function
  370. 363 NutBlockDeviceRead:
  371. 364 0000 6F92 push r6
  372. 365 0002 7F92 push r7
  373. 366 0004 8F92 push r8
  374. 367 0006 9F92 push r9
  375. 368 0008 AF92 push r10
  376. 369 000a BF92 push r11
  377. 370 000c CF92 push r12
  378. 371 000e DF92 push r13
  379. 372 0010 EF92 push r14
  380. 373 0012 FF92 push r15
  381. 374 0014 0F93 push r16
  382. 375 0016 1F93 push r17
  383. 376 0018 CF93 push r28
  384. 377 001a DF93 push r29
  385. 378 /* prologue: function */
  386. 379 /* frame size = 0 */
  387. 380 /* stack size = 14 */
  388. 381 .L__stack_usage = 14
  389. 382 001c 6C01 movw r12,r24
  390. 383 001e 5B01 movw r10,r22
  391. 384 0020 4A01 movw r8,r20
  392. 385 0022 452B or r20,r21
  393. 386 0024 01F4 brne .+2
  394. 387 0026 00C0 rjmp .L44
  395. 388 0028 DC01 movw r26,r24
  396. 389 002a ED91 ld r30,X+
  397. 390 002c FC91 ld r31,X
  398. 391 002e 1197 sbiw r26,1
  399. 392 0030 6188 ldd r6,Z+17
  400. 393 0032 7288 ldd r7,Z+18
  401. 394 0034 1296 adiw r26,2
  402. 395 0036 CD91 ld r28,X+
  403. 396 0038 DC91 ld r29,X
  404. 397 003a 1397 sbiw r26,2+1
  405. 398 003c E12C mov r14,__zero_reg__
  406. 399 003e F12C mov r15,__zero_reg__
  407. GAS LISTING /tmp/cc2ll6PK.s page 8
  408. 400 .L40:
  409. 401 0040 E814 cp r14,r8
  410. 402 0042 F904 cpc r15,r9
  411. 403 0044 04F4 brge .L42
  412. 404 0046 4C85 ldd r20,Y+12
  413. 405 0048 5D85 ldd r21,Y+13
  414. 406 004a 6E85 ldd r22,Y+14
  415. 407 004c 7F85 ldd r23,Y+15
  416. 408 004e 8A81 ldd r24,Y+2
  417. 409 0050 9B81 ldd r25,Y+3
  418. 410 0052 AC81 ldd r26,Y+4
  419. 411 0054 BD81 ldd r27,Y+5
  420. 412 0056 4817 cp r20,r24
  421. 413 0058 5907 cpc r21,r25
  422. 414 005a 6A07 cpc r22,r26
  423. 415 005c 7B07 cpc r23,r27
  424. 416 005e 00F0 brlo .L41
  425. 417 .L42:
  426. 418 0060 E114 cp r14,__zero_reg__
  427. 419 0062 F104 cpc r15,__zero_reg__
  428. 420 0064 01F0 breq .L45
  429. 421 0066 C701 movw r24,r14
  430. 422 0068 00C0 rjmp .L39
  431. 423 .L41:
  432. 424 006a 0E81 ldd r16,Y+6
  433. 425 006c 1F81 ldd r17,Y+7
  434. 426 006e 8885 ldd r24,Y+8
  435. 427 0070 9985 ldd r25,Y+9
  436. 428 0072 AA85 ldd r26,Y+10
  437. 429 0074 BB85 ldd r27,Y+11
  438. 430 0076 480F add r20,r24
  439. 431 0078 591F adc r21,r25
  440. 432 007a 6A1F adc r22,r26
  441. 433 007c 7B1F adc r23,r27
  442. 434 007e D301 movw r26,r6
  443. 435 0080 5296 adiw r26,18
  444. 436 0082 ED91 ld r30,X+
  445. 437 0084 FC91 ld r31,X
  446. 438 0086 5397 sbiw r26,18+1
  447. 439 0088 9501 movw r18,r10
  448. 440 008a D601 movw r26,r12
  449. 441 008c 8D91 ld r24,X+
  450. 442 008e 9C91 ld r25,X
  451. 443 0090 1995 eicall
  452. 444 0092 2E81 ldd r18,Y+6
  453. 445 0094 3F81 ldd r19,Y+7
  454. 446 0096 8217 cp r24,r18
  455. 447 0098 9307 cpc r25,r19
  456. 448 009a 01F4 brne .L42
  457. 449 009c 4C85 ldd r20,Y+12
  458. 450 009e 5D85 ldd r21,Y+13
  459. 451 00a0 6E85 ldd r22,Y+14
  460. 452 00a2 7F85 ldd r23,Y+15
  461. 453 00a4 4F5F subi r20,-1
  462. 454 00a6 5F4F sbci r21,-1
  463. 455 00a8 6F4F sbci r22,-1
  464. 456 00aa 7F4F sbci r23,-1
  465. GAS LISTING /tmp/cc2ll6PK.s page 9
  466. 457 00ac 4C87 std Y+12,r20
  467. 458 00ae 5D87 std Y+13,r21
  468. 459 00b0 6E87 std Y+14,r22
  469. 460 00b2 7F87 std Y+15,r23
  470. 461 00b4 A80E add r10,r24
  471. 462 00b6 B91E adc r11,r25
  472. 463 00b8 BFEF ldi r27,-1
  473. 464 00ba EB1A sub r14,r27
  474. 465 00bc FB0A sbc r15,r27
  475. 466 00be 00C0 rjmp .L40
  476. 467 .L44:
  477. 468 00c0 80E0 ldi r24,0
  478. 469 00c2 90E0 ldi r25,0
  479. 470 00c4 00C0 rjmp .L39
  480. 471 .L45:
  481. 472 00c6 8FEF ldi r24,lo8(-1)
  482. 473 00c8 9FEF ldi r25,lo8(-1)
  483. 474 .L39:
  484. 475 /* epilogue start */
  485. 476 00ca DF91 pop r29
  486. 477 00cc CF91 pop r28
  487. 478 00ce 1F91 pop r17
  488. 479 00d0 0F91 pop r16
  489. 480 00d2 FF90 pop r15
  490. 481 00d4 EF90 pop r14
  491. 482 00d6 DF90 pop r13
  492. 483 00d8 CF90 pop r12
  493. 484 00da BF90 pop r11
  494. 485 00dc AF90 pop r10
  495. 486 00de 9F90 pop r9
  496. 487 00e0 8F90 pop r8
  497. 488 00e2 7F90 pop r7
  498. 489 00e4 6F90 pop r6
  499. 490 00e6 0895 ret
  500. 491 .size NutBlockDeviceRead, .-NutBlockDeviceRead
  501. 492 .section .text.NutBlockDeviceWrite,"ax",@progbits
  502. 493 .global NutBlockDeviceWrite
  503. 494 .type NutBlockDeviceWrite, @function
  504. 495 NutBlockDeviceWrite:
  505. 496 0000 6F92 push r6
  506. 497 0002 7F92 push r7
  507. 498 0004 8F92 push r8
  508. 499 0006 9F92 push r9
  509. 500 0008 AF92 push r10
  510. 501 000a BF92 push r11
  511. 502 000c CF92 push r12
  512. 503 000e DF92 push r13
  513. 504 0010 EF92 push r14
  514. 505 0012 FF92 push r15
  515. 506 0014 0F93 push r16
  516. 507 0016 1F93 push r17
  517. 508 0018 CF93 push r28
  518. 509 001a DF93 push r29
  519. 510 /* prologue: function */
  520. 511 /* frame size = 0 */
  521. 512 /* stack size = 14 */
  522. 513 .L__stack_usage = 14
  523. GAS LISTING /tmp/cc2ll6PK.s page 10
  524. 514 001c 6C01 movw r12,r24
  525. 515 001e 5B01 movw r10,r22
  526. 516 0020 4A01 movw r8,r20
  527. 517 0022 452B or r20,r21
  528. 518 0024 01F4 brne .+2
  529. 519 0026 00C0 rjmp .L52
  530. 520 0028 DC01 movw r26,r24
  531. 521 002a 1296 adiw r26,2
  532. 522 002c CD91 ld r28,X+
  533. 523 002e DC91 ld r29,X
  534. 524 0030 1397 sbiw r26,2+1
  535. 525 0032 ED91 ld r30,X+
  536. 526 0034 FC91 ld r31,X
  537. 527 0036 6188 ldd r6,Z+17
  538. 528 0038 7288 ldd r7,Z+18
  539. 529 003a E12C mov r14,__zero_reg__
  540. 530 003c F12C mov r15,__zero_reg__
  541. 531 .L48:
  542. 532 003e E814 cp r14,r8
  543. 533 0040 F904 cpc r15,r9
  544. 534 0042 04F4 brge .L50
  545. 535 0044 4C85 ldd r20,Y+12
  546. 536 0046 5D85 ldd r21,Y+13
  547. 537 0048 6E85 ldd r22,Y+14
  548. 538 004a 7F85 ldd r23,Y+15
  549. 539 004c 8A81 ldd r24,Y+2
  550. 540 004e 9B81 ldd r25,Y+3
  551. 541 0050 AC81 ldd r26,Y+4
  552. 542 0052 BD81 ldd r27,Y+5
  553. 543 0054 4817 cp r20,r24
  554. 544 0056 5907 cpc r21,r25
  555. 545 0058 6A07 cpc r22,r26
  556. 546 005a 7B07 cpc r23,r27
  557. 547 005c 00F0 brlo .L49
  558. 548 .L50:
  559. 549 005e E114 cp r14,__zero_reg__
  560. 550 0060 F104 cpc r15,__zero_reg__
  561. 551 0062 01F0 breq .L53
  562. 552 0064 C701 movw r24,r14
  563. 553 0066 00C0 rjmp .L47
  564. 554 .L49:
  565. 555 0068 0E81 ldd r16,Y+6
  566. 556 006a 1F81 ldd r17,Y+7
  567. 557 006c 8885 ldd r24,Y+8
  568. 558 006e 9985 ldd r25,Y+9
  569. 559 0070 AA85 ldd r26,Y+10
  570. 560 0072 BB85 ldd r27,Y+11
  571. 561 0074 480F add r20,r24
  572. 562 0076 591F adc r21,r25
  573. 563 0078 6A1F adc r22,r26
  574. 564 007a 7B1F adc r23,r27
  575. 565 007c D301 movw r26,r6
  576. 566 007e 5496 adiw r26,20
  577. 567 0080 ED91 ld r30,X+
  578. 568 0082 FC91 ld r31,X
  579. 569 0084 5597 sbiw r26,20+1
  580. 570 0086 9501 movw r18,r10
  581. GAS LISTING /tmp/cc2ll6PK.s page 11
  582. 571 0088 D601 movw r26,r12
  583. 572 008a 8D91 ld r24,X+
  584. 573 008c 9C91 ld r25,X
  585. 574 008e 1995 eicall
  586. 575 0090 2E81 ldd r18,Y+6
  587. 576 0092 3F81 ldd r19,Y+7
  588. 577 0094 8217 cp r24,r18
  589. 578 0096 9307 cpc r25,r19
  590. 579 0098 01F4 brne .L50
  591. 580 009a 4C85 ldd r20,Y+12
  592. 581 009c 5D85 ldd r21,Y+13
  593. 582 009e 6E85 ldd r22,Y+14
  594. 583 00a0 7F85 ldd r23,Y+15
  595. 584 00a2 4F5F subi r20,-1
  596. 585 00a4 5F4F sbci r21,-1
  597. 586 00a6 6F4F sbci r22,-1
  598. 587 00a8 7F4F sbci r23,-1
  599. 588 00aa 4C87 std Y+12,r20
  600. 589 00ac 5D87 std Y+13,r21
  601. 590 00ae 6E87 std Y+14,r22
  602. 591 00b0 7F87 std Y+15,r23
  603. 592 00b2 A80E add r10,r24
  604. 593 00b4 B91E adc r11,r25
  605. 594 00b6 BFEF ldi r27,-1
  606. 595 00b8 EB1A sub r14,r27
  607. 596 00ba FB0A sbc r15,r27
  608. 597 00bc 00C0 rjmp .L48
  609. 598 .L52:
  610. 599 00be 80E0 ldi r24,0
  611. 600 00c0 90E0 ldi r25,0
  612. 601 00c2 00C0 rjmp .L47
  613. 602 .L53:
  614. 603 00c4 8FEF ldi r24,lo8(-1)
  615. 604 00c6 9FEF ldi r25,lo8(-1)
  616. 605 .L47:
  617. 606 /* epilogue start */
  618. 607 00c8 DF91 pop r29
  619. 608 00ca CF91 pop r28
  620. 609 00cc 1F91 pop r17
  621. 610 00ce 0F91 pop r16
  622. 611 00d0 FF90 pop r15
  623. 612 00d2 EF90 pop r14
  624. 613 00d4 DF90 pop r13
  625. 614 00d6 CF90 pop r12
  626. 615 00d8 BF90 pop r11
  627. 616 00da AF90 pop r10
  628. 617 00dc 9F90 pop r9
  629. 618 00de 8F90 pop r8
  630. 619 00e0 7F90 pop r7
  631. 620 00e2 6F90 pop r6
  632. 621 00e4 0895 ret
  633. 622 .size NutBlockDeviceWrite, .-NutBlockDeviceWrite
  634. 623 .section .text.NutBlockDeviceWrite_P,"ax",@progbits
  635. 624 .global NutBlockDeviceWrite_P
  636. 625 .type NutBlockDeviceWrite_P, @function
  637. 626 NutBlockDeviceWrite_P:
  638. 627 0000 6F92 push r6
  639. GAS LISTING /tmp/cc2ll6PK.s page 12
  640. 628 0002 7F92 push r7
  641. 629 0004 8F92 push r8
  642. 630 0006 9F92 push r9
  643. 631 0008 AF92 push r10
  644. 632 000a BF92 push r11
  645. 633 000c CF92 push r12
  646. 634 000e DF92 push r13
  647. 635 0010 EF92 push r14
  648. 636 0012 FF92 push r15
  649. 637 0014 0F93 push r16
  650. 638 0016 1F93 push r17
  651. 639 0018 CF93 push r28
  652. 640 001a DF93 push r29
  653. 641 /* prologue: function */
  654. 642 /* frame size = 0 */
  655. 643 /* stack size = 14 */
  656. 644 .L__stack_usage = 14
  657. 645 001c 6C01 movw r12,r24
  658. 646 001e 5B01 movw r10,r22
  659. 647 0020 4A01 movw r8,r20
  660. 648 0022 452B or r20,r21
  661. 649 0024 01F4 brne .+2
  662. 650 0026 00C0 rjmp .L60
  663. 651 0028 DC01 movw r26,r24
  664. 652 002a 1296 adiw r26,2
  665. 653 002c CD91 ld r28,X+
  666. 654 002e DC91 ld r29,X
  667. 655 0030 1397 sbiw r26,2+1
  668. 656 0032 ED91 ld r30,X+
  669. 657 0034 FC91 ld r31,X
  670. 658 0036 6188 ldd r6,Z+17
  671. 659 0038 7288 ldd r7,Z+18
  672. 660 003a E12C mov r14,__zero_reg__
  673. 661 003c F12C mov r15,__zero_reg__
  674. 662 .L56:
  675. 663 003e E814 cp r14,r8
  676. 664 0040 F904 cpc r15,r9
  677. 665 0042 04F4 brge .L58
  678. 666 0044 4C85 ldd r20,Y+12
  679. 667 0046 5D85 ldd r21,Y+13
  680. 668 0048 6E85 ldd r22,Y+14
  681. 669 004a 7F85 ldd r23,Y+15
  682. 670 004c 8A81 ldd r24,Y+2
  683. 671 004e 9B81 ldd r25,Y+3
  684. 672 0050 AC81 ldd r26,Y+4
  685. 673 0052 BD81 ldd r27,Y+5
  686. 674 0054 4817 cp r20,r24
  687. 675 0056 5907 cpc r21,r25
  688. 676 0058 6A07 cpc r22,r26
  689. 677 005a 7B07 cpc r23,r27
  690. 678 005c 00F0 brlo .L57
  691. 679 .L58:
  692. 680 005e E114 cp r14,__zero_reg__
  693. 681 0060 F104 cpc r15,__zero_reg__
  694. 682 0062 01F0 breq .L61
  695. 683 0064 C701 movw r24,r14
  696. 684 0066 00C0 rjmp .L55
  697. GAS LISTING /tmp/cc2ll6PK.s page 13
  698. 685 .L57:
  699. 686 0068 0E81 ldd r16,Y+6
  700. 687 006a 1F81 ldd r17,Y+7
  701. 688 006c 8885 ldd r24,Y+8
  702. 689 006e 9985 ldd r25,Y+9
  703. 690 0070 AA85 ldd r26,Y+10
  704. 691 0072 BB85 ldd r27,Y+11
  705. 692 0074 480F add r20,r24
  706. 693 0076 591F adc r21,r25
  707. 694 0078 6A1F adc r22,r26
  708. 695 007a 7B1F adc r23,r27
  709. 696 007c D301 movw r26,r6
  710. 697 007e 5696 adiw r26,22
  711. 698 0080 ED91 ld r30,X+
  712. 699 0082 FC91 ld r31,X
  713. 700 0084 5797 sbiw r26,22+1
  714. 701 0086 9501 movw r18,r10
  715. 702 0088 D601 movw r26,r12
  716. 703 008a 8D91 ld r24,X+
  717. 704 008c 9C91 ld r25,X
  718. 705 008e 1995 eicall
  719. 706 0090 2E81 ldd r18,Y+6
  720. 707 0092 3F81 ldd r19,Y+7
  721. 708 0094 8217 cp r24,r18
  722. 709 0096 9307 cpc r25,r19
  723. 710 0098 01F4 brne .L58
  724. 711 009a 4C85 ldd r20,Y+12
  725. 712 009c 5D85 ldd r21,Y+13
  726. 713 009e 6E85 ldd r22,Y+14
  727. 714 00a0 7F85 ldd r23,Y+15
  728. 715 00a2 4F5F subi r20,-1
  729. 716 00a4 5F4F sbci r21,-1
  730. 717 00a6 6F4F sbci r22,-1
  731. 718 00a8 7F4F sbci r23,-1
  732. 719 00aa 4C87 std Y+12,r20
  733. 720 00ac 5D87 std Y+13,r21
  734. 721 00ae 6E87 std Y+14,r22
  735. 722 00b0 7F87 std Y+15,r23
  736. 723 00b2 A80E add r10,r24
  737. 724 00b4 B91E adc r11,r25
  738. 725 00b6 BFEF ldi r27,-1
  739. 726 00b8 EB1A sub r14,r27
  740. 727 00ba FB0A sbc r15,r27
  741. 728 00bc 00C0 rjmp .L56
  742. 729 .L60:
  743. 730 00be 80E0 ldi r24,0
  744. 731 00c0 90E0 ldi r25,0
  745. 732 00c2 00C0 rjmp .L55
  746. 733 .L61:
  747. 734 00c4 8FEF ldi r24,lo8(-1)
  748. 735 00c6 9FEF ldi r25,lo8(-1)
  749. 736 .L55:
  750. 737 /* epilogue start */
  751. 738 00c8 DF91 pop r29
  752. 739 00ca CF91 pop r28
  753. 740 00cc 1F91 pop r17
  754. 741 00ce 0F91 pop r16
  755. GAS LISTING /tmp/cc2ll6PK.s page 14
  756. 742 00d0 FF90 pop r15
  757. 743 00d2 EF90 pop r14
  758. 744 00d4 DF90 pop r13
  759. 745 00d6 CF90 pop r12
  760. 746 00d8 BF90 pop r11
  761. 747 00da AF90 pop r10
  762. 748 00dc 9F90 pop r9
  763. 749 00de 8F90 pop r8
  764. 750 00e0 7F90 pop r7
  765. 751 00e2 6F90 pop r6
  766. 752 00e4 0895 ret
  767. 753 .size NutBlockDeviceWrite_P, .-NutBlockDeviceWrite_P
  768. 754 .section .text.NutBlockDeviceSize,"ax",@progbits
  769. 755 .global NutBlockDeviceSize
  770. 756 .type NutBlockDeviceSize, @function
  771. 757 NutBlockDeviceSize:
  772. 758 /* prologue: function */
  773. 759 /* frame size = 0 */
  774. 760 /* stack size = 0 */
  775. 761 .L__stack_usage = 0
  776. 762 0000 DC01 movw r26,r24
  777. 763 0002 1296 adiw r26,2
  778. 764 0004 ED91 ld r30,X+
  779. 765 0006 FC91 ld r31,X
  780. 766 0008 1397 sbiw r26,2+1
  781. 767 000a A681 ldd r26,Z+6
  782. 768 000c B781 ldd r27,Z+7
  783. 769 000e 2281 ldd r18,Z+2
  784. 770 0010 3381 ldd r19,Z+3
  785. 771 0012 4481 ldd r20,Z+4
  786. 772 0014 5581 ldd r21,Z+5
  787. 773 0016 0E94 0000 call __mulshisi3
  788. 774 001a 0895 ret
  789. 775 .size NutBlockDeviceSize, .-NutBlockDeviceSize
  790. 776 .ident "GCC: (GNU) 5.3.0"
  791. GAS LISTING /tmp/cc2ll6PK.s page 15
  792. DEFINED SYMBOLS
  793. *ABS*:0000000000000000 blockdev.c
  794. /tmp/cc2ll6PK.s:2 *ABS*:000000000000003e __SP_H__
  795. /tmp/cc2ll6PK.s:3 *ABS*:000000000000003d __SP_L__
  796. /tmp/cc2ll6PK.s:4 *ABS*:000000000000003f __SREG__
  797. /tmp/cc2ll6PK.s:5 *ABS*:000000000000003b __RAMPZ__
  798. /tmp/cc2ll6PK.s:6 *ABS*:0000000000000000 __tmp_reg__
  799. /tmp/cc2ll6PK.s:7 *ABS*:0000000000000001 __zero_reg__
  800. /tmp/cc2ll6PK.s:11 .text.NutBlockDeviceInit:0000000000000000 NutBlockDeviceInit
  801. /tmp/cc2ll6PK.s:23 .text.NutBlockDeviceOpen:0000000000000000 NutBlockDeviceOpen
  802. /tmp/cc2ll6PK.s:218 .text.NutBlockDeviceClose:0000000000000000 NutBlockDeviceClose
  803. /tmp/cc2ll6PK.s:272 .text.NutBlockDeviceIOCtl:0000000000000000 NutBlockDeviceIOCtl
  804. /tmp/cc2ll6PK.s:363 .text.NutBlockDeviceRead:0000000000000000 NutBlockDeviceRead
  805. /tmp/cc2ll6PK.s:495 .text.NutBlockDeviceWrite:0000000000000000 NutBlockDeviceWrite
  806. /tmp/cc2ll6PK.s:626 .text.NutBlockDeviceWrite_P:0000000000000000 NutBlockDeviceWrite_P
  807. /tmp/cc2ll6PK.s:757 .text.NutBlockDeviceSize:0000000000000000 NutBlockDeviceSize
  808. UNDEFINED SYMBOLS
  809. NutDeviceLookup
  810. NutDeviceLookupType
  811. errno
  812. malloc
  813. free
  814. __mulshisi3