📄 lcd2_frame_buffer.lst
字号:
114:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** r1 += r_dir; 747 .loc 1 114 0 748 .loc 1 113 0 749 06f0 03004014 bne $2,$0,$L87 750 06f4 4400A38F lw $3,68($sp) 751 752 .loc 1 114 0 753 06f8 21107800 addu $2,$3,$24 754 06fc FF005830 andi $24,$2,0x00ff 755 $L87: 115:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** if(g_mod && (x % g_mod) == 0) 756 .loc 1 115 0 757 0700 0A00A012 beq $21,$0,$L88 758 0704 00000000 nop 759 760 0708 1A001501 div $0,$8,$21 761 070c 0200A016 bne $21,$0,1f 762 0710 00000000 nop 763 0714 0D000700 break 7 764 1: 765 0718 10100000 mfhi $2 116:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** g1 += g_dir; 766 .loc 1 116 0 767 .loc 1 115 0 768 071c 03004014 bne $2,$0,$L88 769 0720 4800A38F lw $3,72($sp) 770 771 .loc 1 116 0 772 0724 21107900 addu $2,$3,$25 773 0728 FF005930 andi $25,$2,0x00ff 774 $L88: 117:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** if(b_mod && (x % b_mod) == 0) 775 .loc 1 117 0 776 072c 0A008012 beq $20,$0,$L69 777 0730 00000000 nop 778 779 0734 1A001401 div $0,$8,$20 780 0738 02008016 bne $20,$0,1f 781 073c 00000000 nop 782 0740 0D000700 break 7 783 1: 784 0744 10100000 mfhi $2 118:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** b1 += b_dir; 785 .loc 1 118 0 786 .loc 1 117 0 787 0748 03004014 bne $2,$0,$L69 788 074c 4C00A38F lw $3,76($sp) 789 790 .loc 1 118 0 791 0750 21107000 addu $2,$3,$16 792 0754 FF005030 andi $16,$2,0x00ff 793 $L69: 794 .loc 1 94 0 795 0758 01000825 addiu $8,$8,1 796 075c 2A100E01 slt $2,$8,$14 797 0760 80FF4014 bne $2,$0,$L90GAS LISTING /tmp/cc7wtJ5I.s page 22 798 0764 00000000 nop 799 800 $L92: 801 0768 7000BE8F lw $fp,112($sp) 802 076c 6C00B78F lw $23,108($sp) 803 0770 6800B68F lw $22,104($sp) 804 0774 6400B58F lw $21,100($sp) 805 0778 6000B48F lw $20,96($sp) 806 077c 5C00B38F lw $19,92($sp) 807 0780 5800B28F lw $18,88($sp) 808 0784 5400B18F lw $17,84($sp) 809 0788 5000B08F lw $16,80($sp) 810 078c 0800E003 j $31 811 0790 7800BD27 addiu $sp,$sp,120 812 813 $L78: 814 .loc 1 104 0 815 0794 12180000 mflo $3 816 0798 40100300 sll $2,$3,1 817 079c 21685E00 addu $13,$2,$fp 818 $LBB13: 819 .loc 2 277 0 820 07a0 21308001 move $6,$12 821 07a4 2138A003 move $7,$sp 822 $L79: 823 07a8 0000C28C lw $2,0($6) 824 07ac 0400C38C lw $3,4($6) 825 07b0 0800C48C lw $4,8($6) 826 07b4 0C00C58C lw $5,12($6) 827 07b8 1000C624 addiu $6,$6,16 828 07bc 0000E2AC sw $2,0($7) 829 07c0 0400E3AC sw $3,4($7) 830 07c4 0800E4AC sw $4,8($7) 831 07c8 0C00E5AC sw $5,12($7) 832 07cc F6FFCA14 bne $6,$10,$L79 833 07d0 1000E724 addiu $7,$7,16 834 835 $LBB14: 836 .loc 2 278 0 837 07d4 3000A78F lw $7,48($sp) 838 07d8 2000A38F lw $3,32($sp) 839 07dc 3C00A68F lw $6,60($sp) 840 07e0 2C00A28F lw $2,44($sp) 841 07e4 0738F800 sra $7,$24,$7 842 07e8 04386700 sll $7,$7,$3 843 07ec 0730D100 sra $6,$17,$6 844 07f0 1000A38F lw $3,16($sp) 845 07f4 04304600 sll $6,$6,$2 846 07f8 3400A58F lw $5,52($sp) 847 07fc 1C00A28F lw $2,28($sp) 848 0800 2400A48F lw $4,36($sp) 849 0804 2438E300 and $7,$7,$3 850 0808 1400A38F lw $3,20($sp) 851 080c 2430C200 and $6,$6,$2 852 0810 0728B900 sra $5,$25,$5 853 0814 3800A28F lw $2,56($sp) 854 0818 04288500 sll $5,$5,$4GAS LISTING /tmp/cc7wtJ5I.s page 23 855 081c 2800A48F lw $4,40($sp) 856 0820 2428A300 and $5,$5,$3 857 0824 1800A38F lw $3,24($sp) 858 0828 07105000 sra $2,$16,$2 859 082c 2530C700 or $6,$6,$7 860 0830 04108200 sll $2,$2,$4 861 0834 2530C500 or $6,$6,$5 862 0838 24104300 and $2,$2,$3 863 083c 2530C200 or $6,$6,$2 864 .loc 2 277 0 865 0840 67010008 j $L73 866 0844 0000A6A5 sh $6,0($13) 867 868 $L75: 869 $LBE14: 870 $LBE13: 871 .loc 1 103 0 872 0848 12100000 mflo $2 873 084c 2148C203 addu $9,$fp,$2 874 $LBB15: 875 .loc 2 277 0 876 0850 2138A003 move $7,$sp 877 $L76: 878 0854 0000C28C lw $2,0($6) 879 0858 0400C38C lw $3,4($6) 880 085c 0800C48C lw $4,8($6) 881 0860 0C00C58C lw $5,12($6) 882 0864 1000C624 addiu $6,$6,16 883 0868 0000E2AC sw $2,0($7) 884 086c 0400E3AC sw $3,4($7) 885 0870 0800E4AC sw $4,8($7) 886 0874 0C00E5AC sw $5,12($7) 887 0878 F6FFD214 bne $6,$18,$L76 888 087c 1000E724 addiu $7,$7,16 889 890 $LBB16: 891 .loc 2 278 0 892 0880 3000A78F lw $7,48($sp) 893 0884 2000A38F lw $3,32($sp) 894 0888 3C00A68F lw $6,60($sp) 895 088c 2C00A28F lw $2,44($sp) 896 0890 0738F800 sra $7,$24,$7 897 0894 04386700 sll $7,$7,$3 898 0898 0730D100 sra $6,$17,$6 899 089c 1000A38F lw $3,16($sp) 900 08a0 04304600 sll $6,$6,$2 901 08a4 3400A58F lw $5,52($sp) 902 08a8 1C00A28F lw $2,28($sp) 903 08ac 2400A48F lw $4,36($sp) 904 08b0 2438E300 and $7,$7,$3 905 08b4 1400A38F lw $3,20($sp) 906 08b8 2430C200 and $6,$6,$2 907 08bc 0728B900 sra $5,$25,$5 908 08c0 3800A28F lw $2,56($sp) 909 08c4 04288500 sll $5,$5,$4 910 08c8 2800A48F lw $4,40($sp) 911 08cc 2428A300 and $5,$5,$3GAS LISTING /tmp/cc7wtJ5I.s page 24 912 08d0 1800A38F lw $3,24($sp) 913 08d4 07105000 sra $2,$16,$2 914 08d8 2530C700 or $6,$6,$7 915 08dc 04108200 sll $2,$2,$4 916 08e0 2530C500 or $6,$6,$5 917 08e4 24104300 and $2,$2,$3 918 08e8 2530C200 or $6,$6,$2 919 $LBE16: 920 $LBE15: 921 .loc 2 277 0 922 08ec 000026A1 sb $6,0($9) 923 08f0 A6010008 j $L96 924 08f4 4400898D lw $9,68($12) 925 926 .set macro 927 .set reorder 928 $LFE6: 929 .end fb_fill_horizontal_gradient 930 .align 2 931 .globl fb_fill_vertical_gradient 932 .ent fb_fill_vertical_gradient 933 .type fb_fill_vertical_gradient, @function 934 fb_fill_vertical_gradient: 935 $LFB7: 119:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** } 120:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** } 121:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 122:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** void fb_fill_vertical_gradient(FRAME_BUFFER_ADDRESS address, const FRAME_BUFFER_INFO* info, uint8 a 123:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** { 936 .loc 1 123 0 937 .frame $sp,120,$31 # vars= 80, regs= 9/0, args= 0, gp= 0 938 .mask 0x40ff0000,-8 939 .fmask 0x00000000,0 940 .set noreorder 941 .set nomacro 942 943 08f8 88FFBD27 addiu $sp,$sp,-120 944 $LCFI18: 945 08fc 9000A893 lbu $8,144($sp) 946 0900 7000BEAF sw $fp,112($sp) 947 $LCFI19: 948 0904 6C00B7AF sw $23,108($sp) 949 $LCFI20: 950 0908 5400B1AF sw $17,84($sp) 951 $LCFI21: 952 090c 5000B0AF sw $16,80($sp) 953 $LCFI22: 954 0910 6800B6AF sw $22,104($sp) 955 $LCFI23: 956 0914 6400B5AF sw $21,100($sp) 957 $LCFI24: 958 0918 6000B4AF sw $20,96($sp) 959 $LCFI25: 960 091c 5C00B3AF sw $19,92($sp) 961 $LCFI26: 962 0920 5800B2AF sw $18,88($sp) 963 $LCFI27:GAS LISTING /tmp/cc7wtJ5I.s page 25 124:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int x, y, fb_index; 125:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int height = info->height; 964 .loc 1 125 0 965 0924 4400A38C lw $3,68($5) 966 .loc 1 123 0 967 0928 FF00D130 andi $17,$6,0x00ff 968 092c 2168A000 move $13,$5 126:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int height_scale = 100; 969 .loc 1 126 0 970 0930 64000F24 li $15,100 # 0x64 127:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** //We have to scale up the height in order to get the necessary resolution to do a clean gradient 128:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int scaled_height = height * height_scale; 129:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 130:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** //calculate how many color shades to increment/decrement with each pixel. 131:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int a_delta = (a2 > a1) ? (a2 - a1) : (a1 - a2); //compute the delta between the two colors 971 .loc 1 131 0 972 0934 2B502802 sltu $10,$17,$8 973 0938 23281101 subu $5,$8,$17 974 093c 23102802 subu $2,$17,$8 975 .loc 1 123 0 976 0940 FF00F830 andi $24,$7,0x00ff 977 .loc 1 128 0 978 0944 02706F70 mul $14,$3,$15 979 .loc 1 131 0 980 0948 0A284A00 movz $5,$2,$10 981 .loc 1 123 0 982 094c 21F08000 move $fp,$4 983 0950 8800B993 lbu $25,136($sp) 984 0954 8C00B093 lbu $16,140($sp) 985 0958 9400A693 lbu $6,148($sp) 986 095c 9800A793 lbu $7,152($sp) 987 0960 9C00A993 lbu $9,156($sp) 132:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** int a_mod = (a1 == a2) ? 0 : scaled_height / a_delta; //compute the number of color changes neede 988 .loc 1 132 0 989 0964 06002812 beq $17,$8,$L101 990 0968 21B80000 move $23,$0 991 992 096c 1A00C501 div $0,$14,$5 993 0970 0200A014 bne $5,$0,1f 994 0974 00000000 nop 995 0978 0D000700 break 7 996 1: 997 097c 12B80000 mflo $23 998 $L101: 133:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** if((a2 != a1) && scaled_height % a_delta != 0) //if not an even division, round up one so we do 134:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** a_mod++; 999 .loc 1 134 0 1000 .loc 1 133 0 1001 0980 07001111 beq $8,$17,$L102 1002 0984 0100E326 addiu $3,$23,1 1003 1004 0988 1A00C501 div $0,$14,$5 1005 098c 0200A014 bne $5,$0,1f 1006 0990 00000000 nop 1007 0994 0D000700 break 7 1008 1: 1009 0998 10100000 mfhi $2GAS LISTING /tmp/cc7wtJ5I.s
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -