📄 lcd2_hardware_cursor.lst
字号:
GAS LISTING /tmp/ccC8vjp9.s page 1 1 .section .mdebug.abi32 2 .previous 3 .section .debug_abbrev,"",@progbits 4 $Ldebug_abbrev0: 5 .section .debug_info,"",@progbits 6 $Ldebug_info0: 7 .section .debug_line,"",@progbits 8 $Ldebug_line0: 9 0000 1D010000 .text 9 0200DB00 9 00000101 9 FB0E0A00 9 01010101 10 $Ltext0: 11 .data 12 .align 2 13 .type lcd, @object 14 .size lcd, 4 15 lcd: 16 0000 000000B5 .word -1258291200 17 0004 00000000 .text 17 00000000 17 00000000 18 .align 2 19 .globl hwc_set_color 20 .ent hwc_set_color 21 .type hwc_set_color, @function 22 hwc_set_color: 23 $LFB3: 24 .file 1 "/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c" 1:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** #include "example.h" 2:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** #include "image.h" 3:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** #include "frame_buffer.h" 4:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** 5:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** //#undef LCD_PHYS_ADDR 6:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** //#define LCD_PHYS_ADDR 0x00500000 7:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** static AU1200_LCD* lcd = (AU1200_LCD*) KSEG1(LCD_PHYS_ADDR); 8:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** 9:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** 10:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** void 11:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** hwc_set_color(int index, uint32 color) 12:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** { 25 .loc 1 12 0 26 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 27 .mask 0x00000000,0 28 .fmask 0x00000000,0 29 .set noreorder 30 .set nomacro 31 13:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** DPRINTF("%d: %X\n", index, color); 14:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** switch(index) 32 .loc 1 14 0 33 0000 01000224 li $2,1 # 0x1 34 0004 09008210 beq $4,$2,$L4 35 0008 02008228 slt $2,$4,2 36 37 000c 11004014 bne $2,$0,$L10GAS LISTING /tmp/ccC8vjp9.s page 2 38 0010 02000224 li $2,2 # 0x2 39 40 0014 0A008210 beq $4,$2,$L5 41 0018 03000224 li $2,3 # 0x3 42 43 001c 11008210 beq $4,$2,$L6 44 0020 00000000 nop 45 46 0024 0800E003 j $31 47 0028 00000000 nop 48 49 $L4: 15:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** { 16:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** case 0: lcd->hwc.cursorcolor0 = color; break; 17:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** case 1: lcd->hwc.cursorcolor1 = color; break; 50 .loc 1 17 0 51 002c 0000023C lui $2,%hi(lcd) 52 0030 0000438C lw $3,%lo(lcd)($2) 53 0034 3C0065AC sw $5,60($3) 54 0038 0800E003 j $31 55 003c 00000000 nop 56 57 $L5: 18:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** case 2: lcd->hwc.cursorcolor2 = color; break; 58 .loc 1 18 0 59 0040 0000023C lui $2,%hi(lcd) 60 0044 0000438C lw $3,%lo(lcd)($2) 61 0048 400065AC sw $5,64($3) 62 004c 0800E003 j $31 63 0050 00000000 nop 64 65 $L10: 66 .loc 1 16 0 67 .loc 1 14 0 68 0054 08008010 beq $4,$0,$L3 69 0058 0000023C lui $2,%hi(lcd) 70 71 005c 0800E003 j $31 72 0060 00000000 nop 73 74 $L6: 19:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** case 3: lcd->hwc.cursorcolor3 = color; break; 75 .loc 1 19 0 76 0064 0000023C lui $2,%hi(lcd) 77 0068 0000438C lw $3,%lo(lcd)($2) 78 006c 440065AC sw $5,68($3) 79 0070 0800E003 j $31 80 0074 00000000 nop 81 82 $L3: 83 .loc 1 16 0 84 0078 0000438C lw $3,%lo(lcd)($2) 85 007c 380065AC sw $5,56($3) 86 0080 0800E003 j $31 87 0084 00000000 nop 88 89 .set macroGAS LISTING /tmp/ccC8vjp9.s page 3 90 .set reorder 91 $LFE3: 92 .end hwc_set_color 93 .align 2 94 .globl hwc_load_image 95 .ent hwc_load_image 96 .type hwc_load_image, @function 97 hwc_load_image: 98 $LFB4: 20:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** default: break; 21:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** } 22:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** } 23:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** 24:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** typedef struct 25:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** { 26:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** uint32 color; 27:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** BOOL used; 28:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** } COLOR_MAP; 29:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** 30:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** int 31:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** hwc_load_image(IMAGE* cursor, void* hwc_address) 32:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** { 99 .loc 1 32 0 100 .frame $sp,104,$31 # vars= 72, regs= 1/0, args= 24, gp= 0 101 .mask 0x80000000,-8 102 .fmask 0x00000000,0 103 .set noreorder 104 .set nomacro 105 106 0088 98FFBD27 addiu $sp,$sp,-104 107 $LCFI0: 108 008c 6000BFAF sw $31,96($sp) 109 $LCFI1: 33:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** DPRINTF("%s: (%X)\n", cursor->info.description, cursor); 34:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** FRAME_BUFFER_INFO info; 35:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** info.pixel_info.pixel_format = PF_2BPP; 36:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** info.pixel_info.pixel_ordering = PO_3; 37:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** info.pixel_info.bpp = 2; 38:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** info.pixel_info.memory_width = 2; 39:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** info.width = 32; 40:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** info.height = 32; 41:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** 42:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** fb_palatize_image((FRAME_BUFFER_ADDRESS*) &lcd->cursorpattern, &info, cursor, &lcd->hwc.cursorcolo 110 .loc 1 42 0 111 0090 0000023C lui $2,%hi(lcd) 112 0094 0000438C lw $3,%lo(lcd)($2) 113 .loc 1 35 0 114 0098 01000224 li $2,1 # 0x1 115 .loc 1 37 0 116 009c 02000824 li $8,2 # 0x2 117 .loc 1 39 0 118 00a0 20000924 li $9,32 # 0x20 119 .loc 1 35 0 120 00a4 1800A2AF sw $2,24($sp) 121 .loc 1 42 0 122 00a8 21308000 move $6,$4 123 00ac 38006724 addiu $7,$3,56GAS LISTING /tmp/ccC8vjp9.s page 4 124 00b0 00086424 addiu $4,$3,2048 125 00b4 1800A527 addiu $5,$sp,24 126 .loc 1 36 0 127 00b8 03000324 li $3,3 # 0x3 128 .loc 1 42 0 129 00bc 04000224 li $2,4 # 0x4 130 .loc 1 36 0 131 00c0 1C00A3AF sw $3,28($sp) 132 .loc 1 38 0 133 00c4 2400A8AF sw $8,36($sp) 134 .loc 1 40 0 135 00c8 5C00A9AF sw $9,92($sp) 136 .loc 1 42 0 137 00cc 1000A2AF sw $2,16($sp) 138 .loc 1 37 0 139 00d0 2000A8AF sw $8,32($sp) 140 .loc 1 39 0 141 .loc 1 42 0 142 00d4 0000000C jal fb_palatize_image 143 00d8 5800A9AF sw $9,88($sp) 144 43:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** } 145 .loc 1 43 0 146 00dc 6000BF8F lw $31,96($sp) 147 00e0 0800E003 j $31 148 00e4 6800BD27 addiu $sp,$sp,104 149 150 .set macro 151 .set reorder 152 $LFE4: 153 .end hwc_load_image 154 .align 2 155 .globl hwc_set_position 156 .ent hwc_set_position 157 .type hwc_set_position, @function 158 hwc_set_position: 159 $LFB5: 44:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** 45:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** void 46:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** hwc_set_position(int x, int y, int x_offset, int y_offset) 47:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** { 160 .loc 1 47 0 161 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 162 .mask 0x00000000,0 163 .fmask 0x00000000,0 164 .set noreorder 165 .set nomacro 166 48:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** DPRINTF("XY(%d, %d), OFFSET_XY(%d, %d)\n", x, y, x_offset, y_offset); 49:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** lcd->hwc.cursorpos = LCD_CURSORPOS_HWCXOFF_N(x_offset) 167 .loc 1 49 0 168 00e8 C0360600 sll $6,$6,27 169 00ec 00240400 sll $4,$4,16 170 00f0 0000023C lui $2,%hi(lcd) 171 00f4 2530C400 or $6,$6,$4 172 00f8 0000438C lw $3,%lo(lcd)($2) 173 00fc C03A0700 sll $7,$7,11GAS LISTING /tmp/ccC8vjp9.s page 5 174 0100 2530C700 or $6,$6,$7 175 0104 2530C500 or $6,$6,$5 176 0108 340066AC sw $6,52($3) 177 010c 0800E003 j $31 178 0110 00000000 nop 179 180 .set macro 181 .set reorder 182 $LFE5: 183 .end hwc_set_position 184 .align 2 185 .globl hwc_enable 186 .ent hwc_enable 187 .type hwc_enable, @function 188 hwc_enable: 189 $LFB6: 50:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** | LCD_CURSORPOS_HWCXPOS_N(x) 51:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** | LCD_CURSORPOS_HWCYOFF_N(y_offset) 52:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** | LCD_CURSORPOS_HWCYPOS_N(y); 53:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** } 54:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** 55:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** void 56:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** hwc_enable(BOOL enable) 57:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** { 190 .loc 1 57 0 191 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 192 .mask 0x00000000,0 193 .fmask 0x00000000,0 194 .set noreorder 195 .set nomacro 196 58:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** DPRINTF("%s\n", (enable == TRUE) ? "TRUE" : "FALSE"); 59:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** lcd->hwc.cursorctrl = (enable == TRUE) ? LCD_HWCCON_EN : 0; 197 .loc 1 59 0 198 0114 0000023C lui $2,%hi(lcd) 199 0118 0000438C lw $3,%lo(lcd)($2) 200 011c 01008438 xori $4,$4,0x1 201 0120 0100842C sltu $4,$4,1 202 0124 300064AC sw $4,48($3) 203 0128 0800E003 j $31 204 012c 00000000 nop 205 206 .set macro 207 .set reorder 208 $LFE6: 209 .end hwc_enable 210 .align 2 211 .globl hwc_get_pallete 212 .ent hwc_get_pallete 213 .type hwc_get_pallete, @function 214 hwc_get_pallete: 215 $LFB7: 60:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** } 61:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** 62:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** uint32* 63:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** hwc_get_pallete() 64:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** {GAS LISTING /tmp/ccC8vjp9.s page 6 216 .loc 1 64 0 217 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 218 .mask 0x00000000,0 219 .fmask 0x00000000,0 220 .set noreorder 221 .set nomacro 222 65:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** return (uint32*) &lcd->hwc.cursorcolor0; 223 .loc 1 65 0 224 0130 0000033C lui $3,%hi(lcd) 225 0134 0000628C lw $2,%lo(lcd)($3) 66:/mnt/hgfs/boot/booter/source/lcd2_hardware_cursor.c **** } 226 .loc 1 66 0 227 0138 0800E003 j $31 228 013c 38004224 addiu $2,$2,56 229 230 .set macro 231 .set reorder 232 $LFE7: 233 .end hwc_get_pallete 234 .section .debug_frame,"",@progbits 235 $Lframe0: 236 0000 0C000000 .4byte $LECIE0-$LSCIE0 237 $LSCIE0: 238 0004 FFFFFFFF .4byte 0xffffffff 239 0008 01 .byte 0x1 240 0009 00 .ascii "\000" 241 000a 01 .uleb128 0x1 242 000b 04 .sleb128 4 243 000c 1F .byte 0x1f 244 000d 0C .byte 0xc 245 000e 1D .uleb128 0x1d 246 000f 00 .uleb128 0x0 247 .align 2 248 $LECIE0: 249 $LSFDE0: 250 0010 0C000000 .4byte $LEFDE0-$LASFDE0 251 $LASFDE0: 252 0014 00000000 .4byte $Lframe0 253 0018 00000000 .4byte $LFB3 254 001c 88000000 .4byte $LFE3-$LFB3 255 .align 2 256 $LEFDE0: 257 $LSFDE2: 258 0020 14000000 .4byte $LEFDE2-$LASFDE2 259 $LASFDE2: 260 0024 00000000 .4byte $Lframe0 261 0028 88000000 .4byte $LFB4 262 002c 60000000 .4byte $LFE4-$LFB4 263 0030 44 .byte 0x4 264 .4byte $LCFI0-$LFB4 265 0031 0E .byte 0xe 266 0032 68 .uleb128 0x68 267 0033 44 .byte 0x4 268 .4byte $LCFI1-$LCFI0 269 0034 11 .byte 0x11 270 0035 1F .uleb128 0x1fGAS LISTING /tmp/ccC8vjp9.s page 7 271 0036 7E .sleb128 -2 272 0037 00 .align 2 273 $LEFDE2: 274 $LSFDE4: 275 0038 0C000000 .4byte $LEFDE4-$LASFDE4 276 $LASFDE4: 277 003c 00000000 .4byte $Lframe0 278 0040 E8000000 .4byte $LFB5 279 0044 2C000000 .4byte $LFE5-$LFB5 280 .align 2 281 $LEFDE4: 282 $LSFDE6: 283 0048 0C000000 .4byte $LEFDE6-$LASFDE6 284 $LASFDE6: 285 004c 00000000 .4byte $Lframe0 286 0050 14010000 .4byte $LFB6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -