📄 lcd2_frame_buffer.lst
字号:
499 .loc 1 74 0 500 0468 0700D810 beq $6,$24,$L50 501 046c 0100E326 addiu $3,$23,1 502 503 0470 1A00C401 div $0,$14,$4 504 0474 02008014 bne $4,$0,1f 505 0478 00000000 nop 506 047c 0D000700 break 7 507 1: 508 0480 10100000 mfhi $2 509 .loc 1 75 0 510 0484 0BB86200 movn $23,$3,$2 511 $L50: 76:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int r_dir = (r2 > r1) ? 1 : -1; 512 .loc 1 76 0 513 0488 FFFF0224 li $2,-1 # 0xffffffffffffffff 514 048c 01000824 li $8,1 # 0x1 77:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 78:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int g_delta = (g2 > g1) ? (g2 - g1) : (g1 - g2); 515 .loc 1 78 0 516 0490 2B302703 sltu $6,$25,$7 517 0494 2320F900 subu $4,$7,$25 518 0498 23182703 subu $3,$25,$7 519 .loc 1 76 0 520 049c 0A404500 movz $8,$2,$5 521 04a0 4400A8AF sw $8,68($sp) 522 .loc 1 78 0 523 04a4 0A206600 movz $4,$3,$6 79:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int g_mod = (g1 == g2) ? 0 : scaled_width / g_delta; 524 .loc 1 79 0 525 04a8 06002713 beq $25,$7,$L56 526 04ac 21A80000 move $21,$0 527 528 04b0 1A00C401 div $0,$14,$4 529 04b4 02008014 bne $4,$0,1f 530 04b8 00000000 nop 531 04bc 0D000700 break 7 532 1: 533 04c0 12A80000 mflo $21 534 $L56: 80:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** if((g2 != g1) && scaled_width % g_delta != 0) 81:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** g_mod++; 535 .loc 1 81 0 536 .loc 1 80 0 537 04c4 0700F910 beq $7,$25,$L57 538 04c8 0100A326 addiu $3,$21,1 539 540 04cc 1A00C401 div $0,$14,$4 541 04d0 02008014 bne $4,$0,1f 542 04d4 00000000 nop 543 04d8 0D000700 break 7 544 1: 545 04dc 10100000 mfhi $2 546 .loc 1 81 0 547 04e0 0BA86200 movn $21,$3,$2 548 $L57: 82:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int g_dir = (g2 > g1) ? 1 : -1;GAS LISTING /tmp/cc7wtJ5I.s page 17 549 .loc 1 82 0 550 04e4 FFFF0224 li $2,-1 # 0xffffffffffffffff 551 04e8 01000724 li $7,1 # 0x1 83:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 84:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int b_delta = (b2 > b1) ? (b2 - b1) : (b1 - b2); 552 .loc 1 84 0 553 04ec 2B280902 sltu $5,$16,$9 554 04f0 23203001 subu $4,$9,$16 555 04f4 23180902 subu $3,$16,$9 556 .loc 1 82 0 557 04f8 0A384600 movz $7,$2,$6 558 04fc 4800A7AF sw $7,72($sp) 559 .loc 1 84 0 560 0500 0A206500 movz $4,$3,$5 85:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int b_mod = (b1 == b2) ? 0 : scaled_width / b_delta; 561 .loc 1 85 0 562 0504 06000912 beq $16,$9,$L63 563 0508 21A00000 move $20,$0 564 565 050c 1A00C401 div $0,$14,$4 566 0510 02008014 bne $4,$0,1f 567 0514 00000000 nop 568 0518 0D000700 break 7 569 1: 570 051c 12A00000 mflo $20 571 $L63: 86:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** if((b2 != b1) && scaled_width % b_delta != 0) 87:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** b_mod++; 572 .loc 1 87 0 573 .loc 1 86 0 574 0520 07003011 beq $9,$16,$L64 575 0524 01008326 addiu $3,$20,1 576 577 0528 1A00C401 div $0,$14,$4 578 052c 02008014 bne $4,$0,1f 579 0530 00000000 nop 580 0534 0D000700 break 7 581 1: 582 0538 10100000 mfhi $2 583 .loc 1 87 0 584 053c 0BA06200 movn $20,$3,$2 585 $L64: 88:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int b_dir = (b2 > b1) ? 1 : -1; 586 .loc 1 88 0 587 0540 FFFF0224 li $2,-1 # 0xffffffffffffffff 588 0544 01000324 li $3,1 # 0x1 589 0548 0A184500 movz $3,$2,$5 590 054c 4C00A3AF sw $3,76($sp) 89:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 90:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** DPRINTF("FB: %X, W: %d, H: %d, BPP: %d, Mem Width: %d\n", address, info->width, info->height, info 91:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** DPRINTF("A (%d->%d), R (%d->%d), G (%d->%d), B(%d->%d)\n", a1, a2, r1, r2, g1, g2, b1, b2); 92:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** DPRINTF("A: (%d,%d), R: (%d,%d), G: (%d,%d), B: (%d,%d)\n", a_mod, a_dir, r_mod, r_dir, g_mod, g_d 93:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 94:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** for(x = 0; x < scaled_width; ++x) //increment through columns 591 .loc 1 94 0 592 0550 8500C019 blez $14,$L92 593 0554 21400000 move $8,$0GAS LISTING /tmp/cc7wtJ5I.s page 18 594 595 0558 40008A25 addiu $10,$12,64 596 055c 21904001 move $18,$10 597 0560 21984001 move $19,$10 598 $L90: 95:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** { 96:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** if((x % width_scale) == 0) 599 .loc 1 96 0 600 0564 1A000F01 div $0,$8,$15 601 0568 0200E015 bne $15,$0,1f 602 056c 00000000 nop 603 0570 0D000700 break 7 604 1: 605 0574 10100000 mfhi $2 606 0578 4B004014 bne $2,$0,$L70 607 057c 00000000 nop 608 97:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** { 98:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** for(y = 0; y < info->height; ++y) //incrment through each row in this column 609 .loc 1 98 0 610 0580 4400898D lw $9,68($12) 611 0584 0900201D bgtz $9,$L85 612 0588 21580000 move $11,$0 613 614 058c AA010008 j $L70 615 0590 00000000 nop 616 617 $L95: 618 .loc 2 277 0 99:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** { 100:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** fb_index = (y * info->width) + (x / width_scale); //calculate the index into the frame buffer f 101:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** switch(info->pixel_info.memory_width) //we have to index into the right data type depending on 619 .loc 1 101 0 620 0594 AC008210 beq $4,$2,$L75 621 0598 21308001 move $6,$12 622 623 $L73: 624 .loc 1 98 0 625 059c 01006B25 addiu $11,$11,1 626 05a0 2A106901 slt $2,$11,$9 627 05a4 40004010 beq $2,$0,$L70 628 05a8 00000000 nop 629 630 $L85: 631 .loc 1 100 0 632 05ac 1A000F01 div $0,$8,$15 633 05b0 0200E015 bne $15,$0,1f 634 05b4 00000000 nop 635 05b8 0D000700 break 7 636 1: 637 05bc 4000838D lw $3,64($12) 638 .loc 1 101 0 639 05c0 0C00848D lw $4,12($12) 640 05c4 10000224 li $2,16 # 0x10 641 .loc 1 100 0 642 .loc 1 101 0 643 05c8 72008210 beq $4,$2,$L78GAS LISTING /tmp/cc7wtJ5I.s page 19 644 05cc 00006B70 madd $3,$11 645 646 05d0 11008228 slt $2,$4,17 647 05d4 EFFF4014 bne $2,$0,$L95 648 05d8 08000224 li $2,8 # 0x8 649 650 05dc 20000224 li $2,32 # 0x20 651 .loc 2 277 0 652 .loc 1 101 0 653 05e0 EEFF8214 bne $4,$2,$L73 654 05e4 21308001 move $6,$12 655 102:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** { 103:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** case 8: ((unsigned char*) (address))[fb_index] = (unsigned char) pixel_convert(info->pixel_i 104:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** case 16: ((unsigned short*)(address))[fb_index] = (unsigned short) pixel_convert(info->pixel_i 105:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** case 32: ((unsigned int*) (address))[fb_index] = (unsigned int) pixel_convert(info->pixel_i 656 .loc 1 105 0 657 05e8 12380000 mflo $7 658 05ec 80100700 sll $2,$7,2 659 05f0 21485E00 addu $9,$2,$fp 660 $LBB11: 661 .loc 2 277 0 662 05f4 2138A003 move $7,$sp 663 $L82: 664 05f8 0000C28C lw $2,0($6) 665 05fc 0400C38C lw $3,4($6) 666 0600 0800C48C lw $4,8($6) 667 0604 0C00C58C lw $5,12($6) 668 0608 1000C624 addiu $6,$6,16 669 060c 0000E2AC sw $2,0($7) 670 0610 0400E3AC sw $3,4($7) 671 0614 0800E4AC sw $4,8($7) 672 0618 0C00E5AC sw $5,12($7) 673 061c F6FFD314 bne $6,$19,$L82 674 0620 1000E724 addiu $7,$7,16 675 676 $LBB12: 677 .loc 2 278 0 678 0624 3000A78F lw $7,48($sp) 679 0628 2000A38F lw $3,32($sp) 680 062c 3C00A68F lw $6,60($sp) 681 0630 2C00A28F lw $2,44($sp) 682 0634 0738F800 sra $7,$24,$7 683 0638 04386700 sll $7,$7,$3 684 063c 0730D100 sra $6,$17,$6 685 0640 1000A38F lw $3,16($sp) 686 0644 04304600 sll $6,$6,$2 687 0648 3400A58F lw $5,52($sp) 688 064c 1C00A28F lw $2,28($sp) 689 0650 2400A48F lw $4,36($sp) 690 0654 2438E300 and $7,$7,$3 691 0658 1400A38F lw $3,20($sp) 692 065c 2430C200 and $6,$6,$2 693 0660 0728B900 sra $5,$25,$5 694 0664 3800A28F lw $2,56($sp) 695 0668 04288500 sll $5,$5,$4 696 066c 2800A48F lw $4,40($sp)GAS LISTING /tmp/cc7wtJ5I.s page 20 697 0670 2428A300 and $5,$5,$3 698 0674 1800A38F lw $3,24($sp) 699 0678 07105000 sra $2,$16,$2 700 067c 2530C700 or $6,$6,$7 701 0680 04108200 sll $2,$2,$4 702 0684 2530C500 or $6,$6,$5 703 0688 24104300 and $2,$2,$3 704 068c 2530C200 or $6,$6,$2 705 $LBE12: 706 $LBE11: 707 .loc 2 277 0 708 0690 000026AD sw $6,0($9) 709 0694 4400898D lw $9,68($12) 710 $L96: 711 .loc 1 98 0 712 0698 01006B25 addiu $11,$11,1 713 069c 2A106901 slt $2,$11,$9 714 06a0 C2FF4014 bne $2,$0,$L85 715 06a4 00000000 nop 716 717 $L70: 106:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** } 107:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** } 108:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** } 109:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 110:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** //increment/decrement the shade of each color element 111:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** if(a_mod && (x % a_mod) == 0) 718 .loc 1 111 0 719 06a8 0A00C012 beq $22,$0,$L86 720 06ac 00000000 nop 721 722 06b0 1A001601 div $0,$8,$22 723 06b4 0200C016 bne $22,$0,1f 724 06b8 00000000 nop 725 06bc 0D000700 break 7 726 1: 727 06c0 10100000 mfhi $2 112:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** a1 += a_dir; 728 .loc 1 112 0 729 .loc 1 111 0 730 06c4 03004014 bne $2,$0,$L86 731 06c8 4000A38F lw $3,64($sp) 732 733 .loc 1 112 0 734 06cc 21107100 addu $2,$3,$17 735 06d0 FF005130 andi $17,$2,0x00ff 736 $L86: 113:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** if(r_mod && (x % r_mod) == 0) 737 .loc 1 113 0 738 06d4 0A00E012 beq $23,$0,$L87 739 06d8 00000000 nop 740 741 06dc 1A001701 div $0,$8,$23 742 06e0 0200E016 bne $23,$0,1f 743 06e4 00000000 nop 744 06e8 0D000700 break 7 745 1:GAS LISTING /tmp/cc7wtJ5I.s page 21 746 06ec 10100000 mfhi $2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -