GAS LISTING /tmp/ccLyalLZ.s page 1 1 .file "term.c" 2 __SP_H__ = 0x3e 3 __SP_L__ = 0x3d 4 __SREG__ = 0x3f 5 __RAMPZ__ = 0x3b 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .section .text.TermRefreshLineEnd,"ax",@progbits 9 .type TermRefreshLineEnd, @function 10 TermRefreshLineEnd: 11 0000 CF92 push r12 12 0002 DF92 push r13 13 0004 EF92 push r14 14 0006 FF92 push r15 15 0008 0F93 push r16 16 000a 1F93 push r17 17 000c CF93 push r28 18 000e DF93 push r29 19 0010 1F92 push __zero_reg__ 20 0012 CDB7 in r28,__SP_L__ 21 0014 DEB7 in r29,__SP_H__ 22 /* prologue: function */ 23 /* frame size = 1 */ 24 /* stack size = 9 */ 25 .L__stack_usage = 9 26 0016 6C01 movw r12,r24 27 0018 142F mov r17,r20 28 001a DC01 movw r26,r24 29 001c 5996 adiw r26,25 30 001e 8C91 ld r24,X 31 0020 5997 sbiw r26,25 32 0022 E42E mov r14,r20 33 0024 F12C mov r15,__zero_reg__ 34 0026 689F mul r22,r24 35 0028 E00C add r14,r0 36 002a F11C adc r15,r1 37 002c 1124 clr __zero_reg__ 38 002e 5C96 adiw r26,28 39 0030 8D91 ld r24,X+ 40 0032 9C91 ld r25,X 41 0034 5D97 sbiw r26,28+1 42 0036 E80E add r14,r24 43 0038 F91E adc r15,r25 44 003a 5296 adiw r26,18 45 003c 8C91 ld r24,X 46 003e 5297 sbiw r26,18 47 0040 80FF sbrs r24,0 48 0042 00C0 rjmp .L2 49 0044 5096 adiw r26,16 50 0046 ED91 ld r30,X+ 51 0048 FC91 ld r31,X 52 004a 5197 sbiw r26,16+1 53 004c 80E0 ldi r24,0 54 004e 6983 std Y+1,r22 55 0050 1995 eicall 56 0052 6981 ldd r22,Y+1 57 .L2: GAS LISTING /tmp/ccLyalLZ.s page 2 58 0054 F601 movw r30,r12 59 0056 808D ldd r24,Z+24 60 0058 0084 ldd __tmp_reg__,Z+8 61 005a F185 ldd r31,Z+9 62 005c E02D mov r30,__tmp_reg__ 63 005e 912F mov r25,r17 64 0060 689F mul r22,r24 65 0062 900D add r25,r0 66 0064 1124 clr __zero_reg__ 67 0066 892F mov r24,r25 68 0068 1995 eicall 69 .L4: 70 006a 01E0 ldi r16,lo8(1) 71 006c 010F add r16,r17 72 006e D601 movw r26,r12 73 0070 5996 adiw r26,25 74 0072 8C91 ld r24,X 75 0074 5997 sbiw r26,25 76 0076 1817 cp r17,r24 77 0078 00F4 brsh .L3 78 007a 1296 adiw r26,2 79 007c ED91 ld r30,X+ 80 007e FC91 ld r31,X 81 0080 1397 sbiw r26,2+1 82 0082 D701 movw r26,r14 83 0084 8D91 ld r24,X+ 84 0086 7D01 movw r14,r26 85 0088 1995 eicall 86 008a 102F mov r17,r16 87 008c 00C0 rjmp .L4 88 .L3: 89 008e F601 movw r30,r12 90 0090 8289 ldd r24,Z+18 91 0092 80FF sbrs r24,0 92 0094 00C0 rjmp .L1 93 0096 0088 ldd __tmp_reg__,Z+16 94 0098 F189 ldd r31,Z+17 95 009a E02D mov r30,__tmp_reg__ 96 009c 81E0 ldi r24,lo8(1) 97 /* epilogue start */ 98 009e 0F90 pop __tmp_reg__ 99 00a0 DF91 pop r29 100 00a2 CF91 pop r28 101 00a4 1F91 pop r17 102 00a6 0F91 pop r16 103 00a8 FF90 pop r15 104 00aa EF90 pop r14 105 00ac DF90 pop r13 106 00ae CF90 pop r12 107 00b0 1994 eijmp 108 .L1: 109 /* epilogue start */ 110 00b2 0F90 pop __tmp_reg__ 111 00b4 DF91 pop r29 112 00b6 CF91 pop r28 113 00b8 1F91 pop r17 114 00ba 0F91 pop r16 GAS LISTING /tmp/ccLyalLZ.s page 3 115 00bc FF90 pop r15 116 00be EF90 pop r14 117 00c0 DF90 pop r13 118 00c2 CF90 pop r12 119 00c4 0895 ret 120 .size TermRefreshLineEnd, .-TermRefreshLineEnd 121 .section .text.TermClear,"ax",@progbits 122 .type TermClear, @function 123 TermClear: 124 0000 CF93 push r28 125 0002 DF93 push r29 126 /* prologue: function */ 127 /* frame size = 0 */ 128 /* stack size = 2 */ 129 .L__stack_usage = 2 130 0004 EC01 movw r28,r24 131 0006 898D ldd r24,Y+25 132 0008 4F89 ldd r20,Y+23 133 000a 849F mul r24,r20 134 000c A001 movw r20,r0 135 000e 1124 clr __zero_reg__ 136 0010 60E2 ldi r22,lo8(32) 137 0012 70E0 ldi r23,0 138 0014 8C8D ldd r24,Y+28 139 0016 9D8D ldd r25,Y+29 140 0018 0E94 0000 call memset 141 001c 1B8E std Y+27,__zero_reg__ 142 001e 1A8E std Y+26,__zero_reg__ 143 0020 EE81 ldd r30,Y+6 144 0022 FF81 ldd r31,Y+7 145 /* epilogue start */ 146 0024 DF91 pop r29 147 0026 CF91 pop r28 148 0028 1994 eijmp 149 .size TermClear, .-TermClear 150 .section .text.TermRefresh,"ax",@progbits 151 .global TermRefresh 152 .type TermRefresh, @function 153 TermRefresh: 154 0000 1F93 push r17 155 0002 CF93 push r28 156 0004 DF93 push r29 157 /* prologue: function */ 158 /* frame size = 0 */ 159 /* stack size = 3 */ 160 .L__stack_usage = 3 161 0006 EC01 movw r28,r24 162 0008 10E0 ldi r17,0 163 .L12: 164 000a 8F89 ldd r24,Y+23 165 000c 1817 cp r17,r24 166 000e 00F4 brsh .L14 167 0010 40E0 ldi r20,0 168 0012 612F mov r22,r17 169 0014 CE01 movw r24,r28 170 0016 0E94 0000 call TermRefreshLineEnd 171 001a 1F5F subi r17,lo8(-(1)) GAS LISTING /tmp/ccLyalLZ.s page 4 172 001c 00C0 rjmp .L12 173 .L14: 174 001e 2A8D ldd r18,Y+26 175 0020 988D ldd r25,Y+24 176 0022 8B8D ldd r24,Y+27 177 0024 E885 ldd r30,Y+8 178 0026 F985 ldd r31,Y+9 179 0028 299F mul r18,r25 180 002a 800D add r24,r0 181 002c 1124 clr __zero_reg__ 182 /* epilogue start */ 183 002e DF91 pop r29 184 0030 CF91 pop r28 185 0032 1F91 pop r17 186 0034 1994 eijmp 187 .size TermRefresh, .-TermRefresh 188 .section .text.TermInsertLine,"ax",@progbits 189 .type TermInsertLine, @function 190 TermInsertLine: 191 0000 0F93 push r16 192 0002 1F93 push r17 193 0004 CF93 push r28 194 0006 DF93 push r29 195 /* prologue: function */ 196 /* frame size = 0 */ 197 /* stack size = 4 */ 198 .L__stack_usage = 4 199 0008 8C01 movw r16,r24 200 000a D62F mov r29,r22 201 000c FC01 movw r30,r24 202 000e C789 ldd r28,Z+23 203 .L18: 204 0010 C150 subi r28,lo8(-(-1)) 205 0012 F801 movw r30,r16 206 0014 918D ldd r25,Z+25 207 0016 248D ldd r18,Z+28 208 0018 358D ldd r19,Z+29 209 001a DC17 cp r29,r28 210 001c 00F4 brsh .L19 211 001e C99F mul r28,r25 212 0020 200D add r18,r0 213 0022 311D adc r19,r1 214 0024 1124 clr __zero_reg__ 215 0026 492F mov r20,r25 216 0028 50E0 ldi r21,0 217 002a B901 movw r22,r18 218 002c 641B sub r22,r20 219 002e 750B sbc r23,r21 220 0030 C901 movw r24,r18 221 0032 0E94 0000 call memcpy 222 0036 00C0 rjmp .L18 223 .L19: 224 0038 492F mov r20,r25 225 003a 50E0 ldi r21,0 226 003c 60E2 ldi r22,lo8(32) 227 003e 70E0 ldi r23,0 228 0040 F901 movw r30,r18 GAS LISTING /tmp/ccLyalLZ.s page 5 229 0042 D99F mul r29,r25 230 0044 E00D add r30,r0 231 0046 F11D adc r31,r1 232 0048 1124 clr __zero_reg__ 233 004a CF01 movw r24,r30 234 004c 0E94 0000 call memset 235 0050 C801 movw r24,r16 236 /* epilogue start */ 237 0052 DF91 pop r29 238 0054 CF91 pop r28 239 0056 1F91 pop r17 240 0058 0F91 pop r16 241 005a 0C94 0000 jmp TermRefresh 242 .size TermInsertLine, .-TermInsertLine 243 .section .text.TermDeleteLine,"ax",@progbits 244 .type TermDeleteLine, @function 245 TermDeleteLine: 246 0000 1F93 push r17 247 0002 CF93 push r28 248 0004 DF93 push r29 249 /* prologue: function */ 250 /* frame size = 0 */ 251 /* stack size = 3 */ 252 .L__stack_usage = 3 253 0006 EC01 movw r28,r24 254 0008 162F mov r17,r22 255 .L21: 256 000a 2F89 ldd r18,Y+23 257 000c 30E0 ldi r19,0 258 000e 2150 subi r18,1 259 0010 3109 sbc r19,__zero_reg__ 260 0012 612F mov r22,r17 261 0014 70E0 ldi r23,0 262 0016 498D ldd r20,Y+25 263 0018 8C8D ldd r24,Y+28 264 001a 9D8D ldd r25,Y+29 265 001c 6217 cp r22,r18 266 001e 7307 cpc r23,r19 267 0020 04F4 brge .L23 268 0022 149F mul r17,r20 269 0024 800D add r24,r0 270 0026 911D adc r25,r1 271 0028 1124 clr __zero_reg__ 272 002a 50E0 ldi r21,0 273 002c BC01 movw r22,r24 274 002e 640F add r22,r20 275 0030 751F adc r23,r21 276 0032 0E94 0000 call memcpy 277 0036 1F5F subi r17,lo8(-(1)) 278 0038 00C0 rjmp .L21 279 .L23: 280 003a 50E0 ldi r21,0 281 003c 429F mul r20,r18 282 003e F001 movw r30,r0 283 0040 439F mul r20,r19 284 0042 F00D add r31,r0 285 0044 529F mul r21,r18 GAS LISTING /tmp/ccLyalLZ.s page 6 286 0046 F00D add r31,r0 287 0048 1124 clr r1 288 004a 60E2 ldi r22,lo8(32) 289 004c 70E0 ldi r23,0 290 004e 8E0F add r24,r30 291 0050 9F1F adc r25,r31 292 0052 0E94 0000 call memset 293 0056 CE01 movw r24,r28 294 /* epilogue start */ 295 0058 DF91 pop r29 296 005a CF91 pop r28 297 005c 1F91 pop r17 298 005e 0C94 0000 jmp TermRefresh 299 .size TermDeleteLine, .-TermDeleteLine 300 .section .text.TermDeleteChar,"ax",@progbits 301 .type TermDeleteChar, @function 302 TermDeleteChar: 303 0000 CF93 push r28 304 0002 DF93 push r29 305 /* prologue: function */ 306 /* frame size = 0 */ 307 /* stack size = 2 */ 308 .L__stack_usage = 2 309 0004 DC01 movw r26,r24 310 0006 5A96 adiw r26,26 311 0008 3C91 ld r19,X 312 000a 5A97 sbiw r26,26 313 000c 5996 adiw r26,25 314 000e 2C91 ld r18,X 315 0010 5997 sbiw r26,25 316 0012 E62F mov r30,r22 317 0014 F0E0 ldi r31,0 318 0016 329F mul r19,r18 319 0018 E00D add r30,r0 320 001a F11D adc r31,r1 321 001c 1124 clr __zero_reg__ 322 001e 5C96 adiw r26,28 323 0020 2D91 ld r18,X+ 324 0022 3C91 ld r19,X 325 0024 5D97 sbiw r26,28+1 326 0026 E20F add r30,r18 327 0028 F31F adc r31,r19 328 002a DF01 movw r26,r30 329 002c 1196 adiw r26,1 330 .L25: 331 002e 462F mov r20,r22 332 0030 50E0 ldi r21,0 333 0032 EC01 movw r28,r24 334 0034 298D ldd r18,Y+25 335 0036 30E0 ldi r19,0 336 0038 2150 subi r18,1 337 003a 3109 sbc r19,__zero_reg__ 338 003c 4217 cp r20,r18 339 003e 5307 cpc r21,r19 340 0040 04F4 brge .L27 341 0042 2D91 ld r18,X+ 342 0044 2193 st Z+,r18 GAS LISTING /tmp/ccLyalLZ.s page 7 343 0046 6F5F subi r22,lo8(-(1)) 344 0048 00C0 rjmp .L25 345 .L27: 346 004a 20E2 ldi r18,lo8(32) 347 004c 2083 st Z,r18 348 /* epilogue start */ 349 004e DF91 pop r29 350 0050 CF91 pop r28 351 0052 0C94 0000 jmp TermRefresh 352 .size TermDeleteChar, .-TermDeleteChar 353 .section .text.TermPut.isra.0,"ax",@progbits 354 .type TermPut.isra.0, @function 355 TermPut.isra.0: 356 0000 4F92 push r4 357 0002 5F92 push r5 358 0004 7F92 push r7 359 0006 8F92 push r8 360 0008 9F92 push r9 361 000a AF92 push r10 362 000c BF92 push r11 363 000e CF92 push r12 364 0010 DF92 push r13 365 0012 EF92 push r14 366 0014 FF92 push r15 367 0016 0F93 push r16 368 0018 1F93 push r17 369 001a CF93 push r28 370 001c DF93 push r29 371 /* prologue: function */ 372 /* frame size = 0 */ 373 /* stack size = 15 */ 374 .L__stack_usage = 15 375 001e EC01 movw r28,r24 376 0020 5B01 movw r10,r22 377 0022 7A01 movw r14,r20 378 0024 4901 movw r8,r18 379 0026 6115 cp r22,__zero_reg__ 380 0028 7105 cpc r23,__zero_reg__ 381 002a 01F4 brne .+2 382 002c 00C0 rjmp .L90 383 002e 6B01 movw r12,r22 384 0030 03E0 ldi r16,lo8(3) 385 0032 90E2 ldi r25,lo8(32) 386 0034 792E mov r7,r25 387 .L30: 388 0036 C601 movw r24,r12 389 0038 8A19 sub r24,r10 390 003a 9B09 sbc r25,r11 391 003c 8E15 cp r24,r14 392 003e 9F05 cpc r25,r15 393 0040 04F0 brlt .+2 394 0042 00C0 rjmp .L123 395 0044 F601 movw r30,r12 396 0046 8114 cp r8,__zero_reg__ 397 0048 9104 cpc r9,__zero_reg__ 398 004a 01F0 breq .L31 399 /* #APP */ GAS LISTING /tmp/ccLyalLZ.s page 8 400 ; 463 "../../nut/dev/term.c" 1 401 004c 1491 lpm r17, Z 402 403 ; 0 "" 2 404 /* #NOAPP */ 405 004e 00C0 rjmp .L32 406 .L31: 407 0050 1081 ld r17,Z 408 .L32: 409 0052 4A89 ldd r20,Y+18 410 0054 5B89 ldd r21,Y+19 411 0056 6C89 ldd r22,Y+20 412 0058 7D89 ldd r23,Y+21 413 005a 61FF sbrs r22,1 414 005c 00C0 rjmp .L33 415 005e 8E89 ldd r24,Y+22 416 0060 8111 cpse r24,__zero_reg__ 417 0062 00C0 rjmp .L34 418 0064 1A30 cpi r17,lo8(10) 419 0066 01F4 brne .L35 420 0068 1B8E std Y+27,__zero_reg__ 421 006a 8A8D ldd r24,Y+26 422 006c 8F5F subi r24,lo8(-(1)) 423 006e 8A8F std Y+26,r24 424 0070 9F89 ldd r25,Y+23 425 0072 8917 cp r24,r25 426 0074 00F0 brlo .L36 427 0076 9150 subi r25,lo8(-(-1)) 428 0078 9A8F std Y+26,r25 429 007a 60E0 ldi r22,0 430 007c 00C0 rjmp .L120 431 .L36: 432 007e 988D ldd r25,Y+24 433 0080 00C0 rjmp .L122 434 .L35: 435 0082 1D30 cpi r17,lo8(13) 436 0084 01F4 brne .L38 437 0086 1B8E std Y+27,__zero_reg__ 438 0088 9A8D ldd r25,Y+26 439 008a 888D ldd r24,Y+24 440 .L122: 441 008c E885 ldd r30,Y+8 442 008e F985 ldd r31,Y+9 443 0090 989F mul r25,r24 444 0092 802D mov r24,r0 445 0094 1124 clr r1 446 0096 00C0 rjmp .L110 447 .L38: 448 0098 1B31 cpi r17,lo8(27) 449 009a 01F4 brne .L39 450 009c 81E0 ldi r24,lo8(1) 451 009e 00C0 rjmp .L111 452 .L39: 453 00a0 1830 cpi r17,lo8(8) 454 00a2 01F4 brne .L40 455 00a4 6B8D ldd r22,Y+27 456 00a6 6623 tst r22 GAS LISTING /tmp/ccLyalLZ.s page 9 457 00a8 01F4 brne .+2 458 00aa 00C0 rjmp .L37 459 00ac 6150 subi r22,lo8(-(-1)) 460 00ae 6B8F std Y+27,r22 461 00b0 00C0 rjmp .L112 462 .L40: 463 00b2 1C30 cpi r17,lo8(12) 464 00b4 01F0 breq .+2 465 00b6 00C0 rjmp .L33 466 00b8 00C0 rjmp .L49 467 .L34: 468 00ba 8130 cpi r24,lo8(1) 469 00bc 01F0 breq .+2 470 00be 00C0 rjmp .L42 471 00c0 1E8A std Y+22,__zero_reg__ 472 00c2 812F mov r24,r17 473 00c4 90E0 ldi r25,0 474 00c6 FC01 movw r30,r24 475 00c8 E054 subi r30,64 476 00ca F109 sbc r31,__zero_reg__ 477 00cc E033 cpi r30,48 478 00ce F105 cpc r31,__zero_reg__ 479 00d0 00F0 brlo .+2 480 00d2 00C0 rjmp .L37 481 00d4 8827 clr r24 482 00d6 E050 subi r30,pm_lo8(-(.L44)) 483 00d8 F040 sbci r31,pm_hi8(-(.L44)) 484 00da 8040 sbci r24,pm_hh8(-(.L44)) 485 00dc 0C94 0000 jmp __tablejump2__ 486 .section .progmem.gcc_sw_table.TermPut.isra.0,"a",@progbits 487 .p2align 1 488 .L44: 489 0000 0000 .word gs(.L43) 490 0002 0000 .word gs(.L45) 491 0004 0000 .word gs(.L46) 492 0006 0000 .word gs(.L47) 493 0008 0000 .word gs(.L48) 494 000a 0000 .word gs(.L49) 495 000c 0000 .word gs(.L37) 496 000e 0000 .word gs(.L37) 497 0010 0000 .word gs(.L50) 498 0012 0000 .word gs(.L51) 499 0014 0000 .word gs(.L52) 500 0016 0000 .word gs(.L53) 501 0018 0000 .word gs(.L54) 502 001a 0000 .word gs(.L55) 503 001c 0000 .word gs(.L37) 504 001e 0000 .word gs(.L37) 505 0020 0000 .word gs(.L56) 506 0022 0000 .word gs(.L37) 507 0024 0000 .word gs(.L37) 508 0026 0000 .word gs(.L37) 509 0028 0000 .word gs(.L37) 510 002a 0000 .word gs(.L37) 511 002c 0000 .word gs(.L37) 512 002e 0000 .word gs(.L37) 513 0030 0000 .word gs(.L37) GAS LISTING /tmp/ccLyalLZ.s page 10 514 0032 0000 .word gs(.L57) 515 0034 0000 .word gs(.L58) 516 0036 0000 .word gs(.L37) 517 0038 0000 .word gs(.L37) 518 003a 0000 .word gs(.L37) 519 003c 0000 .word gs(.L37) 520 003e 0000 .word gs(.L37) 521 0040 0000 .word gs(.L37) 522 0042 0000 .word gs(.L37) 523 0044 0000 .word gs(.L37) 524 0046 0000 .word gs(.L37) 525 0048 0000 .word gs(.L59) 526 004a 0000 .word gs(.L60) 527 004c 0000 .word gs(.L61) 528 004e 0000 .word gs(.L37) 529 0050 0000 .word gs(.L37) 530 0052 0000 .word gs(.L62) 531 0054 0000 .word gs(.L37) 532 0056 0000 .word gs(.L37) 533 0058 0000 .word gs(.L37) 534 005a 0000 .word gs(.L37) 535 005c 0000 .word gs(.L63) 536 005e 0000 .word gs(.L64) 537 .section .text.TermPut.isra.0 538 .L43: 539 00e0 8A8D ldd r24,Y+26 540 00e2 90E0 ldi r25,0 541 00e4 0196 adiw r24,1 542 00e6 298D ldd r18,Y+25 543 00e8 289F mul r18,r24 544 00ea F001 movw r30,r0 545 00ec 299F mul r18,r25 546 00ee F00D add r31,r0 547 00f0 1124 clr __zero_reg__ 548 00f2 3197 sbiw r30,1 549 00f4 8C8D ldd r24,Y+28 550 00f6 9D8D ldd r25,Y+29 551 00f8 4B8D ldd r20,Y+27 552 00fa E80F add r30,r24 553 00fc F91F adc r31,r25 554 00fe DF01 movw r26,r30 555 0100 1196 adiw r26,1 556 .L65: 557 0102 242F mov r18,r20 558 0104 30E0 ldi r19,0 559 0106 898D ldd r24,Y+25 560 0108 90E0 ldi r25,0 561 010a 0197 sbiw r24,1 562 010c 2817 cp r18,r24 563 010e 3907 cpc r19,r25 564 0110 04F4 brge .L124 565 0112 8291 ld r24,-Z 566 0114 8E93 st -X,r24 567 0116 4F5F subi r20,lo8(-(1)) 568 0118 00C0 rjmp .L65 569 .L124: 570 011a 7082 st Z,r7 GAS LISTING /tmp/ccLyalLZ.s page 11 571 011c 4B8D ldd r20,Y+27 572 011e 6A8D ldd r22,Y+26 573 0120 CE01 movw r24,r28 574 0122 0E94 0000 call TermRefreshLineEnd 575 0126 00C0 rjmp .L87 576 .L45: 577 0128 9A8D ldd r25,Y+26 578 012a 9923 tst r25 579 012c 01F4 brne .+2 580 012e 00C0 rjmp .L37 581 0130 9150 subi r25,lo8(-(-1)) 582 0132 9A8F std Y+26,r25 583 0134 00C0 rjmp .L121 584 .L46: 585 0136 9A8D ldd r25,Y+26 586 0138 9F5F subi r25,lo8(-(1)) 587 013a 9A8F std Y+26,r25 588 013c 8F89 ldd r24,Y+23 589 013e 9817 cp r25,r24 590 0140 00F0 brlo .+2 591 0142 00C0 rjmp .L119 592 0144 00C0 rjmp .L121 593 .L47: 594 0146 9B8D ldd r25,Y+27 595 0148 9F5F subi r25,lo8(-(1)) 596 014a 9B8F std Y+27,r25 597 014c 898D ldd r24,Y+25 598 014e 9817 cp r25,r24 599 0150 00F4 brsh .L113 600 0152 EE85 ldd r30,Y+14 601 0154 FF85 ldd r31,Y+15 602 0156 00C0 rjmp .L114 603 .L48: 604 0158 8B8D ldd r24,Y+27 605 015a 8823 tst r24 606 015c 01F4 brne .+2 607 015e 00C0 rjmp .L37 608 0160 EC85 ldd r30,Y+12 609 0162 FD85 ldd r31,Y+13 610 0164 1995 eicall 611 0166 8B8D ldd r24,Y+27 612 .L113: 613 0168 8150 subi r24,lo8(-(-1)) 614 016a 8B8F std Y+27,r24 615 016c 00C0 rjmp .L37 616 .L49: 617 016e CE01 movw r24,r28 618 0170 0E94 0000 call TermClear 619 0174 00C0 rjmp .L37 620 .L50: 621 0176 1B8E std Y+27,__zero_reg__ 622 0178 1A8E std Y+26,__zero_reg__ 623 017a EA85 ldd r30,Y+10 624 017c FB85 ldd r31,Y+11 625 .L114: 626 017e 1995 eicall 627 0180 00C0 rjmp .L37 GAS LISTING /tmp/ccLyalLZ.s page 12 628 .L51: 629 0182 8A8D ldd r24,Y+26 630 0184 9FEF ldi r25,lo8(-1) 631 0186 980F add r25,r24 632 0188 9A8F std Y+26,r25 633 018a 8823 tst r24 634 018c 01F0 breq .L70 635 .L121: 636 018e 288D ldd r18,Y+24 637 0190 00C0 rjmp .L115 638 .L70: 639 0192 1A8E std Y+26,__zero_reg__ 640 0194 60E0 ldi r22,0 641 0196 00C0 rjmp .L116 642 .L52: 643 0198 8B8D ldd r24,Y+27 644 019a 298D ldd r18,Y+25 645 019c 8217 cp r24,r18 646 019e 00F4 brsh .L71 647 01a0 3A8D ldd r19,Y+26 648 01a2 422F mov r20,r18 649 01a4 50E0 ldi r21,0 650 01a6 90E0 ldi r25,0 651 01a8 481B sub r20,r24 652 01aa 590B sbc r21,r25 653 01ac 239F mul r18,r19 654 01ae 800D add r24,r0 655 01b0 911D adc r25,r1 656 01b2 1124 clr __zero_reg__ 657 01b4 2C8D ldd r18,Y+28 658 01b6 3D8D ldd r19,Y+29 659 01b8 60E2 ldi r22,lo8(32) 660 01ba 70E0 ldi r23,0 661 01bc 820F add r24,r18 662 01be 931F adc r25,r19 663 01c0 0E94 0000 call memset 664 .L71: 665 01c4 1A8D ldd r17,Y+26 666 .L109: 667 01c6 1F5F subi r17,lo8(-(1)) 668 01c8 8F89 ldd r24,Y+23 669 01ca 1817 cp r17,r24 670 01cc 00F0 brlo .+2 671 01ce 00C0 rjmp .L117 672 01d0 998D ldd r25,Y+25 673 01d2 492F mov r20,r25 674 01d4 50E0 ldi r21,0 675 01d6 2C8D ldd r18,Y+28 676 01d8 3D8D ldd r19,Y+29 677 01da 60E2 ldi r22,lo8(32) 678 01dc 70E0 ldi r23,0 679 01de F901 movw r30,r18 680 01e0 199F mul r17,r25 681 01e2 E00D add r30,r0 682 01e4 F11D adc r31,r1 683 01e6 1124 clr __zero_reg__ 684 01e8 CF01 movw r24,r30 GAS LISTING /tmp/ccLyalLZ.s page 13 685 01ea 0E94 0000 call memset 686 01ee 00C0 rjmp .L109 687 .L53: 688 01f0 8B8D ldd r24,Y+27 689 01f2 298D ldd r18,Y+25 690 01f4 8217 cp r24,r18 691 01f6 00F0 brlo .+2 692 01f8 00C0 rjmp .L37 693 01fa 3A8D ldd r19,Y+26 694 01fc 422F mov r20,r18 695 01fe 50E0 ldi r21,0 696 0200 90E0 ldi r25,0 697 0202 481B sub r20,r24 698 0204 590B sbc r21,r25 699 0206 239F mul r18,r19 700 0208 800D add r24,r0 701 020a 911D adc r25,r1 702 020c 1124 clr __zero_reg__ 703 020e 2C8D ldd r18,Y+28 704 0210 3D8D ldd r19,Y+29 705 0212 60E2 ldi r22,lo8(32) 706 0214 70E0 ldi r23,0 707 0216 820F add r24,r18 708 0218 931F adc r25,r19 709 021a 00C0 rjmp .L118 710 .L54: 711 021c 6A8D ldd r22,Y+26 712 .L116: 713 021e CE01 movw r24,r28 714 0220 0E94 0000 call TermInsertLine 715 0224 00C0 rjmp .L37 716 .L55: 717 0226 6A8D ldd r22,Y+26 718 .L120: 719 0228 CE01 movw r24,r28 720 022a 0E94 0000 call TermDeleteLine 721 022e 00C0 rjmp .L37 722 .L56: 723 0230 6B8D ldd r22,Y+27 724 .L112: 725 0232 CE01 movw r24,r28 726 0234 0E94 0000 call TermDeleteChar 727 0238 00C0 rjmp .L37 728 .L57: 729 023a 82E0 ldi r24,lo8(2) 730 .L111: 731 023c 8E8B std Y+22,r24 732 023e 00C0 rjmp .L37 733 .L58: 734 0240 CE01 movw r24,r28 735 0242 0E94 0000 call TermClear 736 0246 80E0 ldi r24,lo8(termid) 737 0248 482E mov r4,r24 738 024a 80E0 ldi r24,hi8(termid) 739 024c 582E mov r5,r24 740 .L74: 741 024e F201 movw r30,r4 GAS LISTING /tmp/ccLyalLZ.s page 14 742 0250 8191 ld r24,Z+ 743 0252 2F01 movw r4,r30 744 0254 8823 tst r24 745 0256 01F4 brne .+2 746 0258 00C0 rjmp .L37 747 025a EA81 ldd r30,Y+2 748 025c FB81 ldd r31,Y+3 749 025e 1995 eicall 750 0260 00C0 rjmp .L74 751 .L60: 752 0262 4160 ori r20,1 753 0264 4A8B std Y+18,r20 754 0266 5B8B std Y+19,r21 755 0268 6C8B std Y+20,r22 756 026a 7D8B std Y+21,r23 757 026c E889 ldd r30,Y+16 758 026e F989 ldd r31,Y+17 759 0270 81E0 ldi r24,lo8(1) 760 0272 00C0 rjmp .L110 761 .L61: 762 0274 4E7F andi r20,254 763 0276 4A8B std Y+18,r20 764 0278 5B8B std Y+19,r21 765 027a 6C8B std Y+20,r22 766 027c 7D8B std Y+21,r23 767 027e E889 ldd r30,Y+16 768 0280 F989 ldd r31,Y+17 769 0282 80E0 ldi r24,0 770 0284 00C0 rjmp .L110 771 .L59: 772 0286 4B8D ldd r20,Y+27 773 0288 4423 tst r20 774 028a 01F0 breq .L76 775 028c 3A8D ldd r19,Y+26 776 028e 298D ldd r18,Y+25 777 0290 50E0 ldi r21,0 778 0292 8C8D ldd r24,Y+28 779 0294 9D8D ldd r25,Y+29 780 0296 60E2 ldi r22,lo8(32) 781 0298 70E0 ldi r23,0 782 029a 329F mul r19,r18 783 029c 800D add r24,r0 784 029e 911D adc r25,r1 785 02a0 1124 clr __zero_reg__ 786 02a2 0E94 0000 call memset 787 .L76: 788 02a6 10E0 ldi r17,0 789 .L77: 790 02a8 8A8D ldd r24,Y+26 791 02aa 1817 cp r17,r24 792 02ac 00F4 brsh .L117 793 02ae 998D ldd r25,Y+25 794 02b0 492F mov r20,r25 795 02b2 50E0 ldi r21,0 796 02b4 2C8D ldd r18,Y+28 797 02b6 3D8D ldd r19,Y+29 798 02b8 60E2 ldi r22,lo8(32) GAS LISTING /tmp/ccLyalLZ.s page 15 799 02ba 70E0 ldi r23,0 800 02bc F901 movw r30,r18 801 02be 199F mul r17,r25 802 02c0 E00D add r30,r0 803 02c2 F11D adc r31,r1 804 02c4 1124 clr __zero_reg__ 805 02c6 CF01 movw r24,r30 806 02c8 0E94 0000 call memset 807 02cc 1F5F subi r17,lo8(-(1)) 808 02ce 00C0 rjmp .L77 809 .L64: 810 02d0 4B8D ldd r20,Y+27 811 02d2 4423 tst r20 812 02d4 01F4 brne .+2 813 02d6 00C0 rjmp .L37 814 02d8 3A8D ldd r19,Y+26 815 02da 298D ldd r18,Y+25 816 02dc 50E0 ldi r21,0 817 02de 8C8D ldd r24,Y+28 818 02e0 9D8D ldd r25,Y+29 819 02e2 60E2 ldi r22,lo8(32) 820 02e4 70E0 ldi r23,0 821 02e6 329F mul r19,r18 822 02e8 800D add r24,r0 823 02ea 911D adc r25,r1 824 02ec 1124 clr __zero_reg__ 825 .L118: 826 02ee 0E94 0000 call memset 827 .L117: 828 02f2 CE01 movw r24,r28 829 02f4 0E94 0000 call TermRefresh 830 02f8 00C0 rjmp .L37 831 .L62: 832 02fa 7061 ori r23,16 833 02fc 4A8B std Y+18,r20 834 02fe 5B8B std Y+19,r21 835 0300 6C8B std Y+20,r22 836 0302 7D8B std Y+21,r23 837 0304 E889 ldd r30,Y+16 838 0306 F989 ldd r31,Y+17 839 0308 83E0 ldi r24,lo8(3) 840 030a 00C0 rjmp .L110 841 .L63: 842 030c 7F7E andi r23,239 843 030e 4A8B std Y+18,r20 844 0310 5B8B std Y+19,r21 845 0312 6C8B std Y+20,r22 846 0314 7D8B std Y+21,r23 847 0316 E889 ldd r30,Y+16 848 0318 F989 ldd r31,Y+17 849 031a 82E0 ldi r24,lo8(2) 850 031c 00C0 rjmp .L110 851 .L42: 852 031e 8230 cpi r24,lo8(2) 853 0320 01F4 brne .L80 854 0322 0E8B std Y+22,r16 855 0324 1032 cpi r17,lo8(32) GAS LISTING /tmp/ccLyalLZ.s page 16 856 0326 00F4 brsh .L81 857 0328 1A8E std Y+26,__zero_reg__ 858 032a 00C0 rjmp .L37 859 .L81: 860 032c 8F89 ldd r24,Y+23 861 032e 212F mov r18,r17 862 0330 30E0 ldi r19,0 863 0332 2F51 subi r18,31 864 0334 3109 sbc r19,__zero_reg__ 865 0336 482F mov r20,r24 866 0338 50E0 ldi r21,0 867 033a 4217 cp r20,r18 868 033c 5307 cpc r21,r19 869 033e 04F4 brge .L82 870 .L119: 871 0340 8150 subi r24,lo8(-(-1)) 872 0342 8A8F std Y+26,r24 873 0344 00C0 rjmp .L37 874 .L82: 875 0346 1052 subi r17,lo8(-(-32)) 876 0348 1A8F std Y+26,r17 877 034a 00C0 rjmp .L37 878 .L80: 879 034c 8330 cpi r24,lo8(3) 880 034e 01F4 brne .L33 881 0350 1E8A std Y+22,__zero_reg__ 882 0352 1032 cpi r17,lo8(32) 883 0354 00F4 brsh .L83 884 0356 1B8E std Y+27,__zero_reg__ 885 0358 00C0 rjmp .L87 886 .L83: 887 035a 898D ldd r24,Y+25 888 035c 212F mov r18,r17 889 035e 30E0 ldi r19,0 890 0360 2F51 subi r18,31 891 0362 3109 sbc r19,__zero_reg__ 892 0364 482F mov r20,r24 893 0366 50E0 ldi r21,0 894 0368 4217 cp r20,r18 895 036a 5307 cpc r21,r19 896 036c 04F0 brlt .L86 897 036e 1052 subi r17,lo8(-(-32)) 898 0370 1B8F std Y+27,r17 899 0372 00C0 rjmp .L87 900 .L33: 901 0374 EA81 ldd r30,Y+2 902 0376 FB81 ldd r31,Y+3 903 0378 812F mov r24,r17 904 037a 1995 eicall 905 037c 8A89 ldd r24,Y+18 906 037e 9B89 ldd r25,Y+19 907 0380 AC89 ldd r26,Y+20 908 0382 BD89 ldd r27,Y+21 909 0384 A1FF sbrs r26,1 910 0386 00C0 rjmp .L37 911 0388 2A8D ldd r18,Y+26 912 038a 998D ldd r25,Y+25 GAS LISTING /tmp/ccLyalLZ.s page 17 913 038c 8B8D ldd r24,Y+27 914 038e EC8D ldd r30,Y+28 915 0390 FD8D ldd r31,Y+29 916 0392 299F mul r18,r25 917 0394 E00D add r30,r0 918 0396 F11D adc r31,r1 919 0398 1124 clr __zero_reg__ 920 039a E80F add r30,r24 921 039c F11D adc r31,__zero_reg__ 922 039e 1083 st Z,r17 923 03a0 9B8D ldd r25,Y+27 924 03a2 9F5F subi r25,lo8(-(1)) 925 03a4 9B8F std Y+27,r25 926 03a6 898D ldd r24,Y+25 927 03a8 9817 cp r25,r24 928 03aa 00F0 brlo .L37 929 03ac 4A89 ldd r20,Y+18 930 03ae 5B89 ldd r21,Y+19 931 03b0 6C89 ldd r22,Y+20 932 03b2 7D89 ldd r23,Y+21 933 03b4 62FF sbrs r22,2 934 03b6 00C0 rjmp .L86 935 03b8 1B8E std Y+27,__zero_reg__ 936 03ba 8A8D ldd r24,Y+26 937 03bc 9F89 ldd r25,Y+23 938 03be 8917 cp r24,r25 939 03c0 00F4 brsh .L87 940 03c2 8F5F subi r24,lo8(-(1)) 941 03c4 8A8F std Y+26,r24 942 03c6 00C0 rjmp .L87 943 .L86: 944 03c8 8150 subi r24,lo8(-(-1)) 945 03ca 8B8F std Y+27,r24 946 .L87: 947 03cc 2A8D ldd r18,Y+26 948 03ce 988D ldd r25,Y+24 949 .L115: 950 03d0 8B8D ldd r24,Y+27 951 03d2 E885 ldd r30,Y+8 952 03d4 F985 ldd r31,Y+9 953 03d6 299F mul r18,r25 954 03d8 800D add r24,r0 955 03da 1124 clr __zero_reg__ 956 .L110: 957 03dc 1995 eicall 958 .L37: 959 03de FFEF ldi r31,-1 960 03e0 CF1A sub r12,r31 961 03e2 DF0A sbc r13,r31 962 03e4 00C0 rjmp .L30 963 .L123: 964 03e6 F7FE sbrs r15,7 965 03e8 00C0 rjmp .L89 966 03ea E12C mov r14,__zero_reg__ 967 03ec F12C mov r15,__zero_reg__ 968 .L89: 969 03ee C701 movw r24,r14 GAS LISTING /tmp/ccLyalLZ.s page 18 970 03f0 00C0 rjmp .L29 971 .L90: 972 03f2 80E0 ldi r24,0 973 03f4 90E0 ldi r25,0 974 .L29: 975 /* epilogue start */ 976 03f6 DF91 pop r29 977 03f8 CF91 pop r28 978 03fa 1F91 pop r17 979 03fc 0F91 pop r16 980 03fe FF90 pop r15 981 0400 EF90 pop r14 982 0402 DF90 pop r13 983 0404 CF90 pop r12 984 0406 BF90 pop r11 985 0408 AF90 pop r10 986 040a 9F90 pop r9 987 040c 8F90 pop r8 988 040e 7F90 pop r7 989 0410 5F90 pop r5 990 0412 4F90 pop r4 991 0414 0895 ret 992 .size TermPut.isra.0, .-TermPut.isra.0 993 .section .text.TermIOCtl,"ax",@progbits 994 .global TermIOCtl 995 .type TermIOCtl, @function 996 TermIOCtl: 997 0000 FF92 push r15 998 0002 0F93 push r16 999 0004 1F93 push r17 1000 0006 CF93 push r28 1001 0008 DF93 push r29 1002 /* prologue: function */ 1003 /* frame size = 0 */ 1004 /* stack size = 5 */ 1005 .L__stack_usage = 5 1006 000a DA01 movw r26,r20 1007 000c FC01 movw r30,r24 1008 000e C189 ldd r28,Z+17 1009 0010 D289 ldd r29,Z+18 1010 0012 6730 cpi r22,7 1011 0014 F4E0 ldi r31,4 1012 0016 7F07 cpc r23,r31 1013 0018 01F4 brne .+2 1014 001a 00C0 rjmp .L127 1015 001c 04F4 brge .L128 1016 001e 6330 cpi r22,3 1017 0020 E4E0 ldi r30,4 1018 0022 7E07 cpc r23,r30 1019 0024 01F4 brne .+2 1020 0026 00C0 rjmp .L129 1021 0028 04F4 brge .L130 1022 002a 6130 cpi r22,1 1023 002c 84E0 ldi r24,4 1024 002e 7807 cpc r23,r24 1025 0030 01F4 brne .+2 1026 0032 00C0 rjmp .L131 GAS LISTING /tmp/ccLyalLZ.s page 19 1027 0034 6230 cpi r22,2 1028 0036 7440 sbci r23,4 1029 0038 01F0 breq .+2 1030 003a 00C0 rjmp .L126 1031 003c 1C91 ld r17,X 1032 003e EC81 ldd r30,Y+4 1033 0040 FD81 ldd r31,Y+5 1034 0042 6AE0 ldi r22,lo8(10) 1035 0044 1196 adiw r26,1 1036 0046 8C91 ld r24,X 1037 0048 00C0 rjmp .L149 1038 .L130: 1039 004a 6530 cpi r22,5 1040 004c F4E0 ldi r31,4 1041 004e 7F07 cpc r23,r31 1042 0050 01F4 brne .+2 1043 0052 00C0 rjmp .L133 1044 0054 6630 cpi r22,6 1045 0056 7440 sbci r23,4 1046 0058 01F0 breq .+2 1047 005a 00C0 rjmp .L126 1048 005c 1C91 ld r17,X 1049 005e EA81 ldd r30,Y+2 1050 0060 FB81 ldd r31,Y+3 1051 0062 1196 adiw r26,1 1052 0064 8C91 ld r24,X 1053 0066 00C0 rjmp .L152 1054 .L128: 1055 0068 6531 cpi r22,21 1056 006a E4E0 ldi r30,4 1057 006c 7E07 cpc r23,r30 1058 006e 01F4 brne .+2 1059 0070 00C0 rjmp .L135 1060 0072 04F4 brge .L136 1061 0074 6331 cpi r22,19 1062 0076 84E0 ldi r24,4 1063 0078 7807 cpc r23,r24 1064 007a 01F4 brne .+2 1065 007c 00C0 rjmp .L137 1066 007e 6431 cpi r22,20 1067 0080 7440 sbci r23,4 1068 0082 01F4 brne .+2 1069 0084 00C0 rjmp .L138 1070 0086 00C0 rjmp .L126 1071 .L136: 1072 0088 6631 cpi r22,22 1073 008a F4E0 ldi r31,4 1074 008c 7F07 cpc r23,r31 1075 008e 01F4 brne .+2 1076 0090 00C0 rjmp .L139 1077 0092 6130 cpi r22,1 1078 0094 7540 sbci r23,5 1079 0096 01F0 breq .+2 1080 0098 00C0 rjmp .L126 1081 009a 8F89 ldd r24,Y+23 1082 009c 90E0 ldi r25,0 1083 009e 1396 adiw r26,2+1 GAS LISTING /tmp/ccLyalLZ.s page 20 1084 00a0 9C93 st X,r25 1085 00a2 8E93 st -X,r24 1086 00a4 1297 sbiw r26,2 1087 00a6 898D ldd r24,Y+25 1088 00a8 90E0 ldi r25,0 1089 00aa 1196 adiw r26,1 1090 00ac 9C93 st X,r25 1091 00ae 8E93 st -X,r24 1092 00b0 1596 adiw r26,4+1 1093 00b2 1C92 st X,__zero_reg__ 1094 00b4 1E92 st -X,__zero_reg__ 1095 00b6 1497 sbiw r26,4 1096 00b8 1796 adiw r26,6+1 1097 00ba 1C92 st X,__zero_reg__ 1098 00bc 1E92 st -X,__zero_reg__ 1099 00be 1697 sbiw r26,6 1100 00c0 00C0 rjmp .L126 1101 .L131: 1102 00c2 EC81 ldd r30,Y+4 1103 00c4 FD81 ldd r31,Y+5 1104 00c6 6AE0 ldi r22,lo8(10) 1105 00c8 8C91 ld r24,X 1106 00ca 00C0 rjmp .L148 1107 .L129: 1108 00cc 1C91 ld r17,X 1109 00ce 1196 adiw r26,1 1110 00d0 0C91 ld r16,X 1111 00d2 1197 sbiw r26,1 1112 00d4 1296 adiw r26,2 1113 00d6 FC90 ld r15,X 1114 00d8 1297 sbiw r26,2 1115 00da 1396 adiw r26,3 1116 00dc 8C91 ld r24,X 1117 00de EC81 ldd r30,Y+4 1118 00e0 FD81 ldd r31,Y+5 1119 00e2 6AE0 ldi r22,lo8(10) 1120 00e4 1995 eicall 1121 00e6 EC81 ldd r30,Y+4 1122 00e8 FD81 ldd r31,Y+5 1123 00ea 6AE0 ldi r22,lo8(10) 1124 00ec 8F2D mov r24,r15 1125 00ee 1995 eicall 1126 00f0 EC81 ldd r30,Y+4 1127 00f2 FD81 ldd r31,Y+5 1128 00f4 6AE0 ldi r22,lo8(10) 1129 00f6 802F mov r24,r16 1130 .L149: 1131 00f8 1995 eicall 1132 00fa EC81 ldd r30,Y+4 1133 00fc FD81 ldd r31,Y+5 1134 00fe 6AE0 ldi r22,lo8(10) 1135 0100 812F mov r24,r17 1136 .L148: 1137 0102 1995 eicall 1138 0104 00C0 rjmp .L126 1139 .L133: 1140 0106 EA81 ldd r30,Y+2 GAS LISTING /tmp/ccLyalLZ.s page 21 1141 0108 FB81 ldd r31,Y+3 1142 010a 8C91 ld r24,X 1143 010c 00C0 rjmp .L150 1144 .L127: 1145 010e 1C91 ld r17,X 1146 0110 1196 adiw r26,1 1147 0112 0C91 ld r16,X 1148 0114 1197 sbiw r26,1 1149 0116 1296 adiw r26,2 1150 0118 FC90 ld r15,X 1151 011a 1297 sbiw r26,2 1152 011c 1396 adiw r26,3 1153 011e 8C91 ld r24,X 1154 0120 EA81 ldd r30,Y+2 1155 0122 FB81 ldd r31,Y+3 1156 0124 1995 eicall 1157 0126 EA81 ldd r30,Y+2 1158 0128 FB81 ldd r31,Y+3 1159 012a 8F2D mov r24,r15 1160 012c 1995 eicall 1161 012e EA81 ldd r30,Y+2 1162 0130 FB81 ldd r31,Y+3 1163 0132 802F mov r24,r16 1164 .L152: 1165 0134 1995 eicall 1166 0136 EA81 ldd r30,Y+2 1167 0138 FB81 ldd r31,Y+3 1168 013a 812F mov r24,r17 1169 .L150: 1170 013c 1995 eicall 1171 013e 00C0 rjmp .L126 1172 .L137: 1173 0140 4D91 ld r20,X+ 1174 0142 5D91 ld r21,X+ 1175 0144 6D91 ld r22,X+ 1176 0146 7C91 ld r23,X 1177 0148 8A89 ldd r24,Y+18 1178 014a 9B89 ldd r25,Y+19 1179 014c AC89 ldd r26,Y+20 1180 014e BD89 ldd r27,Y+21 1181 0150 452B or r20,r21 1182 0152 462B or r20,r22 1183 0154 472B or r20,r23 1184 0156 01F0 breq .L141 1185 0158 A260 ori r26,2 1186 015a 00C0 rjmp .L151 1187 .L141: 1188 015c AD7F andi r26,253 1189 015e 00C0 rjmp .L151 1190 .L138: 1191 0160 4A89 ldd r20,Y+18 1192 0162 5B89 ldd r21,Y+19 1193 0164 6C89 ldd r22,Y+20 1194 0166 7D89 ldd r23,Y+21 1195 0168 61FF sbrs r22,1 1196 016a 00C0 rjmp .L142 1197 .L144: GAS LISTING /tmp/ccLyalLZ.s page 22 1198 016c 41E0 ldi r20,lo8(1) 1199 016e 50E0 ldi r21,0 1200 0170 60E0 ldi r22,0 1201 0172 70E0 ldi r23,0 1202 0174 4D93 st X+,r20 1203 0176 5D93 st X+,r21 1204 0178 6D93 st X+,r22 1205 017a 7C93 st X,r23 1206 017c 1397 sbiw r26,3 1207 017e 00C0 rjmp .L126 1208 .L139: 1209 0180 4A89 ldd r20,Y+18 1210 0182 5B89 ldd r21,Y+19 1211 0184 6C89 ldd r22,Y+20 1212 0186 7D89 ldd r23,Y+21 1213 0188 62FD sbrc r22,2 1214 018a 00C0 rjmp .L144 1215 .L142: 1216 018c 1D92 st X+,__zero_reg__ 1217 018e 1D92 st X+,__zero_reg__ 1218 0190 1D92 st X+,__zero_reg__ 1219 0192 1C92 st X,__zero_reg__ 1220 0194 1397 sbiw r26,3 1221 0196 00C0 rjmp .L126 1222 .L135: 1223 0198 4D91 ld r20,X+ 1224 019a 5D91 ld r21,X+ 1225 019c 6D91 ld r22,X+ 1226 019e 7C91 ld r23,X 1227 01a0 8A89 ldd r24,Y+18 1228 01a2 9B89 ldd r25,Y+19 1229 01a4 AC89 ldd r26,Y+20 1230 01a6 BD89 ldd r27,Y+21 1231 01a8 452B or r20,r21 1232 01aa 462B or r20,r22 1233 01ac 472B or r20,r23 1234 01ae 01F0 breq .L143 1235 01b0 A460 ori r26,4 1236 01b2 00C0 rjmp .L151 1237 .L143: 1238 01b4 AB7F andi r26,251 1239 .L151: 1240 01b6 8A8B std Y+18,r24 1241 01b8 9B8B std Y+19,r25 1242 01ba AC8B std Y+20,r26 1243 01bc BD8B std Y+21,r27 1244 .L126: 1245 01be 80E0 ldi r24,0 1246 01c0 90E0 ldi r25,0 1247 /* epilogue start */ 1248 01c2 DF91 pop r29 1249 01c4 CF91 pop r28 1250 01c6 1F91 pop r17 1251 01c8 0F91 pop r16 1252 01ca FF90 pop r15 1253 01cc 0895 ret 1254 .size TermIOCtl, .-TermIOCtl GAS LISTING /tmp/ccLyalLZ.s page 23 1255 .section .text.TermInit,"ax",@progbits 1256 .global TermInit 1257 .type TermInit, @function 1258 TermInit: 1259 0000 CF93 push r28 1260 0002 DF93 push r29 1261 /* prologue: function */ 1262 /* frame size = 0 */ 1263 /* stack size = 2 */ 1264 .L__stack_usage = 2 1265 0004 FC01 movw r30,r24 1266 0006 C189 ldd r28,Z+17 1267 0008 D289 ldd r29,Z+18 1268 000a E881 ld r30,Y 1269 000c F981 ldd r31,Y+1 1270 000e 3097 sbiw r30,0 1271 0010 01F4 brne .L154 1272 .L157: 1273 0012 9F89 ldd r25,Y+23 1274 0014 898D ldd r24,Y+25 1275 0016 989F mul r25,r24 1276 0018 C001 movw r24,r0 1277 001a 1124 clr __zero_reg__ 1278 001c 0E94 0000 call malloc 1279 0020 9D8F std Y+29,r25 1280 0022 8C8F std Y+28,r24 1281 0024 892B or r24,r25 1282 0026 01F4 brne .L165 1283 0028 00C0 rjmp .L155 1284 .L154: 1285 002a 1995 eicall 1286 002c 892B or r24,r25 1287 002e 01F0 breq .L157 1288 .L155: 1289 0030 8FEF ldi r24,lo8(-1) 1290 0032 9FEF ldi r25,lo8(-1) 1291 0034 00C0 rjmp .L158 1292 .L165: 1293 0036 CE01 movw r24,r28 1294 0038 0E94 0000 call TermClear 1295 003c 80E0 ldi r24,0 1296 003e 90E0 ldi r25,0 1297 .L158: 1298 /* epilogue start */ 1299 0040 DF91 pop r29 1300 0042 CF91 pop r28 1301 0044 0895 ret 1302 .size TermInit, .-TermInit 1303 .section .text.TermWrite,"ax",@progbits 1304 .global TermWrite 1305 .type TermWrite, @function 1306 TermWrite: 1307 /* prologue: function */ 1308 /* frame size = 0 */ 1309 /* stack size = 0 */ 1310 .L__stack_usage = 0 1311 0000 DC01 movw r26,r24 GAS LISTING /tmp/ccLyalLZ.s page 24 1312 0002 ED91 ld r30,X+ 1313 0004 FC91 ld r31,X 1314 0006 20E0 ldi r18,0 1315 0008 30E0 ldi r19,0 1316 000a 8189 ldd r24,Z+17 1317 000c 9289 ldd r25,Z+18 1318 000e 0C94 0000 jmp TermPut.isra.0 1319 .size TermWrite, .-TermWrite 1320 .section .text.TermWrite_P,"ax",@progbits 1321 .global TermWrite_P 1322 .type TermWrite_P, @function 1323 TermWrite_P: 1324 /* prologue: function */ 1325 /* frame size = 0 */ 1326 /* stack size = 0 */ 1327 .L__stack_usage = 0 1328 0000 DC01 movw r26,r24 1329 0002 ED91 ld r30,X+ 1330 0004 FC91 ld r31,X 1331 0006 21E0 ldi r18,lo8(1) 1332 0008 30E0 ldi r19,0 1333 000a 8189 ldd r24,Z+17 1334 000c 9289 ldd r25,Z+18 1335 000e 0C94 0000 jmp TermPut.isra.0 1336 .size TermWrite_P, .-TermWrite_P 1337 .section .text.TermOpen,"ax",@progbits 1338 .global TermOpen 1339 .type TermOpen, @function 1340 TermOpen: 1341 0000 CF92 push r12 1342 0002 DF92 push r13 1343 0004 EF92 push r14 1344 0006 FF92 push r15 1345 0008 0F93 push r16 1346 000a 1F93 push r17 1347 000c CF93 push r28 1348 000e DF93 push r29 1349 /* prologue: function */ 1350 /* frame size = 0 */ 1351 /* stack size = 8 */ 1352 .L__stack_usage = 8 1353 0010 7C01 movw r14,r24 1354 0012 6A01 movw r12,r20 1355 0014 FC01 movw r30,r24 1356 0016 C189 ldd r28,Z+17 1357 0018 D289 ldd r29,Z+18 1358 001a 84E0 ldi r24,lo8(4) 1359 001c 90E0 ldi r25,0 1360 001e 0E94 0000 call malloc 1361 0022 FC01 movw r30,r24 1362 0024 892B or r24,r25 1363 0026 01F0 breq .L172 1364 0028 0A89 ldd r16,Y+18 1365 002a 1B89 ldd r17,Y+19 1366 002c 2C89 ldd r18,Y+20 1367 002e 3D89 ldd r19,Y+21 1368 0030 D7FE sbrs r13,7 GAS LISTING /tmp/ccLyalLZ.s page 25 1369 0032 00C0 rjmp .L170 1370 0034 2D7F andi r18,253 1371 0036 00C0 rjmp .L173 1372 .L170: 1373 0038 2260 ori r18,2 1374 .L173: 1375 003a 0A8B std Y+18,r16 1376 003c 1B8B std Y+19,r17 1377 003e 2C8B std Y+20,r18 1378 0040 3D8B std Y+21,r19 1379 0042 F182 std Z+1,r15 1380 0044 E082 st Z,r14 1381 0046 1382 std Z+3,__zero_reg__ 1382 0048 1282 std Z+2,__zero_reg__ 1383 004a CF01 movw r24,r30 1384 004c 00C0 rjmp .L169 1385 .L172: 1386 004e 8FEF ldi r24,lo8(-1) 1387 0050 9FEF ldi r25,lo8(-1) 1388 .L169: 1389 /* epilogue start */ 1390 0052 DF91 pop r29 1391 0054 CF91 pop r28 1392 0056 1F91 pop r17 1393 0058 0F91 pop r16 1394 005a FF90 pop r15 1395 005c EF90 pop r14 1396 005e DF90 pop r13 1397 0060 CF90 pop r12 1398 0062 0895 ret 1399 .size TermOpen, .-TermOpen 1400 .section .text.TermClose,"ax",@progbits 1401 .global TermClose 1402 .type TermClose, @function 1403 TermClose: 1404 /* prologue: function */ 1405 /* frame size = 0 */ 1406 /* stack size = 0 */ 1407 .L__stack_usage = 0 1408 0000 9C01 movw r18,r24 1409 0002 2150 subi r18,1 1410 0004 3109 sbc r19,__zero_reg__ 1411 0006 2E3F cpi r18,-2 1412 0008 3F4F sbci r19,-1 1413 000a 00F4 brsh .L176 1414 000c 0E94 0000 call free 1415 0010 80E0 ldi r24,0 1416 0012 90E0 ldi r25,0 1417 0014 0895 ret 1418 .L176: 1419 0016 8FEF ldi r24,lo8(-1) 1420 0018 9FEF ldi r25,lo8(-1) 1421 001a 0895 ret 1422 .size TermClose, .-TermClose 1423 .section .rodata 1424 .type termid, @object 1425 .size termid, 9 GAS LISTING /tmp/ccLyalLZ.s page 26 1426 termid: 1427 0000 5465 726D .string "Term 1.0" 1427 2031 2E30 1427 00 1428 .ident "GCC: (GNU) 5.3.0" 1429 .global __do_copy_data GAS LISTING /tmp/ccLyalLZ.s page 27 DEFINED SYMBOLS *ABS*:0000000000000000 term.c /tmp/ccLyalLZ.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccLyalLZ.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccLyalLZ.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccLyalLZ.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccLyalLZ.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccLyalLZ.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccLyalLZ.s:10 .text.TermRefreshLineEnd:0000000000000000 TermRefreshLineEnd /tmp/ccLyalLZ.s:123 .text.TermClear:0000000000000000 TermClear /tmp/ccLyalLZ.s:153 .text.TermRefresh:0000000000000000 TermRefresh /tmp/ccLyalLZ.s:190 .text.TermInsertLine:0000000000000000 TermInsertLine /tmp/ccLyalLZ.s:245 .text.TermDeleteLine:0000000000000000 TermDeleteLine /tmp/ccLyalLZ.s:302 .text.TermDeleteChar:0000000000000000 TermDeleteChar /tmp/ccLyalLZ.s:355 .text.TermPut.isra.0:0000000000000000 TermPut.isra.0 /tmp/ccLyalLZ.s:1426 .rodata:0000000000000000 termid /tmp/ccLyalLZ.s:996 .text.TermIOCtl:0000000000000000 TermIOCtl /tmp/ccLyalLZ.s:1258 .text.TermInit:0000000000000000 TermInit /tmp/ccLyalLZ.s:1306 .text.TermWrite:0000000000000000 TermWrite /tmp/ccLyalLZ.s:1323 .text.TermWrite_P:0000000000000000 TermWrite_P /tmp/ccLyalLZ.s:1340 .text.TermOpen:0000000000000000 TermOpen /tmp/ccLyalLZ.s:1403 .text.TermClose:0000000000000000 TermClose UNDEFINED SYMBOLS memset memcpy __tablejump2__ malloc free __do_copy_data