1343,65 → 1343,65 |
|
inline void copy_videomem_32to16(void *src, void *dst, unsigned long int memdiv2) |
{ |
__asm__ __volatile__("push %%esi |
push %%edi |
movl %1, %%esi |
movl %2, %%edi |
1: |
movl (%%esi), %%edx |
xorl %%ebx, %%ebx |
xorw %%ax, %%ax |
movb %%dl, %%al |
shrl $0x8, %%edx |
shrw $0x3, %%ax |
orw %%ax, %%bx |
shll $0x6, %%ebx |
xorw %%ax, %%ax |
movb %%dl, %%al |
shrl $0x8, %%edx |
shrw $0x2, %%ax |
orw %%ax, %%bx |
shll $0x5, %%ebx |
xorw %%ax, %%ax |
movb %%dl, %%al |
shrw $0x3, %%ax |
orw %%ax, %%bx |
shll $0x5, %%ebx |
incl %%esi |
incl %%esi |
incl %%esi |
incl %%esi |
movl (%%esi), %%edx |
xorw %%ax, %%ax |
movb %%dl, %%al |
shrl $0x8,%%edx |
shrw $0x3, %%ax |
orw %%ax, %%bx |
shll $0x6, %%ebx |
xorw %%ax, %%ax |
movb %%dl, %%al |
shrl $0x8, %%edx |
shrw $0x2, %%ax |
orw %%ax, %%bx |
shll $0x5, %%ebx |
xorw %%ax, %%ax |
movb %%dl, %%al |
shrw $0x3, %%ax |
orw %%ax, %%bx |
rorl $0x10, %%ebx |
movl %%ebx, (%%edi) |
incl %%esi |
incl %%esi |
incl %%esi |
incl %%esi |
incl %%edi |
incl %%edi |
incl %%edi |
incl %%edi |
loop 1b |
pop %%edi |
pop %%esi" |
: |
__asm__ __volatile__("push %%esi\n\t" |
"push %%edi\n\t" |
"movl %1, %%esi\n\t" |
"movl %2, %%edi\n\t" |
"1:\n\t" |
"movl (%%esi), %%edx\n\t" |
"xorl %%ebx, %%ebx\n\t" |
"xorw %%ax, %%ax\n\t" |
"movb %%dl, %%al\n\t" |
"shrl $0x8, %%edx\n\t" |
"shrw $0x3, %%ax\n\t" |
"orw %%ax, %%bx\n\t" |
"shll $0x6, %%ebx\n\t" |
"xorw %%ax, %%ax\n\t" |
"movb %%dl, %%al\n\t" |
"shrl $0x8, %%edx\n\t" |
"shrw $0x2, %%ax\n\t" |
"orw %%ax, %%bx\n\t" |
"shll $0x5, %%ebx\n\t" |
"xorw %%ax, %%ax\n\t" |
"movb %%dl, %%al\n\t" |
"shrw $0x3, %%ax\n\t" |
"orw %%ax, %%bx\n\t" |
"shll $0x5, %%ebx\n\t" |
"incl %%esi\n\t" |
"incl %%esi\n\t" |
"incl %%esi\n\t" |
"incl %%esi\n\t" |
"movl (%%esi), %%edx\n\t" |
"xorw %%ax, %%ax\n\t" |
"movb %%dl, %%al\n\t" |
"shrl $0x8,%%edx\n\t" |
"shrw $0x3, %%ax\n\t" |
"orw %%ax, %%bx\n\t" |
"shll $0x6, %%ebx\n\t" |
"xorw %%ax, %%ax\n\t" |
"movb %%dl, %%al\n\t" |
"shrl $0x8, %%edx\n\t" |
"shrw $0x2, %%ax\n\t" |
"orw %%ax, %%bx\n\t" |
"shll $0x5, %%ebx\n\t" |
"xorw %%ax, %%ax\n\t" |
"movb %%dl, %%al\n\t" |
"shrw $0x3, %%ax\n\t" |
"orw %%ax, %%bx\n\t" |
"rorl $0x10, %%ebx\n\t" |
"movl %%ebx, (%%edi)\n\t" |
"incl %%esi\n\t" |
"incl %%esi\n\t" |
"incl %%esi\n\t" |
"incl %%esi\n\t" |
"incl %%edi\n\t" |
"incl %%edi\n\t" |
"incl %%edi\n\t" |
"incl %%edi\n\t" |
"loop 1b\n\t" |
"pop %%edi\n\t" |
"pop %%esi\n\t" |
: |
: "c" (memdiv2), "a" (src), "b" (dst)); |
|
} |
1408,16 → 1408,16 |
|
inline void copy_videomem_16to16(void *src, void *dst, unsigned long int memdiv4) |
{ |
__asm__ __volatile__("push %%esi |
push %%edi |
movl %1, %%esi |
movl %2, %%edi |
cld |
rep |
movsl |
__asm__ __volatile__("push %%esi\n\t" |
"push %%edi\n\t" |
"movl %1, %%esi\n\t" |
"movl %2, %%edi\n\t" |
"cld\n\t" |
"rep\n\t" |
"movsl\n\t" |
|
pop %%edi |
pop %%esi" |
"pop %%edi\n\t" |
"pop %%esi\n\t" |
: |
: "c" (memdiv4), "a" (src), "b" (dst)); |
|