⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd2_frame_buffer.lst

📁 au1200下的boot代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 249              	$LCFI6: 250 0204 4000B0AF 		sw	$16,64($sp) 251              	$LCFI7:  41:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	DPRINTF("FB: %X, RGB(%d, %d, %d), W: %d, H: %d\n", address, r, g, b, info->width, info->height);  42:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int max = info->width + info->height; 252              		.loc 1 42 0 253 0208 4000A38C 		lw	$3,64($5) 254              		.loc 1 40 0 255 020c 2168A000 		move	$13,$5 256              		.loc 1 42 0 257 0210 4400A58C 		lw	$5,68($5) 258              		.loc 1 40 0 259 0214 21888000 		move	$17,$4 260 0218 FF00D830 		andi	$24,$6,0x00ff 261 021c FF00F930 		andi	$25,$7,0x00ff 262 0220 6800AF93 		lbu	$15,104($sp) 263              		.loc 1 42 0 264 0224 21606500 		addu	$12,$3,$5  43:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int maxAlpha = 0x0FF; //info->pixel_info.a_mask >> info->pixel_info.a_shift; 265              		.loc 1 43 0 266 0228 FF001224 		li	$18,255			# 0xff  44:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int x, y;  45:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	  46:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	for(y = 0; y < info->height; ++y) 267              		.loc 1 46 0 268 022c 4E00A018 		blez	$5,$L35 269 0230 21700000 		move	$14,$0 270              	 271 0234 EB51023C 		li	$2,1374355456			# 0x51eb0000 272 0238 1F855434 		ori	$20,$2,0x851f 273 023c 4000A925 		addiu	$9,$13,64 274 0240 21980000 		move	$19,$0 275              	$L33:  47:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	{  48:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 		//printf("Row %d[0]: %X\n", y, &address[(y * info->width) + 0]);  49:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 		for(x = 0; x < info->width; ++x) 276              		.loc 1 49 0 277 0244 44006018 		blez	$3,$L37 278 0248 21500000 		move	$10,$0 279              	 280 024c 21808002 		move	$16,$20 281 0250 21406002 		move	$8,$19 282              	$L32:  50:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 		{  51:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 			address[(y * info->width) + x] = pixel_convert(info->pixel_info, ((((x + y) * 100) / max) * maxA 283              		.loc 1 51 0 284 0254 02206E70 		mul	$4,$3,$14 285              	$LBB6: 286              		.loc 2 277 0 287 0258 2130A001 		move	$6,$13 288 025c 2138A003 		move	$7,$sp 289              	$LBE6: 290              		.loc 1 51 0 291 0260 21108A00 		addu	$2,$4,$10 292 0264 80100200 		sll	$2,$2,2 293 0268 21585100 		addu	$11,$2,$17 294              	$L30:GAS LISTING /tmp/cc7wtJ5I.s 			page 12 295              	$LBB7: 296              		.loc 2 277 0 297 026c 0000C28C 		lw	$2,0($6) 298 0270 0400C38C 		lw	$3,4($6) 299 0274 0800C48C 		lw	$4,8($6) 300 0278 0C00C58C 		lw	$5,12($6) 301 027c 1000C624 		addiu	$6,$6,16 302 0280 0000E2AC 		sw	$2,0($7) 303 0284 0400E3AC 		sw	$3,4($7) 304 0288 0800E4AC 		sw	$4,8($7) 305 028c 0C00E5AC 		sw	$5,12($7) 306 0290 F6FFC914 		bne	$6,$9,$L30 307 0294 1000E724 		addiu	$7,$7,16 308              	 309 0298 1A000C01 		div	$0,$8,$12 310 029c 02008015 		bne	$12,$0,1f 311 02a0 00000000 		nop 312 02a4 0D000700 		break	7 313              	1: 314              	$LBB8: 315              		.loc 2 278 0 316 02a8 3000A78F 		lw	$7,48($sp) 317 02ac 2000A28F 		lw	$2,32($sp) 318 02b0 3400A68F 		lw	$6,52($sp) 319 02b4 0738F800 		sra	$7,$24,$7 320 02b8 04384700 		sll	$7,$7,$2 321 02bc 1000A28F 		lw	$2,16($sp) 322 02c0 2400A38F 		lw	$3,36($sp) 323 02c4 3800A58F 		lw	$5,56($sp) 324 02c8 2438E200 		and	$7,$7,$2 325 02cc 1400A28F 		lw	$2,20($sp) 326 02d0 0730D900 		sra	$6,$25,$6 327 02d4 04306600 		sll	$6,$6,$3 328 02d8 2800A38F 		lw	$3,40($sp) 329 02dc 2430C200 		and	$6,$6,$2 330 02e0 1800A28F 		lw	$2,24($sp) 331 02e4 0728AF00 		sra	$5,$15,$5 332 02e8 04286500 		sll	$5,$5,$3 333 02ec 2428A200 		and	$5,$5,$2 334 02f0 3C00A38F 		lw	$3,60($sp) 335              	$LBE8: 336              	$LBE7: 337              		.loc 1 49 0 338 02f4 01004A25 		addiu	$10,$10,1 339              	$LBB9: 340              		.loc 2 277 0 341 02f8 12200000 		mflo	$4 342 02fc 00000000 		nop 343 0300 00000000 		nop 344 0304 02209270 		mul	$4,$4,$18 345 0308 18009000 		mult	$4,$16 346 030c C3270400 		sra	$4,$4,31 347 0310 10100000 		mfhi	$2 348 0314 43110200 		sra	$2,$2,5 349 0318 23104400 		subu	$2,$2,$4 350 031c FF004230 		andi	$2,$2,0x00ff 351              	$LBB10:GAS LISTING /tmp/cc7wtJ5I.s 			page 13 352              		.loc 2 278 0 353 0320 2C00A48F 		lw	$4,44($sp) 354 0324 07106200 		sra	$2,$2,$3 355 0328 1C00A38F 		lw	$3,28($sp) 356 032c 04108200 		sll	$2,$2,$4 357 0330 24104300 		and	$2,$2,$3 358 0334 25104700 		or	$2,$2,$7 359 0338 25104600 		or	$2,$2,$6 360 033c 25104500 		or	$2,$2,$5 361              	$LBE10: 362              	$LBE9: 363              		.loc 2 277 0 364 0340 000062AD 		sw	$2,0($11) 365              		.loc 1 49 0 366 0344 4000A38D 		lw	$3,64($13) 367 0348 2A104301 		slt	$2,$10,$3 368 034c C1FF4014 		bne	$2,$0,$L32 369 0350 64000825 		addiu	$8,$8,100 370              	 371 0354 4400A58D 		lw	$5,68($13) 372              	$L37: 373              		.loc 1 46 0 374 0358 0100CE25 		addiu	$14,$14,1 375 035c 2A10C501 		slt	$2,$14,$5 376 0360 B8FF4014 		bne	$2,$0,$L33 377 0364 64007326 		addiu	$19,$19,100 378              	 379              	$L35: 380 0368 5000B48F 		lw	$20,80($sp) 381 036c 4C00B38F 		lw	$19,76($sp) 382 0370 4800B28F 		lw	$18,72($sp) 383 0374 4400B18F 		lw	$17,68($sp) 384 0378 4000B08F 		lw	$16,64($sp) 385 037c 0800E003 		j	$31 386 0380 5800BD27 		addiu	$sp,$sp,88 387              	 388              		.set	macro 389              		.set	reorder 390              	$LFE5: 391              		.end	fb_fill_transparency_gradient 392              		.align	2 393              		.globl	fb_fill_horizontal_gradient 394              		.ent	fb_fill_horizontal_gradient 395              		.type	fb_fill_horizontal_gradient, @function 396              	fb_fill_horizontal_gradient: 397              	$LFB6:  52:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 		}  53:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 		//printf("Row %d[%d]: %X\n", y, x--, &address[(y * info->width) + x]);  54:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	}  55:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** }  56:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c ****   57:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** void fb_fill_horizontal_gradient(FRAME_BUFFER_ADDRESS address, const FRAME_BUFFER_INFO* info, uint8  58:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** { 398              		.loc 1 58 0 399              		.frame	$sp,120,$31		# vars= 80, regs= 9/0, args= 0, gp= 0 400              		.mask	0x40ff0000,-8 401              		.fmask	0x00000000,0GAS LISTING /tmp/cc7wtJ5I.s 			page 14 402              		.set	noreorder 403              		.set	nomacro 404              		 405 0384 88FFBD27 		addiu	$sp,$sp,-120 406              	$LCFI8: 407 0388 9000A893 		lbu	$8,144($sp) 408 038c 7000BEAF 		sw	$fp,112($sp) 409              	$LCFI9: 410 0390 6800B6AF 		sw	$22,104($sp) 411              	$LCFI10: 412 0394 5400B1AF 		sw	$17,84($sp) 413              	$LCFI11: 414 0398 5000B0AF 		sw	$16,80($sp) 415              	$LCFI12: 416 039c 6C00B7AF 		sw	$23,108($sp) 417              	$LCFI13: 418 03a0 6400B5AF 		sw	$21,100($sp) 419              	$LCFI14: 420 03a4 6000B4AF 		sw	$20,96($sp) 421              	$LCFI15: 422 03a8 5C00B3AF 		sw	$19,92($sp) 423              	$LCFI16: 424 03ac 5800B2AF 		sw	$18,88($sp) 425              	$LCFI17:  59:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int x, y, fb_index;  60:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int width = info->width; 426              		.loc 1 60 0 427 03b0 4000A38C 		lw	$3,64($5) 428              		.loc 1 58 0 429 03b4 FF00D130 		andi	$17,$6,0x00ff 430 03b8 2160A000 		move	$12,$5  61:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int width_scale = 100; 431              		.loc 1 61 0 432 03bc 64000F24 		li	$15,100			# 0x64  62:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	//We have to scale up the width in order to get the necessary resolution to do a clean gradient  63:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int scaled_width = width * width_scale;  64:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c ****   65:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	//calculate how many color shades to increment/decrement with each pixel.  66:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int a_delta = (a2 > a1) ? (a2 - a1) : (a1 - a2); 433              		.loc 1 66 0 434 03c0 2B502802 		sltu	$10,$17,$8 435 03c4 23281101 		subu	$5,$8,$17 436 03c8 23102802 		subu	$2,$17,$8 437              		.loc 1 58 0 438 03cc FF00F830 		andi	$24,$7,0x00ff 439              		.loc 1 63 0 440 03d0 02706F70 		mul	$14,$3,$15 441              		.loc 1 66 0 442 03d4 0A284A00 		movz	$5,$2,$10 443              		.loc 1 58 0 444 03d8 21F08000 		move	$fp,$4 445 03dc 8800B993 		lbu	$25,136($sp) 446 03e0 8C00B093 		lbu	$16,140($sp) 447 03e4 9400A693 		lbu	$6,148($sp) 448 03e8 9800A793 		lbu	$7,152($sp) 449 03ec 9C00A993 		lbu	$9,156($sp)  67:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int a_mod = (a1 == a2) ? 0 : scaled_width / a_delta;GAS LISTING /tmp/cc7wtJ5I.s 			page 15 450              		.loc 1 67 0 451 03f0 06002812 		beq	$17,$8,$L42 452 03f4 21B00000 		move	$22,$0 453              	 454 03f8 1A00C501 		div	$0,$14,$5 455 03fc 0200A014 		bne	$5,$0,1f 456 0400 00000000 		nop 457 0404 0D000700 		break	7 458              	1: 459 0408 12B00000 		mflo	$22 460              	$L42:  68:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	if((a2 != a1) && scaled_width % a_delta != 0)  69:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 		a_mod++; 461              		.loc 1 69 0 462              		.loc 1 68 0 463 040c 07001111 		beq	$8,$17,$L43 464 0410 0100C326 		addiu	$3,$22,1 465              	 466 0414 1A00C501 		div	$0,$14,$5 467 0418 0200A014 		bne	$5,$0,1f 468 041c 00000000 		nop 469 0420 0D000700 		break	7 470              	1: 471 0424 10100000 		mfhi	$2 472              		.loc 1 69 0 473 0428 0BB06200 		movn	$22,$3,$2 474              	$L43:  70:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int a_dir = (a2 > a1) ? 1 : -1; 475              		.loc 1 70 0 476 042c FFFF0224 		li	$2,-1			# 0xffffffffffffffff 477 0430 01000824 		li	$8,1			# 0x1  71:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	  72:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int r_delta = (r2 > r1) ? (r2 - r1) : (r1 - r2); 478              		.loc 1 72 0 479 0434 2B280603 		sltu	$5,$24,$6 480 0438 2320D800 		subu	$4,$6,$24 481 043c 23180603 		subu	$3,$24,$6 482              		.loc 1 70 0 483 0440 0A404A00 		movz	$8,$2,$10 484 0444 4000A8AF 		sw	$8,64($sp) 485              		.loc 1 72 0 486 0448 0A206500 		movz	$4,$3,$5  73:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	int r_mod = (r1 == r2) ? 0 : scaled_width / r_delta; 487              		.loc 1 73 0 488 044c 06000613 		beq	$24,$6,$L49 489 0450 21B80000 		move	$23,$0 490              	 491 0454 1A00C401 		div	$0,$14,$4 492 0458 02008014 		bne	$4,$0,1f 493 045c 00000000 		nop 494 0460 0D000700 		break	7 495              	1: 496 0464 12B80000 		mflo	$23 497              	$L49:  74:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 	if((r2 != r1) && scaled_width % r_delta != 0)  75:/mnt/hgfs/boot/booter/source/lcd2_frame_buffer.c **** 		r_mod++; 498              		.loc 1 75 0GAS LISTING /tmp/cc7wtJ5I.s 			page 16

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -