📄 lcd2_window.lst
字号:
510 .ent window_swap_priorities 511 .type window_swap_priorities, @function 512 window_swap_priorities: 513 $LFB10: 83:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 84:/mnt/hgfs/boot/booter/source/lcd2_window.c **** void window_swap_priorities(WINDOW_ID id1, WINDOW_ID id2) 85:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 514 .loc 1 85 0 515 .frame $sp,48,$31 # vars= 0, regs= 7/0, args= 16, gp= 0 516 .mask 0x803f0000,-8GAS LISTING /tmp/ccb3AwVp.s page 12 517 .fmask 0x00000000,0 518 .set noreorder 519 .set nomacro 520 521 01e8 D0FFBD27 addiu $sp,$sp,-48 522 $LCFI2: 523 01ec 2800BFAF sw $31,40($sp) 524 $LCFI3: 525 01f0 2400B5AF sw $21,36($sp) 526 $LCFI4: 527 01f4 2000B4AF sw $20,32($sp) 528 $LCFI5: 529 01f8 1C00B3AF sw $19,28($sp) 530 $LCFI6: 531 01fc 1800B2AF sw $18,24($sp) 532 $LCFI7: 533 0200 1400B1AF sw $17,20($sp) 534 $LCFI8: 535 0204 1000B0AF sw $16,16($sp) 536 $LCFI9: 537 .loc 1 85 0 538 0208 2198A000 move $19,$5 86:/mnt/hgfs/boot/booter/source/lcd2_window.c **** DPRINTF("%d <-> %d\n", id1, id2); 87:/mnt/hgfs/boot/booter/source/lcd2_window.c **** PRIORITY p = window_get_priority(id1); 539 .loc 1 87 0 540 020c 0000000C jal window_get_priority 541 0210 21808000 move $16,$4 542 543 0214 21A04000 move $20,$2 88:/mnt/hgfs/boot/booter/source/lcd2_window.c **** windows[id1].regs->ctrl1 = (windows[id1].regs->ctrl1 & ~LCD_WINCTRL1_PRI) 544 .loc 1 88 0 545 0218 40101000 sll $2,$16,1 546 021c 21105000 addu $2,$2,$16 547 0220 C0100200 sll $2,$2,3 548 0224 21105000 addu $2,$2,$16 549 0228 0000113C lui $17,%hi(windows) 550 022c 00003126 addiu $17,$17,%lo(windows) 551 0230 80100200 sll $2,$2,2 552 0234 21105100 addu $2,$2,$17 553 0238 21206002 move $4,$19 554 023c 0000000C jal window_get_priority 555 0240 0000558C lw $21,0($2) 556 89:/mnt/hgfs/boot/booter/source/lcd2_window.c **** | LCD_WINCTRL1_PRI_N(window_get_priority(id2)); 90:/mnt/hgfs/boot/booter/source/lcd2_window.c **** windows[id2].regs->ctrl1 = (windows[id2].regs->ctrl1 & ~LCD_WINCTRL1_PRI) 557 .loc 1 90 0 558 0244 40181300 sll $3,$19,1 559 0248 21187300 addu $3,$3,$19 560 024c C0180300 sll $3,$3,3 561 .loc 1 88 0 562 0250 0400B08E lw $16,4($21) 563 .loc 1 90 0 564 0254 21187300 addu $3,$3,$19 565 .loc 1 88 0 566 0258 FF3F123C li $18,1073676288 # 0x3fff0000 567 .loc 1 90 0 568 025c 80180300 sll $3,$3,2GAS LISTING /tmp/ccb3AwVp.s page 13 569 .loc 1 88 0 570 0260 FFFF5236 ori $18,$18,0xffff 571 .loc 1 90 0 572 0264 21187100 addu $3,$3,$17 573 .loc 1 88 0 574 0268 24801202 and $16,$16,$18 575 .loc 1 90 0 576 026c 0000648C lw $4,0($3) 577 .loc 1 88 0 578 0270 80170200 sll $2,$2,30 579 0274 25800202 or $16,$16,$2 580 0278 0400B0AE sw $16,4($21) 581 .loc 1 90 0 582 027c 0400828C lw $2,4($4) 583 0280 80A71400 sll $20,$20,30 584 0284 2800BF8F lw $31,40($sp) 585 0288 24105200 and $2,$2,$18 586 028c 25105400 or $2,$2,$20 587 0290 2400B58F lw $21,36($sp) 588 0294 2000B48F lw $20,32($sp) 589 0298 1C00B38F lw $19,28($sp) 590 029c 1800B28F lw $18,24($sp) 591 02a0 1400B18F lw $17,20($sp) 592 02a4 1000B08F lw $16,16($sp) 593 02a8 3000BD27 addiu $sp,$sp,48 594 02ac 0800E003 j $31 595 02b0 040082AC sw $2,4($4) 596 597 .set macro 598 .set reorder 599 $LFE10: 600 .end window_swap_priorities 601 .align 2 602 .globl window_set_priority 603 .ent window_set_priority 604 .type window_set_priority, @function 605 window_set_priority: 606 $LFB11: 91:/mnt/hgfs/boot/booter/source/lcd2_window.c **** | LCD_WINCTRL1_PRI_N(p); 92:/mnt/hgfs/boot/booter/source/lcd2_window.c **** } 93:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 94:/mnt/hgfs/boot/booter/source/lcd2_window.c **** // This function doesn't just set the priority, 95:/mnt/hgfs/boot/booter/source/lcd2_window.c **** // it finds the window who currently has the desired priority, and swaps the two priorities 96:/mnt/hgfs/boot/booter/source/lcd2_window.c **** void window_set_priority(WINDOW_ID id, PRIORITY priority) 97:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 607 .loc 1 97 0 608 .frame $sp,32,$31 # vars= 0, regs= 4/0, args= 16, gp= 0 609 .mask 0x80070000,-4 610 .fmask 0x00000000,0 611 .set noreorder 612 .set nomacro 613 614 02b4 E0FFBD27 addiu $sp,$sp,-32 615 $LCFI10: 616 02b8 1800B2AF sw $18,24($sp) 617 $LCFI11: 618 02bc 1400B1AF sw $17,20($sp)GAS LISTING /tmp/ccb3AwVp.s page 14 619 $LCFI12: 620 02c0 1000B0AF sw $16,16($sp) 621 $LCFI13: 622 02c4 1C00BFAF sw $31,28($sp) 623 $LCFI14: 624 .loc 1 97 0 625 02c8 21908000 move $18,$4 626 02cc 2188A000 move $17,$5 627 02d0 21800000 move $16,$0 628 $L20: 98:/mnt/hgfs/boot/booter/source/lcd2_window.c **** DPRINTF("%d: %d\n", id, priority); 99:/mnt/hgfs/boot/booter/source/lcd2_window.c **** int i; 100:/mnt/hgfs/boot/booter/source/lcd2_window.c **** for(i = 0; window_get_priority(i) != priority; ++i); //Find the window with this priority 629 .loc 1 100 0 630 02d4 0000000C jal window_get_priority 631 02d8 21200002 move $4,$16 632 633 02dc FDFF5114 bne $2,$17,$L20 634 02e0 01001026 addiu $16,$16,1 635 636 02e4 FFFF1026 addiu $16,$16,-1 101:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 102:/mnt/hgfs/boot/booter/source/lcd2_window.c **** if(i != id) 103:/mnt/hgfs/boot/booter/source/lcd2_window.c **** window_swap_priorities(id, i); //If the window doesn't already have this priority, swap with the 637 .loc 1 103 0 638 .loc 1 102 0 639 02e8 08001212 beq $16,$18,$L14 640 02ec 21204002 move $4,$18 641 642 .loc 1 103 0 643 02f0 21280002 move $5,$16 104:/mnt/hgfs/boot/booter/source/lcd2_window.c **** } 644 .loc 1 104 0 645 02f4 1C00BF8F lw $31,28($sp) 646 02f8 1800B28F lw $18,24($sp) 647 02fc 1400B18F lw $17,20($sp) 648 0300 1000B08F lw $16,16($sp) 649 .loc 1 103 0 650 0304 00000008 j window_swap_priorities 651 0308 2000BD27 addiu $sp,$sp,32 652 653 $L14: 654 .loc 1 104 0 655 030c 1C00BF8F lw $31,28($sp) 656 0310 1800B28F lw $18,24($sp) 657 0314 1400B18F lw $17,20($sp) 658 0318 1000B08F lw $16,16($sp) 659 031c 0800E003 j $31 660 0320 2000BD27 addiu $sp,$sp,32 661 662 .set macro 663 .set reorder 664 $LFE11: 665 .end window_set_priority 666 .align 2 667 .globl window_enable_underflow_irq 668 .ent window_enable_underflow_irqGAS LISTING /tmp/ccb3AwVp.s page 15 669 .type window_enable_underflow_irq, @function 670 window_enable_underflow_irq: 671 $LFB12: 105:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 106:/mnt/hgfs/boot/booter/source/lcd2_window.c **** void window_enable_underflow_irq(WINDOW_ID id, void (*handler)(int, void *), void* arg, BOOL enable 107:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 672 .loc 1 107 0 673 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 674 .mask 0x00000000,0 675 .fmask 0x00000000,0 676 .set noreorder 677 .set nomacro 678 108:/mnt/hgfs/boot/booter/source/lcd2_window.c **** DPRINTF("%d: %s\n", id, enable == TRUE ? "TRUE" : "FALSE"); 109:/mnt/hgfs/boot/booter/source/lcd2_window.c **** int irq = 10 + id; 110:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 111:/mnt/hgfs/boot/booter/source/lcd2_window.c **** lcd_irq_enable(irq, handler, arg, enable); 679 .loc 1 111 0 680 0324 00000008 j lcd_irq_enable 681 0328 0A008424 addiu $4,$4,10 682 683 .set macro 684 .set reorder 685 $LFE12: 686 .end window_enable_underflow_irq 687 .align 2 688 .globl window_set_pipe 689 .ent window_set_pipe 690 .type window_set_pipe, @function 691 window_set_pipe: 692 $LFB13: 112:/mnt/hgfs/boot/booter/source/lcd2_window.c **** } 113:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 114:/mnt/hgfs/boot/booter/source/lcd2_window.c **** void window_set_pipe(WINDOW_ID id, PIPE pipe) 115:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 693 .loc 1 115 0 694 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 695 .mask 0x00000000,0 696 .fmask 0x00000000,0 697 .set noreorder 698 .set nomacro 699 116:/mnt/hgfs/boot/booter/source/lcd2_window.c **** DPRINTF("%d: %d\n", id, pipe); 117:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 118:/mnt/hgfs/boot/booter/source/lcd2_window.c **** windows[id].regs->ctrl1 = (windows[id].regs->ctrl1 & ~LCD_WINCTRL1_PIPE) 700 .loc 1 118 0 701 032c 40100400 sll $2,$4,1 702 0330 21104400 addu $2,$2,$4 703 0334 C0100200 sll $2,$2,3 704 0338 21104400 addu $2,$2,$4 705 033c 0000033C lui $3,%hi(windows) 706 0340 00006324 addiu $3,$3,%lo(windows) 707 0344 80100200 sll $2,$2,2 708 0348 21104300 addu $2,$2,$3 709 034c 0000468C lw $6,0($2) 710 0350 FFDF023C li $2,-536936448 # 0xffffffffdfff0000 711 0354 FFFF4234 ori $2,$2,0xffffGAS LISTING /tmp/ccb3AwVp.s page 16 712 0358 0400C48C lw $4,4($6) 713 035c 01000324 li $3,1 # 0x1 714 0360 0300A310 beq $5,$3,$L24 715 0364 24208200 and $4,$4,$2 716 717 0368 0800E003 j $31 718 036c 0400C4AC sw $4,4($6) 719 720 $L24: 721 0370 0020023C li $2,536870912 # 0x20000000 722 0374 25208200 or $4,$4,$2 723 0378 0800E003 j $31 724 037c 0400C4AC sw $4,4($6) 725 726 .set macro 727 .set reorder 728 $LFE13: 729 .end window_set_pipe 730 .align 2 731 .globl window_set_color_channel_orientation 732 .ent window_set_color_channel_orientation 733 .type window_set_color_channel_orientation, @function 734 window_set_color_channel_orientation: 735 $LFB14: 119:/mnt/hgfs/boot/booter/source/lcd2_window.c **** | (pipe == PIPE_RIGHT ? LCD_WINCTRL1_PIPE : 0); 120:/mnt/hgfs/boot/booter/source/lcd2_window.c **** } 121:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 122:/mnt/hgfs/boot/booter/source/lcd2_window.c **** void window_set_color_channel_orientation(WINDOW_ID id, CCO cco) 123:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 736 .loc 1 123 0 737 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 738 .mask 0x00000000,0 739 .fmask 0x00000000,0 740 .set noreorder 741 .set nomacro 742 124:/mnt/hgfs/boot/booter/source/lcd2_window.c **** DPRINTF("%d: %d\n", id, cco); 125:/mnt/hgfs/boot/booter/source/lcd2_window.c **** windows[id].regs->ctrl1 = (windows[id].regs->ctrl1 & ~LCD_WINCTRL1_CCO) 743 .loc 1 125 0 744 0380 40100400 sll $2,$4,1 745 0384 21104400 addu $2,$2,$4 746 0388 C0100200 sll $2,$2,3 747 038c 21104400 addu $2,$2,$4 748 0390 0000033C lui $3,%hi(windows) 749 0394 00006324 addiu $3,$3,%lo(windows) 750 0398 80100200 sll $2,$2,2 751 039c 21104300 addu $2,$2,$3 752 03a0 0000468C lw $6,0($2) 753 03a4 FFFE023C li $2,-16842752 # 0xfffffffffeff0000 754 03a8 FFFF4234 ori $2,$2,0xffff 755 03ac 0400C48C lw $4,4($6) 756 03b0 01000324 li $3,1 # 0x1 757 03b4 0300A310 beq $5,$3,$L27 758 03b8 24208200 and $4,$4,$2 759 760 03bc 0800E003 j $31 761 03c0 0400C4AC sw $4,4($6)GAS LISTING /tmp/ccb3AwVp.s page 17 762 763 $L27: 764 03c4 0001023C li $2,16777216 # 0x1000000 765 03c8 25208200 or $4,$4,$2 766 03cc 0800E003 j $31 767 03d0 0400C4AC sw $4,4($6) 768 769 .set macro 770 .set reorder 771 $LFE14: 772 .end window_set_color_channel_orientation 773 .align 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -