Patch from EvilTypeGuy, compiles under gcc 3.0

This commit is contained in:
theoddone33
2001-08-03 01:37:03 +00:00
parent fcd7dfbdf4
commit 4652d33402
3 changed files with 295 additions and 295 deletions

View File

@@ -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)));

View File

@@ -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

View File

@@ -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);