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

📄 blit.s

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 S
📖 第 1 页 / 共 2 页
字号:
		jnz	0b		popl	%edi		popl	%esi		popl	%ebx		popl	%ebp		ret/* transform B5G6R5 to fake8 */		.p2align 5,,31		.global	_vesa_l_dump_16_to_8_vesa_l_dump_16_to_8:		pushl	%ebp		pushl	%ebx		pushl	%esi		pushl	%edi		movl	_vl_video_selector, %fs		movl	_vl_current_draw_buffer, %esi		movl	_vl_current_offset, %edi		movl	_vl_current_stride, %ecx		movl	_vl_current_height, %edx		movl	_vl_current_delta, %ebx		.balign	4	0:		pushl	%ecx		pushl	%ebx	1:		movl	(%esi), %eax		addl	$4, %esi#if 1		movl	%eax, %ebx		andl	$0xFFFF, %eax		shrl	$16, %ebx		movb	_tab_16_8(%eax), %al		movb	_tab_16_8(%ebx), %ah#endif		movw	%ax, %fs:(%edi)		addl	$2, %edi		subl	$2, %ecx		jnz	1b		popl	%ebx		popl	%ecx		addl	%ebx, %edi		decl	%edx		jnz	0b		popl	%edi		popl	%esi		popl	%ebx		popl	%ebp		ret		.p2align 5,,31		.global	_vesa_b_dump_32_to_24_vesa_b_dump_32_to_24:		pushl	%ebx		pushl	%esi		pushl	%edi		pushl	%ebp		movl	_vl_video_selector, %fs		movl	_vl_current_draw_buffer, %esi		movl	_vl_current_offset, %edi		movl	_vesa_gran_shift, %ecx		movl	_vesa_gran_mask, %ebp		movl	%edi, %edx		xorl	%ebx, %ebx		andl	%ebp, %edi		shrl	%cl, %edx		incl	%ebp		call	*_vesa_swbank		movl	_vl_current_stride, %ecx		movl	_vl_current_height, %eax		movl	$0x00FFFFFF, %ebx		.balign	4	0:		pushl	%eax		pushl	%ecx		.balign	4	1:		cmpl	%ebp, %edi		jb	2f		pushl	%ebx		incl	%edx		xorl	%ebx, %ebx		call	*_vesa_swbank		popl	%ebx		subl	%ebp, %edi		.balign	4	2:		movb	(%esi), %al	/* XXX too many accesses */		incl	%esi		rorl	$8, %ebx		jnc	2b		movb	%al, %fs:(%edi)		incl	%edi		decl	%ecx		jnz	1b		popl	%ecx		popl	%eax		addl	_vl_current_delta, %edi		decl	%eax		jnz	0b		popl	%ebp		popl	%edi		popl	%esi		popl	%ebx		ret		.p2align 5,,31		.global	_vesa_b_dump_32_to_16_vesa_b_dump_32_to_16:		pushl	%ebx		pushl	%esi		pushl	%edi		pushl	%ebp		movl	_vl_video_selector, %fs		movl	_vl_current_draw_buffer, %esi		movl	_vl_current_offset, %edi		movl	_vesa_gran_shift, %ecx		movl	_vesa_gran_mask, %ebp		movl	%edi, %edx		xorl	%ebx, %ebx		andl	%ebp, %edi		shrl	%cl, %edx		incl	%ebp		call	*_vesa_swbank		movl	_vl_current_stride, %ecx		movl	_vl_current_height, %eax		.balign	4	0:		pushl	%eax		pushl	%ecx		.balign	4	1:		cmpl	%ebp, %edi		jb	2f		incl	%edx		xorl	%ebx, %ebx		call	*_vesa_swbank		subl	%ebp, %edi		.balign	4	2:		movl	(%esi), %eax		addl	$4, %esi		CVT_32_TO_16(a, ebx)		movw	%ax, %fs:(%edi)		addl	$2, %edi		subl	$2, %ecx		jnz	1b		popl	%ecx		popl	%eax		addl	_vl_current_delta, %edi		decl	%eax		jnz	0b		popl	%ebp		popl	%edi		popl	%esi		popl	%ebx		ret		.p2align 5,,31		.global	_vesa_b_dump_32_to_15_vesa_b_dump_32_to_15:		pushl	%ebx		pushl	%esi		pushl	%edi		pushl	%ebp		movl	_vl_video_selector, %fs		movl	_vl_current_draw_buffer, %esi		movl	_vl_current_offset, %edi		movl	_vesa_gran_shift, %ecx		movl	_vesa_gran_mask, %ebp		movl	%edi, %edx		xorl	%ebx, %ebx		andl	%ebp, %edi		shrl	%cl, %edx		incl	%ebp		call	*_vesa_swbank		movl	_vl_current_stride, %ecx		movl	_vl_current_height, %eax		.balign	4	0:		pushl	%eax		pushl	%ecx		.balign	4	1:		cmpl	%ebp, %edi		jb	2f		incl	%edx		xorl	%ebx, %ebx		call	*_vesa_swbank		subl	%ebp, %edi		.balign	4	2:		movl	(%esi), %eax		addl	$4, %esi		CVT_32_TO_15(a, ebx)		movw	%ax, %fs:(%edi)		addl	$2, %edi		subl	$2, %ecx		jnz	1b		popl	%ecx		popl	%eax		addl	_vl_current_delta, %edi		decl	%eax		jnz	0b		popl	%ebp		popl	%edi		popl	%esi		popl	%ebx		ret		.p2align 5,,31		.global	_vesa_b_dump_32_to_8_vesa_b_dump_32_to_8:		pushl	%ebx		pushl	%esi		pushl	%edi		pushl	%ebp		movl	_vl_video_selector, %fs		movl	_vl_current_draw_buffer, %esi		movl	_vl_current_offset, %edi		movl	_vesa_gran_shift, %ecx		movl	_vesa_gran_mask, %ebp		movl	%edi, %edx		xorl	%ebx, %ebx		andl	%ebp, %edi		shrl	%cl, %edx		incl	%ebp		call	*_vesa_swbank		movl	_vl_current_stride, %ecx		movl	_vl_current_height, %eax		.balign	4	0:		pushl	%eax		pushl	%ecx		pushl	%edx		.balign	4	1:		cmpl	%ebp, %edi		jb	2f		popl	%edx		incl	%edx		pushl	%edx		xorl	%ebx, %ebx		call	*_vesa_swbank		subl	%ebp, %edi		.balign	4	2:		movl	(%esi), %eax		addl	$4, %esi#if 1		xorl	%ebx, %ebx		movl	%eax, %edx		movb	%ah, %bl		shrl	$16, %edx		andl	$0xFF, %edx		andl	$0xFF, %eax		movb	_array_b(%eax), %al		movb	_array_r(%edx), %dl		movb	_array_g(%ebx), %bl		imull	$36, %eax		imull	$6, %ebx		addl	%edx, %eax		addl	%ebx, %eax#endif		movb	%al, %fs:(%edi)		incl	%edi		decl	%ecx		jnz	1b		popl	%edx		popl	%ecx		popl	%eax		addl	_vl_current_delta, %edi		decl	%eax		jnz	0b		popl	%ebp		popl	%edi		popl	%esi		popl	%ebx		ret		.p2align 5,,31		.global	_vesa_b_dump_24_to_32_vesa_b_dump_24_to_32:		pushl	%ebx		pushl	%esi		pushl	%edi		pushl	%ebp		movl	_vl_video_selector, %fs		movl	_vl_current_draw_buffer, %esi		movl	_vl_current_offset, %edi		movl	_vesa_gran_shift, %ecx		movl	_vesa_gran_mask, %ebp		movl	%edi, %edx		xorl	%ebx, %ebx		andl	%ebp, %edi		shrl	%cl, %edx		incl	%ebp		call	*_vesa_swbank		movl	_vl_current_stride, %ecx		movl	_vl_current_height, %eax		movl	_vl_current_delta, %ebx		.balign	4	0:		pushl	%eax		pushl	%ecx		.balign	4	1:		cmpl	%ebp, %edi		jb	2f		pushl	%ebx		incl	%edx		xorl	%ebx, %ebx		call	*_vesa_swbank		popl	%ebx		subl	%ebp, %edi		.balign	4	2:		movl	(%esi), %eax		addl	$3, %esi		movl	%eax, %fs:(%edi)		addl	$4, %edi		subl	$4, %ecx		jnz	1b		popl	%ecx		popl	%eax		addl	%ebx, %edi		decl	%eax		jnz	0b		popl	%ebp		popl	%edi		popl	%esi		popl	%ebx		ret		.p2align 5,,31		.global	_vesa_b_dump_24_to_8_vesa_b_dump_24_to_8:		pushl	%ebx		pushl	%esi		pushl	%edi		pushl	%ebp		movl	_vl_video_selector, %fs		movl	_vl_current_draw_buffer, %esi		movl	_vl_current_offset, %edi		movl	_vesa_gran_shift, %ecx		movl	_vesa_gran_mask, %ebp		movl	%edi, %edx		xorl	%ebx, %ebx		andl	%ebp, %edi		shrl	%cl, %edx		incl	%ebp		call	*_vesa_swbank		movl	_vl_current_stride, %ecx		movl	_vl_current_height, %eax		.balign	4	0:		pushl	%eax		pushl	%ecx		pushl	%edx		.balign	4	1:		cmpl	%ebp, %edi		jb	2f		popl	%edx		incl	%edx		pushl	%edx		xorl	%ebx, %ebx		call	*_vesa_swbank		subl	%ebp, %edi		.balign	4	2:		movl	(%esi), %eax		addl	$3, %esi#if 1		xorl	%ebx, %ebx		movl	%eax, %edx		movb	%ah, %bl		shrl	$16, %edx		andl	$0xFF, %edx		andl	$0xFF, %eax		movb	_array_b(%eax), %al		movb	_array_r(%edx), %dl		movb	_array_g(%ebx), %bl		imull	$36, %eax		imull	$6, %ebx		addl	%edx, %eax		addl	%ebx, %eax#endif		movb	%al, %fs:(%edi)		incl	%edi		decl	%ecx		jnz	1b		popl	%edx		popl	%ecx		popl	%eax		addl	_vl_current_delta, %edi		decl	%eax		jnz	0b		popl	%ebp		popl	%edi		popl	%esi		popl	%ebx		ret		.p2align 5,,31		.global	_vesa_b_dump_16_to_15_vesa_b_dump_16_to_15:		pushl	%ebx		pushl	%esi		pushl	%edi		pushl	%ebp		movl	_vl_video_selector, %fs		movl	_vl_current_draw_buffer, %esi		movl	_vl_current_offset, %edi		movl	_vesa_gran_shift, %ecx		movl	_vesa_gran_mask, %ebp		movl	%edi, %edx		xorl	%ebx, %ebx		andl	%ebp, %edi		shrl	%cl, %edx		incl	%ebp		call	*_vesa_swbank		movl	_vl_current_stride, %ecx		movl	_vl_current_height, %eax		.balign	4	0:		pushl	%eax		pushl	%ecx		.balign	4	1:		cmpl	%ebp, %edi		jb	2f		incl	%edx		xorl	%ebx, %ebx		call	*_vesa_swbank		subl	%ebp, %edi		.balign	4	2:		movw	(%esi), %ax		addl	$2, %esi		CVT_16_TO_15(eax, ebx)		movw	%ax, %fs:(%edi)		addl	$2, %edi		subl	$2, %ecx		jnz	1b		popl	%ecx		popl	%eax		addl	_vl_current_delta, %edi		decl	%eax		jnz	0b		popl	%ebp		popl	%edi		popl	%esi		popl	%ebx		ret		.p2align 5,,31		.global	_vesa_b_dump_16_to_8_vesa_b_dump_16_to_8:		pushl	%ebx		pushl	%esi		pushl	%edi		pushl	%ebp		movl	_vl_video_selector, %fs		movl	_vl_current_draw_buffer, %esi		movl	_vl_current_offset, %edi		movl	_vesa_gran_shift, %ecx		movl	_vesa_gran_mask, %ebp		movl	%edi, %edx		xorl	%ebx, %ebx		andl	%ebp, %edi		shrl	%cl, %edx		incl	%ebp		call	*_vesa_swbank		movl	_vl_current_stride, %ecx		movl	_vl_current_height, %eax		movl	_vl_current_delta, %ebx		.balign	4	0:		pushl	%eax		pushl	%ecx		.balign	4	1:		cmpl	%ebp, %edi		jb	2f		pushl	%ebx		incl	%edx		xorl	%ebx, %ebx		call	*_vesa_swbank		popl	%ebx		subl	%ebp, %edi		.balign	4	2:		movw	(%esi), %ax		addl	$2, %esi#if 1		andl	$0xFFFF, %eax		movb	_tab_16_8(%eax), %al#endif		movb	%al, %fs:(%edi)		addl	$1, %edi		subl	$1, %ecx		jnz	1b		popl	%ecx		popl	%eax		addl	%ebx, %edi		decl	%eax		jnz	0b		popl	%ebp		popl	%edi		popl	%esi		popl	%ebx		ret

⌨️ 快捷键说明

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