Patch from EvilTypeGuy, compiles under gcc 3.0
This commit is contained in:
@@ -238,8 +238,8 @@ void InitDSP(void)
|
|||||||
{
|
{
|
||||||
#ifdef __OPT__
|
#ifdef __OPT__
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
CosTable2 = malloc(INCR*sizeof(double));
|
*CosTable2 = malloc(INCR*sizeof(double));
|
||||||
SinTable2 = malloc(INCR*sizeof(double));
|
*SinTable2 = malloc(INCR*sizeof(double));
|
||||||
for (i=0; i<INCR; i++){
|
for (i=0; i<INCR; i++){
|
||||||
CosTable2[i] = (cos((double)(2*PI*i/INCR)));
|
CosTable2[i] = (cos((double)(2*PI*i/INCR)));
|
||||||
SinTable2[i] = (sin((double)(2*PI*i/INCR)));
|
SinTable2[i] = (sin((double)(2*PI*i/INCR)));
|
||||||
|
|||||||
@@ -121,48 +121,48 @@ void sw_clearwin()
|
|||||||
LockSurface();
|
LockSurface();
|
||||||
switch (BitDepth) {
|
switch (BitDepth) {
|
||||||
case 16:
|
case 16:
|
||||||
__asm__ __volatile__ ("
|
__asm__ __volatile__ (
|
||||||
pushw %%es
|
" pushw %%es\n" \
|
||||||
movw %%ds, %%ax
|
" movw %%ds, %%ax\n" \
|
||||||
movw %%ax, %%es
|
" movw %%ax, %%es\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
movl SurfBufD, %%edi
|
" movl SurfBufD, %%edi\n" \
|
||||||
xorl %%ebx, %%ebx
|
" xorl %%ebx, %%ebx\n" \
|
||||||
Blank2:
|
"Blank2:\n" \
|
||||||
movl SurfaceX, %%ecx
|
" movl SurfaceX, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
stosw
|
" stosw\n" \
|
||||||
addl pitch, %%edi
|
" addl pitch, %%edi\n" \
|
||||||
subl SurfaceX, %%edi
|
" subl SurfaceX, %%edi\n" \
|
||||||
subl SurfaceX, %%edi
|
" subl SurfaceX, %%edi\n" \
|
||||||
addl $1, %%ebx
|
" addl $1, %%ebx\n" \
|
||||||
cmpl SurfaceY, %%ebx
|
" cmpl SurfaceY, %%ebx\n" \
|
||||||
jne Blank2
|
" jne Blank2\n" \
|
||||||
popw %%es
|
" popw %%es\n" \
|
||||||
" : : : "cc", "memory", "eax", "ebx", "ecx", "edi");
|
: : : "cc", "memory", "eax", "ebx", "ecx", "edi");
|
||||||
break;
|
break;
|
||||||
case 32:
|
case 32:
|
||||||
__asm__ __volatile__ ("
|
__asm__ __volatile__ (
|
||||||
pushw %%es
|
" pushw %%es\n" \
|
||||||
movw %%ds, %%ax
|
" movw %%ds, %%ax\n" \
|
||||||
movw %%ax, %%es
|
" movw %%ax, %%es\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
movl SurfBufD, %%edi
|
" movl SurfBufD, %%edi\n" \
|
||||||
xorl %%ebx, %%ebx
|
" xorl %%ebx, %%ebx\n" \
|
||||||
Blank3:
|
"Blank3:\n" \
|
||||||
movl SurfaceX, %%ecx
|
" movl SurfaceX, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
stosl
|
" stosl\n" \
|
||||||
addl pitch, %%edi
|
" addl pitch, %%edi\n" \
|
||||||
subl SurfaceX, %%edi
|
" subl SurfaceX, %%edi\n" \
|
||||||
subl SurfaceX, %%edi
|
" subl SurfaceX, %%edi\n" \
|
||||||
subl SurfaceX, %%edi
|
" subl SurfaceX, %%edi\n" \
|
||||||
subl SurfaceX, %%edi
|
" subl SurfaceX, %%edi\n" \
|
||||||
addl $1, %%ebx
|
" addl $1, %%ebx\n" \
|
||||||
cmpl SurfaceY, %%ebx
|
" cmpl SurfaceY, %%ebx\n" \
|
||||||
jne Blank3
|
" jne Blank3\n" \
|
||||||
popw %%es
|
" popw %%es\n" \
|
||||||
" : : : "cc", "memory", "eax", "ebx", "ecx","edi");
|
: : : "cc", "memory", "eax", "ebx", "ecx","edi");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
UnlockSurface();
|
UnlockSurface();
|
||||||
@@ -201,95 +201,95 @@ void sw_drawwin()
|
|||||||
switch(BitDepth) {
|
switch(BitDepth) {
|
||||||
case 16:
|
case 16:
|
||||||
if (FPUCopy){
|
if (FPUCopy){
|
||||||
__asm__ __volatile__ ("
|
__asm__ __volatile__ (
|
||||||
pushw %%es
|
" pushw %%es\n" \
|
||||||
movw %%ds, %%ax
|
" movw %%ds, %%ax\n" \
|
||||||
movw %%ax, %%es
|
" movw %%ax, %%es\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
movl ScreenPtr, %%esi
|
" movl ScreenPtr, %%esi\n" \
|
||||||
movl SurfBufD, %%edi
|
" movl SurfBufD, %%edi\n" \
|
||||||
Copying3:
|
"Copying3:\n" \
|
||||||
movl $32, %%ecx
|
" movl $32, %%ecx\n" \
|
||||||
CopyLoop:
|
"CopyLoop:\n" \
|
||||||
movq (%%esi), %%mm0
|
" movq (%%esi), %%mm0\n" \
|
||||||
movq 8(%%esi), %%mm1
|
" movq 8(%%esi), %%mm1\n" \
|
||||||
movq %%mm0, (%%edi)
|
" movq %%mm0, (%%edi)\n" \
|
||||||
movq %%mm1, 8(%%edi)
|
" movq %%mm1, 8(%%edi)\n" \
|
||||||
addl $16, %%esi
|
" addl $16, %%esi\n" \
|
||||||
addl $16, %%edi
|
" addl $16, %%edi\n" \
|
||||||
decl %%ecx
|
" decl %%ecx\n" \
|
||||||
jnz CopyLoop
|
" jnz CopyLoop\n" \
|
||||||
incl %%eax
|
" incl %%eax\n" \
|
||||||
addl pitch, %%edi
|
" addl pitch, %%edi\n" \
|
||||||
subl $512, %%edi
|
" subl $512, %%edi\n" \
|
||||||
addl $64, %%esi
|
" addl $64, %%esi\n" \
|
||||||
cmpl $223, %%eax
|
" cmpl $223, %%eax\n" \
|
||||||
jne Copying3
|
" jne Copying3\n" \
|
||||||
|
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
movl $128, %%ecx
|
" movl $128, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
stosl
|
" stosl\n" \
|
||||||
popw %%es
|
" popw %%es\n" \
|
||||||
emms
|
" emms\n" \
|
||||||
" : : : "cc", "memory", "eax", "ebx", "ecx","edi", "esi");
|
: : : "cc", "memory", "eax", "ebx", "ecx","edi", "esi");
|
||||||
} else {
|
} else {
|
||||||
// Doesn't seem to work - DDOI
|
// Doesn't seem to work - DDOI
|
||||||
__asm__ __volatile__ ("
|
__asm__ __volatile__ (
|
||||||
pushw %%es
|
" pushw %%es\n" \
|
||||||
movw %%ds, %%ax
|
" movw %%ds, %%ax\n" \
|
||||||
movw %%ax, %%es
|
" movw %%ax, %%es\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
movl ScreenPtr, %%esi
|
" movl ScreenPtr, %%esi\n" \
|
||||||
movl SurfBufD, %%edi
|
" movl SurfBufD, %%edi\n" \
|
||||||
Copying:
|
"Copying:\n" \
|
||||||
movl $128, %%ecx
|
" movl $128, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
movsl
|
" movsl\n" \
|
||||||
incl %%eax
|
" incl %%eax\n" \
|
||||||
addl pitch, %%edi
|
" addl pitch, %%edi\n" \
|
||||||
subl $512, %%edi
|
" subl $512, %%edi\n" \
|
||||||
addl $64, %%esi
|
" addl $64, %%esi\n" \
|
||||||
cmpl $223, %%eax
|
" cmpl $223, %%eax\n" \
|
||||||
jne Copying
|
" jne Copying\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
movl $128, %%ecx
|
" movl $128, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
stosl
|
" stosl\n" \
|
||||||
popw %%es
|
" popw %%es\n" \
|
||||||
" : : : "cc", "memory", "eax", "ebx", "ecx","edi", "esi");
|
: : : "cc", "memory", "eax", "ebx", "ecx","edi", "esi");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 32:
|
case 32:
|
||||||
__asm__ __volatile__ ("
|
__asm__ __volatile__ (
|
||||||
pushw %%es
|
" pushw %%es\n" \
|
||||||
movw %%ds, %%ax
|
" movw %%ds, %%ax\n" \
|
||||||
movw %%ax, %%es
|
" movw %%ax, %%es\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
movl BitConv32Ptr, %%ebx
|
" movl BitConv32Ptr, %%ebx\n" \
|
||||||
movl ScreenPtr, %%esi
|
" movl ScreenPtr, %%esi\n" \
|
||||||
movl SurfBufD, %%edi
|
" movl SurfBufD, %%edi\n" \
|
||||||
Copying32b:
|
"Copying32b:\n" \
|
||||||
movl $256, %%ecx
|
" movl $256, %%ecx\n" \
|
||||||
pushl %%eax
|
" pushl %%eax\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
CopyLoop32b:
|
"CopyLoop32b:\n" \
|
||||||
movw (%%esi), %%ax
|
" movw (%%esi), %%ax\n" \
|
||||||
addl $2, %%esi
|
" addl $2, %%esi\n" \
|
||||||
movl (%%ebx, %%eax, 4), %%edx
|
" movl (%%ebx, %%eax, 4), %%edx\n" \
|
||||||
movl %%edx, (%%edi)
|
" movl %%edx, (%%edi)\n" \
|
||||||
addl $4, %%edi
|
" addl $4, %%edi\n" \
|
||||||
loop CopyLoop32b
|
" loop CopyLoop32b\n" \
|
||||||
popl %%eax
|
" popl %%eax\n" \
|
||||||
incl %%eax
|
" incl %%eax\n" \
|
||||||
addl pitch, %%edi
|
" addl pitch, %%edi\n" \
|
||||||
subl $1024, %%edi
|
" subl $1024, %%edi\n" \
|
||||||
addl $64, %%esi
|
" addl $64, %%esi\n" \
|
||||||
cmpl $223, %%eax
|
" cmpl $223, %%eax\n" \
|
||||||
jne Copying32b
|
" jne Copying32b\n" \
|
||||||
popw %%es
|
" popw %%es\n" \
|
||||||
" : : : "cc", "memory", "eax", "ebx", "ecx","edi", "esi");
|
: : : "cc", "memory", "eax", "ebx", "ecx","edi", "esi");
|
||||||
SURFDW = (DWORD *) SurfBufD + 222*pitch;
|
SURFDW = (DWORD *) SurfBufD + 222*pitch;
|
||||||
color32 = 0x7F000000;
|
color32 = 0x7F000000;
|
||||||
|
|
||||||
@@ -333,105 +333,105 @@ void sw_drawwin()
|
|||||||
switch(BitDepth) {
|
switch(BitDepth) {
|
||||||
case 16:
|
case 16:
|
||||||
if (FPUCopy) {
|
if (FPUCopy) {
|
||||||
__asm__ __volatile__ ("
|
__asm__ __volatile__ (
|
||||||
pushw %%es
|
" pushw %%es\n" \
|
||||||
movw %%ds, %%ax
|
" movw %%ds, %%ax\n" \
|
||||||
movw %%ax, %%es
|
" movw %%ax, %%es\n" \
|
||||||
xor %%eax, %%eax
|
" xor %%eax, %%eax\n" \
|
||||||
xor %%ebx, %%ebx
|
" xor %%ebx, %%ebx\n" \
|
||||||
movl ScreenPtr, %%esi
|
" movl ScreenPtr, %%esi\n" \
|
||||||
movl SurfBufD, %%edi
|
" movl SurfBufD, %%edi\n" \
|
||||||
Blank1MMX:
|
"Blank1MMX:\n" \
|
||||||
mov $160, %%ecx
|
" mov $160, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
stosl
|
" stosl\n" \
|
||||||
subl $160, %%edi
|
" subl $160, %%edi\n" \
|
||||||
addl pitch, %%edi
|
" addl pitch, %%edi\n" \
|
||||||
addl $1, %%ebx
|
" addl $1, %%ebx\n" \
|
||||||
cmpl $8, %%ebx
|
" cmpl $8, %%ebx\n" \
|
||||||
jne Blank1MMX
|
" jne Blank1MMX\n" \
|
||||||
xor %%ebx, %%ebx
|
" xor %%ebx, %%ebx\n" \
|
||||||
pxor %%mm0, %%mm0
|
" pxor %%mm0, %%mm0\n" \
|
||||||
Copying2MMX:
|
"Copying2MMX:\n" \
|
||||||
mov $4, %%ecx
|
" mov $4, %%ecx\n" \
|
||||||
MMXLoopA:
|
"MMXLoopA:\n" \
|
||||||
movq %%mm0, 0(%%edi)
|
" movq %%mm0, 0(%%edi)\n" \
|
||||||
movq %%mm0, 8(%%edi)
|
" movq %%mm0, 8(%%edi)\n" \
|
||||||
addl $16, %%edi
|
" addl $16, %%edi\n" \
|
||||||
dec %%ecx
|
" dec %%ecx\n" \
|
||||||
jnz MMXLoopA
|
" jnz MMXLoopA\n" \
|
||||||
mov $32, %%ecx
|
" mov $32, %%ecx\n" \
|
||||||
MMXLoopB:
|
"MMXLoopB:\n" \
|
||||||
movq 0(%%esi), %%mm1
|
" movq 0(%%esi), %%mm1\n" \
|
||||||
movq 8(%%esi), %%mm2
|
" movq 8(%%esi), %%mm2\n" \
|
||||||
movq %%mm1, 0(%%edi)
|
" movq %%mm1, 0(%%edi)\n" \
|
||||||
movq %%mm2, 8(%%edi)
|
" movq %%mm2, 8(%%edi)\n" \
|
||||||
addl $16, %%esi
|
" addl $16, %%esi\n" \
|
||||||
addl $16, %%edi
|
" addl $16, %%edi\n" \
|
||||||
decl %%ecx
|
" decl %%ecx\n" \
|
||||||
jnz MMXLoopB
|
" jnz MMXLoopB\n" \
|
||||||
mov $4, %%ecx
|
" mov $4, %%ecx\n" \
|
||||||
MMXLoopC:
|
"MMXLoopC:\n" \
|
||||||
movq %%mm0, 0(%%edi)
|
" movq %%mm0, 0(%%edi)\n" \
|
||||||
movq %%mm0, 8(%%edi)
|
" movq %%mm0, 8(%%edi)\n" \
|
||||||
addl $16, %%edi
|
" addl $16, %%edi\n" \
|
||||||
decl %%ecx
|
" decl %%ecx\n" \
|
||||||
jnz MMXLoopC
|
" jnz MMXLoopC\n" \
|
||||||
incl %%ebx
|
" incl %%ebx\n" \
|
||||||
addl pitch, %%edi
|
" addl pitch, %%edi\n" \
|
||||||
subl $640, %%edi
|
" subl $640, %%edi\n" \
|
||||||
addl $64, %%esi
|
" addl $64, %%esi\n" \
|
||||||
cmpl $223, %%ebx
|
" cmpl $223, %%ebx\n" \
|
||||||
jne Copying2MMX
|
" jne Copying2MMX\n" \
|
||||||
|
|
||||||
movl $128, %%ecx
|
" movl $128, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
stosl
|
" stosl\n" \
|
||||||
pop %%es
|
" pop %%es\n" \
|
||||||
emms
|
" emms\n" \
|
||||||
" : : : "cc", "memory", "eax", "ebx", "ecx","edi", "esi");
|
: : : "cc", "memory", "eax", "ebx", "ecx","edi", "esi");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
__asm__ __volatile__ ("
|
__asm__ __volatile__ (
|
||||||
push %%es
|
" push %%es\n" \
|
||||||
movw %%ds, %%ax
|
" movw %%ds, %%ax\n" \
|
||||||
movw %%ax, %%es
|
" movw %%ax, %%es\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
xorl %%ebx, %%ebx
|
" xorl %%ebx, %%ebx\n" \
|
||||||
movl ScreenPtr, %%esi
|
" movl ScreenPtr, %%esi\n" \
|
||||||
movl SurfBufD, %%edi
|
" movl SurfBufD, %%edi\n" \
|
||||||
Blank1:
|
"Blank1:\n" \
|
||||||
movl $160, %%ecx
|
" movl $160, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
stosl
|
" stosl\n" \
|
||||||
subl $640, %%edi
|
" subl $640, %%edi\n" \
|
||||||
addl pitch, %%edi
|
" addl pitch, %%edi\n" \
|
||||||
addl $1, %%ebx
|
" addl $1, %%ebx\n" \
|
||||||
cmpl $8, %%ebx
|
" cmpl $8, %%ebx\n" \
|
||||||
jne Blank1
|
"jne Blank1\n" \
|
||||||
xor %%ebx, %%ebx
|
" xor %%ebx, %%ebx\n" \
|
||||||
Copying2:
|
"Copying2:\n" \
|
||||||
movl $16, %%ecx
|
" movl $16, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
stosl
|
" stosl\n" \
|
||||||
movl $128, %%ecx
|
" movl $128, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
movsl
|
" movsl\n" \
|
||||||
movl $16, %%ecx
|
" movl $16, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
stosl
|
" stosl\n" \
|
||||||
incl %%ebx
|
" incl %%ebx\n" \
|
||||||
addl pitch, %%edi
|
" addl pitch, %%edi\n" \
|
||||||
subl $640, %%edi
|
" subl $640, %%edi\n" \
|
||||||
addl $64, %%esi
|
" addl $64, %%esi\n" \
|
||||||
cmpl $223, %%ebx
|
" cmpl $223, %%ebx\n" \
|
||||||
jne Copying2
|
" jne Copying2\n" \
|
||||||
|
|
||||||
movl $128, %%ecx
|
" movl $128, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
stosl
|
" stosl\n" \
|
||||||
pop %%es
|
" pop %%es\n" \
|
||||||
" : : : "cc", "memory", "eax", "ebx", "ecx","edi", "esi");
|
: : : "cc", "memory", "eax", "ebx", "ecx","edi", "esi");
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -508,40 +508,40 @@ void sw_drawwin()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 32:
|
case 32:
|
||||||
__asm__ __volatile__ ("
|
__asm__ __volatile__ (
|
||||||
pushw %%es
|
" pushw %%es\n" \
|
||||||
movw %%ds, %%ax
|
" movw %%ds, %%ax\n" \
|
||||||
movw %%ax, %%es
|
" movw %%ax, %%es\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
movl BitConv32Ptr, %%ebx
|
" movl BitConv32Ptr, %%ebx\n" \
|
||||||
movl ScreenPtr, %%esi
|
" movl ScreenPtr, %%esi\n" \
|
||||||
movl SurfBufD, %%edi
|
" movl SurfBufD, %%edi\n" \
|
||||||
Copying32c:
|
"Copying32c:\n" \
|
||||||
movl $256, %%ecx
|
" movl $256, %%ecx\n" \
|
||||||
pushl %%eax
|
" pushl %%eax\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
CopyLoop32c:
|
"CopyLoop32c:\n" \
|
||||||
movw (%%esi), %%ax
|
" movw (%%esi), %%ax\n" \
|
||||||
addl $2, %%esi
|
" addl $2, %%esi\n" \
|
||||||
movl (%%ebx, %%eax, 4), %%edx
|
" movl (%%ebx, %%eax, 4), %%edx\n" \
|
||||||
movl %%edx, (%%edi)
|
" movl %%edx, (%%edi)\n" \
|
||||||
movl %%edx, 4(%%edi)
|
" movl %%edx, 4(%%edi)\n" \
|
||||||
addl $8, %%edi
|
" addl $8, %%edi\n" \
|
||||||
loop CopyLoop32c
|
" loop CopyLoop32c\n" \
|
||||||
pushl %%esi
|
" pushl %%esi\n" \
|
||||||
movl %%edi, %%esi
|
" movl %%edi, %%esi\n" \
|
||||||
subl pitch, %%esi
|
" subl pitch, %%esi\n" \
|
||||||
movl $512, %%ecx
|
" movl $512, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
movsl
|
" movsl\n" \
|
||||||
popl %%esi
|
" popl %%esi\n" \
|
||||||
popl %%eax
|
" popl %%eax\n" \
|
||||||
incl %%eax
|
" incl %%eax\n" \
|
||||||
addl $64, %%esi
|
" addl $64, %%esi\n" \
|
||||||
cmpl $223, %%eax
|
" cmpl $223, %%eax\n" \
|
||||||
jne Copying32c
|
" jne Copying32c\n" \
|
||||||
popw %%es
|
" popw %%es\n" \
|
||||||
" : : : "cc", "memory","eax","ebx","ecx","edx","edi","esi");
|
: : : "cc", "memory","eax","ebx","ecx","edx","edi","esi");
|
||||||
break;
|
break;
|
||||||
/*
|
/*
|
||||||
addl pitch, %%edi
|
addl pitch, %%edi
|
||||||
@@ -570,43 +570,43 @@ void sw_drawwin()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 32:
|
case 32:
|
||||||
__asm__ __volatile__ ("
|
__asm__ __volatile__ (
|
||||||
pushw %%es
|
" pushw %%es\n" \
|
||||||
movw %%ds, %%ax
|
" movw %%ds, %%ax\n" \
|
||||||
movw %%ax, %%es
|
" movw %%ax, %%es\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
movl BitConv32Ptr, %%ebx
|
" movl BitConv32Ptr, %%ebx\n" \
|
||||||
movl ScreenPtr, %%esi
|
" movl ScreenPtr, %%esi\n" \
|
||||||
movl SurfBufD, %%edi
|
" movl SurfBufD, %%edi\n" \
|
||||||
addl $20608, %%edi
|
" addl $20608, %%edi\n" \
|
||||||
Copying32d:
|
"Copying32d:\n" \
|
||||||
movl $256, %%ecx
|
" movl $256, %%ecx\n" \
|
||||||
pushl %%eax
|
" pushl %%eax\n" \
|
||||||
xorl %%eax, %%eax
|
" xorl %%eax, %%eax\n" \
|
||||||
CopyLoop32d:
|
"CopyLoop32d:\n" \
|
||||||
movw (%%esi), %%ax
|
" movw (%%esi), %%ax\n" \
|
||||||
addl $2, %%esi
|
" addl $2, %%esi\n" \
|
||||||
movl (%%ebx, %%eax, 4), %%edx
|
" movl (%%ebx, %%eax, 4), %%edx\n" \
|
||||||
movl %%edx, (%%edi)
|
" movl %%edx, (%%edi)\n" \
|
||||||
movl %%edx, 4(%%edi)
|
" movl %%edx, 4(%%edi)\n" \
|
||||||
addl $8, %%edi
|
" addl $8, %%edi\n" \
|
||||||
loop CopyLoop32d
|
" loop CopyLoop32d\n" \
|
||||||
addl $512, %%edi
|
" addl $512, %%edi\n" \
|
||||||
pushl %%esi
|
" pushl %%esi\n" \
|
||||||
movl %%edi, %%esi
|
" movl %%edi, %%esi\n" \
|
||||||
subl pitch, %%esi
|
" subl pitch, %%esi\n" \
|
||||||
movl $512, %%ecx
|
" movl $512, %%ecx\n" \
|
||||||
rep
|
" rep\n" \
|
||||||
movsl
|
" movsl\n" \
|
||||||
popl %%esi
|
" popl %%esi\n" \
|
||||||
popl %%eax
|
" popl %%eax\n" \
|
||||||
incl %%eax
|
" incl %%eax\n" \
|
||||||
addl $512, %%edi
|
" addl $512, %%edi\n" \
|
||||||
addl $64, %%esi
|
" addl $64, %%esi\n" \
|
||||||
cmpl $223, %%eax
|
" cmpl $223, %%eax\n" \
|
||||||
jne Copying32d
|
" jne Copying32d\n" \
|
||||||
popw %%es
|
" popw %%es\n" \
|
||||||
" : : : "cc", "memory","eax","ebx","ecx","edx","edi","esi");
|
: : : "cc", "memory","eax","ebx","ecx","edx","edi","esi");
|
||||||
break;
|
break;
|
||||||
/*
|
/*
|
||||||
addl pitch, %%edi
|
addl pitch, %%edi
|
||||||
|
|||||||
@@ -242,11 +242,11 @@ DWORD ZFileDelete()
|
|||||||
|
|
||||||
DWORD ZFileGetFTime()
|
DWORD ZFileGetFTime()
|
||||||
{
|
{
|
||||||
struct _stat filestat;
|
struct stat filestat;
|
||||||
|
|
||||||
ZFTime=0;
|
ZFTime=0;
|
||||||
|
|
||||||
if (_stat(ZFFTimeFName, &filestat) < 0) ZFDate=0;
|
if (stat(ZFFTimeFName, &filestat) < 0) ZFDate=0;
|
||||||
else ZFDate = filestat.st_mtime;
|
else ZFDate = filestat.st_mtime;
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user