📄 lcd2_window.lst
字号:
1029 .mask 0x00000000,0 1030 .fmask 0x00000000,0 1031 .set noreorder 1032 .set nomacro 1033 181:/mnt/hgfs/boot/booter/source/lcd2_window.c **** DPRINTF("%d: %d\n", id, height); 182:/mnt/hgfs/boot/booter/source/lcd2_window.c **** int scale = 1; 183:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 184:/mnt/hgfs/boot/booter/source/lcd2_window.c **** if(windows[id].ocfb.enabled == TRUE) 1034 .loc 1 184 0 1035 05e4 40380400 sll $7,$4,1 1036 05e8 2110E400 addu $2,$7,$4 1037 05ec C0100200 sll $2,$2,3 1038 05f0 21104400 addu $2,$2,$4 1039 05f4 0000083C lui $8,%hi(windows) 1040 05f8 00000325 addiu $3,$8,%lo(windows) 1041 05fc 80100200 sll $2,$2,2 1042 0600 21104300 addu $2,$2,$3 1043 .loc 1 180 0 1044 0604 21308000 move $6,$4GAS LISTING /tmp/ccb3AwVp.s page 23 1045 .loc 1 184 0 1046 0608 6000448C lw $4,96($2) 1047 .loc 1 182 0 1048 060c 01000324 li $3,1 # 0x1 1049 .loc 1 180 0 1050 .loc 1 184 0 1051 0610 11008310 beq $4,$3,$L49 1052 0614 2148A000 move $9,$5 1053 1054 $L45: 185:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 186:/mnt/hgfs/boot/booter/source/lcd2_window.c **** switch(windows[id].ocfb.hscale) 187:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 188:/mnt/hgfs/boot/booter/source/lcd2_window.c **** case SCALE_2X: scale = 2; break; 189:/mnt/hgfs/boot/booter/source/lcd2_window.c **** case SCALE_4X: scale = 4; break; 190:/mnt/hgfs/boot/booter/source/lcd2_window.c **** } 191:/mnt/hgfs/boot/booter/source/lcd2_window.c **** } 192:/mnt/hgfs/boot/booter/source/lcd2_window.c **** windows[id].fb_info.height = height; 193:/mnt/hgfs/boot/booter/source/lcd2_window.c **** windows[id].regs->ctrl1 = (windows[id].regs->ctrl1 & ~LCD_WINCTRL1_SZY) 1055 .loc 1 193 0 1056 0618 02202371 mul $4,$9,$3 1057 .loc 1 192 0 1058 061c 2110E600 addu $2,$7,$6 1059 0620 C0100200 sll $2,$2,3 1060 0624 21104600 addu $2,$2,$6 1061 0628 00000325 addiu $3,$8,%lo(windows) 1062 062c 80100200 sll $2,$2,2 1063 0630 21104300 addu $2,$2,$3 1064 .loc 1 193 0 1065 0634 0000458C lw $5,0($2) 1066 .loc 1 192 0 1067 0638 480049AC sw $9,72($2) 1068 .loc 1 193 0 1069 063c 00F80224 li $2,-2048 # 0xfffffffffffff800 1070 0640 0400A38C lw $3,4($5) 1071 0644 24186200 and $3,$3,$2 1072 0648 FFFF8424 addiu $4,$4,-1 1073 064c 25186400 or $3,$3,$4 1074 0650 0800E003 j $31 1075 0654 0400A3AC sw $3,4($5) 1076 1077 $L49: 1078 .loc 1 186 0 1079 0658 5C00448C lw $4,92($2) 1080 065c 06008310 beq $4,$3,$L47 1081 0660 00000000 nop 1082 1083 0664 02000224 li $2,2 # 0x2 1084 0668 EBFF8214 bne $4,$2,$L45 1085 066c 00000000 nop 1086 1087 .loc 1 189 0 1088 0670 86010008 j $L45 1089 0674 04000324 li $3,4 # 0x4 1090 1091 $L47: 1092 .loc 1 188 0GAS LISTING /tmp/ccb3AwVp.s page 24 1093 0678 86010008 j $L45 1094 067c 02000324 li $3,2 # 0x2 1095 1096 .set macro 1097 .set reorder 1098 $LFE19: 1099 .end window_set_height 1100 .align 2 1101 .globl window_set_size 1102 .ent window_set_size 1103 .type window_set_size, @function 1104 window_set_size: 1105 $LFB20: 194:/mnt/hgfs/boot/booter/source/lcd2_window.c **** | LCD_WINCTRL1_SZY_N(height*scale); 195:/mnt/hgfs/boot/booter/source/lcd2_window.c **** } 196:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 197:/mnt/hgfs/boot/booter/source/lcd2_window.c **** void window_set_size(WINDOW_ID id, int width, int height) 198:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 1106 .loc 1 198 0 1107 .frame $sp,32,$31 # vars= 0, regs= 3/0, args= 16, gp= 0 1108 .mask 0x80030000,-8 1109 .fmask 0x00000000,0 1110 .set noreorder 1111 .set nomacro 1112 1113 0680 E0FFBD27 addiu $sp,$sp,-32 1114 $LCFI15: 1115 0684 1400B1AF sw $17,20($sp) 1116 $LCFI16: 1117 0688 1000B0AF sw $16,16($sp) 1118 $LCFI17: 1119 068c 2188C000 move $17,$6 1120 0690 1800BFAF sw $31,24($sp) 1121 $LCFI18: 1122 .loc 1 198 0 199:/mnt/hgfs/boot/booter/source/lcd2_window.c **** window_set_width(id, width); 1123 .loc 1 199 0 1124 0694 0000000C jal window_set_width 1125 0698 21808000 move $16,$4 1126 200:/mnt/hgfs/boot/booter/source/lcd2_window.c **** window_set_height(id, height); 1127 .loc 1 200 0 1128 069c 21200002 move $4,$16 1129 06a0 21282002 move $5,$17 1130 06a4 1800BF8F lw $31,24($sp) 1131 06a8 1400B18F lw $17,20($sp) 1132 06ac 1000B08F lw $16,16($sp) 1133 06b0 00000008 j window_set_height 1134 06b4 2000BD27 addiu $sp,$sp,32 1135 1136 .set macro 1137 .set reorder 1138 $LFE20: 1139 .end window_set_size 1140 .align 2 1141 .globl window_set_colorkey_mode 1142 .ent window_set_colorkey_modeGAS LISTING /tmp/ccb3AwVp.s page 25 1143 .type window_set_colorkey_mode, @function 1144 window_set_colorkey_mode: 1145 $LFB21: 201:/mnt/hgfs/boot/booter/source/lcd2_window.c **** } 202:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 203:/mnt/hgfs/boot/booter/source/lcd2_window.c **** void window_set_colorkey_mode(WINDOW_ID id, CKMODE ckmode) 204:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 1146 .loc 1 204 0 1147 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 1148 .mask 0x00000000,0 1149 .fmask 0x00000000,0 1150 .set noreorder 1151 .set nomacro 1152 205:/mnt/hgfs/boot/booter/source/lcd2_window.c **** DPRINTF("%d: %d\n", id, ckmode); 206:/mnt/hgfs/boot/booter/source/lcd2_window.c **** windows[id].regs->ctrl2 = (windows[id].regs->ctrl2 & ~LCD_WINCTRL2_CKMODE) 1153 .loc 1 206 0 1154 06b8 40100400 sll $2,$4,1 1155 06bc 21104400 addu $2,$2,$4 1156 06c0 C0100200 sll $2,$2,3 1157 06c4 21104400 addu $2,$2,$4 1158 06c8 0000033C lui $3,%hi(windows) 1159 06cc 00006324 addiu $3,$3,%lo(windows) 1160 06d0 80100200 sll $2,$2,2 1161 06d4 21104300 addu $2,$2,$3 1162 06d8 0000448C lw $4,0($2) 1163 06dc FFFC023C li $2,-50397184 # 0xfffffffffcff0000 1164 06e0 FFFF4234 ori $2,$2,0xffff 1165 06e4 0800838C lw $3,8($4) 1166 06e8 002E0500 sll $5,$5,24 1167 06ec 24186200 and $3,$3,$2 1168 06f0 25186500 or $3,$3,$5 1169 06f4 0800E003 j $31 1170 06f8 080083AC sw $3,8($4) 1171 1172 .set macro 1173 .set reorder 1174 $LFE21: 1175 .end window_set_colorkey_mode 1176 .align 2 1177 .globl window_set_doublebuffer_mode 1178 .ent window_set_doublebuffer_mode 1179 .type window_set_doublebuffer_mode, @function 1180 window_set_doublebuffer_mode: 1181 $LFB22: 207:/mnt/hgfs/boot/booter/source/lcd2_window.c **** | LCD_WINCTRL2_CKMODE_N(ckmode); 208:/mnt/hgfs/boot/booter/source/lcd2_window.c **** } 209:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 210:/mnt/hgfs/boot/booter/source/lcd2_window.c **** void window_set_doublebuffer_mode(WINDOW_ID id, DBMODE dbmode) 211:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 1182 .loc 1 211 0 1183 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 1184 .mask 0x00000000,0 1185 .fmask 0x00000000,0 1186 .set noreorder 1187 .set nomacro 1188 GAS LISTING /tmp/ccb3AwVp.s page 26 212:/mnt/hgfs/boot/booter/source/lcd2_window.c **** DPRINTF("%d: %d\n", id, dbmode); 213:/mnt/hgfs/boot/booter/source/lcd2_window.c **** windows[id].regs->ctrl2 = (windows[id].regs->ctrl2 & ~LCD_WINCTRL2_DBM) 1189 .loc 1 213 0 1190 06fc 40100400 sll $2,$4,1 1191 0700 21104400 addu $2,$2,$4 1192 0704 C0100200 sll $2,$2,3 1193 0708 21104400 addu $2,$2,$4 1194 070c 0000033C lui $3,%hi(windows) 1195 0710 00006324 addiu $3,$3,%lo(windows) 1196 0714 80100200 sll $2,$2,2 1197 0718 21104300 addu $2,$2,$3 1198 071c 0000468C lw $6,0($2) 1199 0720 7FFF023C li $2,-8454144 # 0xffffffffff7f0000 1200 0724 FFFF4234 ori $2,$2,0xffff 1201 0728 0800C48C lw $4,8($6) 1202 072c 01000324 li $3,1 # 0x1 1203 0730 0300A310 beq $5,$3,$L54 1204 0734 24208200 and $4,$4,$2 1205 1206 0738 0800E003 j $31 1207 073c 0800C4AC sw $4,8($6) 1208 1209 $L54: 1210 0740 8000023C li $2,8388608 # 0x800000 1211 0744 25208200 or $4,$4,$2 1212 0748 0800E003 j $31 1213 074c 0800C4AC sw $4,8($6) 1214 1215 .set macro 1216 .set reorder 1217 $LFE22: 1218 .end window_set_doublebuffer_mode 1219 .align 2 1220 .globl window_set_scale 1221 .ent window_set_scale 1222 .type window_set_scale, @function 1223 window_set_scale: 1224 $LFB23: 214:/mnt/hgfs/boot/booter/source/lcd2_window.c **** | (dbmode == DBMODE_RETRACE ? LCD_WINCTRL2_DBM : 0); 215:/mnt/hgfs/boot/booter/source/lcd2_window.c **** } 216:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 217:/mnt/hgfs/boot/booter/source/lcd2_window.c **** void window_set_scale(WINDOW_ID id, SCALE wscale, SCALE hscale) 218:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 1225 .loc 1 218 0 1226 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 1227 .mask 0x00000000,0 1228 .fmask 0x00000000,0 1229 .set noreorder 1230 .set nomacro 1231 219:/mnt/hgfs/boot/booter/source/lcd2_window.c **** DPRINTF("%d: %dx%d\n", id, wscale, hscale); 220:/mnt/hgfs/boot/booter/source/lcd2_window.c **** windows[id].regs->ctrl2 = (windows[id].regs->ctrl2 & ~(LCD_WINCTRL2_SCX | LCD_WINCTRL2_SCY)) 1232 .loc 1 220 0 1233 0750 40180400 sll $3,$4,1 1234 0754 21186400 addu $3,$3,$4 1235 0758 C0180300 sll $3,$3,3 1236 075c 21186400 addu $3,$3,$4GAS LISTING /tmp/ccb3AwVp.s page 27 1237 0760 0000023C lui $2,%hi(windows) 1238 0764 00004224 addiu $2,$2,%lo(windows) 1239 0768 80180300 sll $3,$3,2 1240 076c 21186200 addu $3,$3,$2 1241 0770 0000688C lw $8,0($3) 1242 .loc 1 218 0 1243 0774 2150A000 move $10,$5 1244 .loc 1 220 0 1245 0778 00390500 sll $7,$5,4 1246 077c 0800028D lw $2,8($8) 1247 0780 00FF0524 li $5,-256 # 0xffffffffffffff00 1248 .loc 1 218 0 1249 0784 2148C000 move $9,$6 1250 .loc 1 220 0 1251 0788 24104500 and $2,$2,$5 1252 078c 25104700 or $2,$2,$7 1253 0790 25104600 or $2,$2,$6 1254 0794 080002AD sw $2,8($8) 221:/mnt/hgfs/boot/booter/source/lcd2_window.c **** | LCD_WINCTRL2_SCX_N(wscale) 222:/mnt/hgfs/boot/booter/source/lcd2_window.c **** | LCD_WINCTRL2_SCY_N(hscale); 223:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 224:/mnt/hgfs/boot/booter/source/lcd2_window.c **** windows[id].ocfb.wscale = wscale; 225:/mnt/hgfs/boot/booter/source/lcd2_window.c **** windows[id].ocfb.hscale = hscale; 226:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 227:/mnt/hgfs/boot/booter/source/lcd2_window.c **** window_set_size(id, windows[id].fb_info.width, windows[id].fb_info.height); 1255 .loc 1 227 0 1256 0798 4800668C lw $6,72($3) 1257 079c 4400658C lw $5,68($3) 1258 .loc 1 224 0 1259 07a0 58006AAC sw $10,88($3) 1260 .loc 1 225 0 1261 .loc 1 227 0 1262 07a4 00000008 j window_set_size 1263 07a8 5C0069AC sw $9,92($3) 1264 1265 .set macro 1266 .set reorder 1267 $LFE23: 1268 .end window_set_scale 1269 .align 2 1270 .globl window_set_buffer 1271 .ent window_set_buffer 1272 .type window_set_buffer, @function 1273 window_set_buffer: 1274 $LFB24: 228:/mnt/hgfs/boot/booter/source/lcd2_window.c **** } 229:/mnt/hgfs/boot/booter/source/lcd2_window.c **** 230:/mnt/hgfs/boot/booter/source/lcd2_window.c **** void window_set_buffer(WINDOW_ID id, BUFFER_ID buffer_id, FRAME_BUFFER_ADDRESS address) 231:/mnt/hgfs/boot/booter/source/lcd2_window.c **** { 1275 .loc 1 231 0 1276 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 1277 .mask 0x00000000,0 1278 .fmask 0x00000000,0 1279 .set noreorder 1280 .set nomacro 1281 232:/mnt/hgfs/boot/booter/source/lcd2_window.c **** DPRINTF("%d, %d: %X\n", id, buffer_id, address);GAS LISTING /tmp/ccb3AwVp.s page 28 233:/mnt/hgfs/boot/booter/source/lcd2_window.c **** switch(buffer_id) 234:/mnt/hgfs/boot/booter/source/lcd2_window.c ***
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -