diff options
author | Brian Paul <[email protected]> | 2003-06-16 14:32:44 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2003-06-16 14:32:44 +0000 |
commit | 642699a19f1c07336a6fadacd6d5a9028f5d346f (patch) | |
tree | 6664c6c8937aba9a8d96a8a6a7c0ddc74151e04e /src/mesa/drivers/dos/blit.S | |
parent | 710207c46f523ca3607c522ffa45a7c07a3354b4 (diff) |
DOS updates for new tree (Daniel Borca)
Diffstat (limited to 'src/mesa/drivers/dos/blit.S')
-rw-r--r-- | src/mesa/drivers/dos/blit.S | 398 |
1 files changed, 199 insertions, 199 deletions
diff --git a/src/mesa/drivers/dos/blit.S b/src/mesa/drivers/dos/blit.S index 7d0da5da289..f5888c7e395 100644 --- a/src/mesa/drivers/dos/blit.S +++ b/src/mesa/drivers/dos/blit.S @@ -1,199 +1,199 @@ -/*
- * Mesa 3-D graphics library
- * Version: 4.0
- *
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
- * DOS/DJGPP device driver v1.3 for Mesa
- *
- * Copyright (C) 2002 - Borca Daniel
- * Email : [email protected]
- * Web : http://www.geocities.com/dborca
- */
-
-
- .file "blit.S"
-
-/*
- * extern unsigned int vesa_gran_mask, vesa_gran_shift;
- * extern int vl_video_selector;
-
- * extern void *vl_current_draw_buffer;
- * extern int vl_current_stride, vl_current_height;
- * extern int vl_current_offset, vl_current_delta;
- */
-
- .text
-
-/* Desc: VESA bank switching routine (BIOS)
- *
- * In : EBX=0, EDX = bank number
- * Out : -
- *
- * Note: thrashes EAX
- */
- .p2align 5,,31
-_vesa_swbankBIOS:
- movw $0x4f05, %ax
- int $0x10
- ret
-
- .p2align 2,,3
- .global _vesa_swbank
-_vesa_swbank: .long _vesa_swbankBIOS
-
-/* Desc: void vesa_b_dump_virtual (void);
- *
- * In : -
- * Out : -
- *
- * Note: uses current draw buffer
- */
- .p2align 5,,31
- .global _vesa_b_dump_virtual
-_vesa_b_dump_virtual:
- cld
- pushl %es
- pushl %ebx
- pushl %esi
- pushl %edi
- pushl %ebp
- movl _vl_video_selector, %es
- 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
- shrl $2, %ecx
- .balign 4
- 0:
- pushl %ecx
- .balign 4
- 1:
- cmpl %ebp, %edi
- jb 2f
- pushl %eax
- pushl %ebx
- incl %edx
- xorl %ebx, %ebx
- call *_vesa_swbank
- popl %ebx
- popl %eax
- subl %ebp, %edi
- .balign 4
- 2:
- movsl
- decl %ecx
- jnz 1b
- popl %ecx
- addl %ebx, %edi
- decl %eax
- jnz 0b
- popl %ebp
- popl %edi
- popl %esi
- popl %ebx
- popl %es
- ret
-
-/* Desc: void vesa_l_dump_virtual (void);
- *
- * In : -
- * Out : -
- *
- * Note: uses current draw buffer
- */
- .p2align 5,,31
- .global _vesa_l_dump_virtual
-_vesa_l_dump_virtual:
- cld
- pushl %es
- pushl %esi
- pushl %edi
- movl _vl_video_selector, %es
- 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, %eax
- shrl $2, %ecx
- .balign 4
- 0:
- pushl %ecx
- rep; movsl
- popl %ecx
- addl %eax, %edi
- decl %edx
- jnz 0b
- popl %edi
- popl %esi
- popl %es
- ret
-
-/* Desc: void vesa_l_dump_virtual_mmx (void);
- *
- * In : -
- * Out : -
- *
- * Note: uses current draw buffer
- */
- .p2align 5,,31
- .global _vesa_l_dump_virtual_mmx
-_vesa_l_dump_virtual_mmx:
-#ifdef USE_MMX_ASM
- 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, %eax
- shrl $3, %ecx
- .balign 4
- 0:
- pushl %ecx
- .balign 4
- 1:
- movq (%esi), %mm0
- addl $8, %esi
- movq %mm0, %fs:(%edi)
- addl $8, %edi
- decl %ecx
- jnz 1b
- popl %ecx
- addl %eax, %edi
- decl %edx
- jnz 0b
- popl %edi
- popl %esi
- emms
-#endif
- ret
+/* + * Mesa 3-D graphics library + * Version: 4.0 + * + * Copyright (C) 1999 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * DOS/DJGPP device driver v1.3 for Mesa + * + * Copyright (C) 2002 - Borca Daniel + * Email : [email protected] + * Web : http://www.geocities.com/dborca + */ + + + .file "blit.S" + +/* + * extern unsigned int vesa_gran_mask, vesa_gran_shift; + * extern int vl_video_selector; + + * extern void *vl_current_draw_buffer; + * extern int vl_current_stride, vl_current_height; + * extern int vl_current_offset, vl_current_delta; + */ + + .text + +/* Desc: VESA bank switching routine (BIOS) + * + * In : EBX=0, EDX = bank number + * Out : - + * + * Note: thrashes EAX + */ + .p2align 5,,31 +_vesa_swbankBIOS: + movw $0x4f05, %ax + int $0x10 + ret + + .p2align 2,,3 + .global _vesa_swbank +_vesa_swbank: .long _vesa_swbankBIOS + +/* Desc: void vesa_b_dump_virtual (void); + * + * In : - + * Out : - + * + * Note: uses current draw buffer + */ + .p2align 5,,31 + .global _vesa_b_dump_virtual +_vesa_b_dump_virtual: + cld + pushl %es + pushl %ebx + pushl %esi + pushl %edi + pushl %ebp + movl _vl_video_selector, %es + 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 + shrl $2, %ecx + .balign 4 + 0: + pushl %ecx + .balign 4 + 1: + cmpl %ebp, %edi + jb 2f + pushl %eax + pushl %ebx + incl %edx + xorl %ebx, %ebx + call *_vesa_swbank + popl %ebx + popl %eax + subl %ebp, %edi + .balign 4 + 2: + movsl + decl %ecx + jnz 1b + popl %ecx + addl %ebx, %edi + decl %eax + jnz 0b + popl %ebp + popl %edi + popl %esi + popl %ebx + popl %es + ret + +/* Desc: void vesa_l_dump_virtual (void); + * + * In : - + * Out : - + * + * Note: uses current draw buffer + */ + .p2align 5,,31 + .global _vesa_l_dump_virtual +_vesa_l_dump_virtual: + cld + pushl %es + pushl %esi + pushl %edi + movl _vl_video_selector, %es + 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, %eax + shrl $2, %ecx + .balign 4 + 0: + pushl %ecx + rep; movsl + popl %ecx + addl %eax, %edi + decl %edx + jnz 0b + popl %edi + popl %esi + popl %es + ret + +/* Desc: void vesa_l_dump_virtual_mmx (void); + * + * In : - + * Out : - + * + * Note: uses current draw buffer + */ + .p2align 5,,31 + .global _vesa_l_dump_virtual_mmx +_vesa_l_dump_virtual_mmx: +#ifdef USE_MMX_ASM + 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, %eax + shrl $3, %ecx + .balign 4 + 0: + pushl %ecx + .balign 4 + 1: + movq (%esi), %mm0 + addl $8, %esi + movq %mm0, %fs:(%edi) + addl $8, %edi + decl %ecx + jnz 1b + popl %ecx + addl %eax, %edi + decl %edx + jnz 0b + popl %edi + popl %esi + emms +#endif + ret |