Fixed crash on the Subway DM level. (something wrong with CMP_LL)

This commit is contained in:
Steven Fuller 2001-08-15 20:09:25 +00:00 committed by Patryk Obara
parent f4a6541010
commit dee2992e7f

View file

@ -183,8 +183,8 @@ __asm__("imull %%edx \n\t"
int CMP_LL(LONGLONGCH *a, LONGLONGCH *b) int CMP_LL(LONGLONGCH *a, LONGLONGCH *b)
{ {
int retval;
/* /*
int retval;
_asm _asm
{ {
mov ebx,a mov ebx,a
@ -205,6 +205,8 @@ int CMP_LL(LONGLONGCH *a, LONGLONGCH *b)
llgs: llgs:
} }
*/ */
#if 0
int retval;
/* TODO */ /* TODO */
__asm__("movl 0(%%ebx), %%eax \n\t" __asm__("movl 0(%%ebx), %%eax \n\t"
"movl 4(%%ebx), %%edx \n\t" "movl 4(%%ebx), %%edx \n\t"
@ -227,6 +229,18 @@ __asm__("movl 0(%%ebx), %%eax \n\t"
); );
return retval; return retval;
#else
if (a->hi32 > b->hi32)
return 1;
else if (a->hi32 < b->hi32)
return -1;
else if (a->lo32 > b->lo32)
return 1;
else if (a->lo32 < b->lo32)
return -1;
else
return 0;
#endif
} }
/* EQUALS */ /* EQUALS */
@ -244,6 +258,7 @@ void EQUALS_LL(LONGLONGCH *a, LONGLONGCH *b)
mov [edi+4],edx mov [edi+4],edx
} }
*/ */
#if 0
__asm__("movl 0(%%esi), %%eax \n\t" __asm__("movl 0(%%esi), %%eax \n\t"
"movl 4(%%esi), %%edx \n\t" "movl 4(%%esi), %%edx \n\t"
"movl %%eax, 0(%%edi) \n\t" "movl %%eax, 0(%%edi) \n\t"
@ -252,6 +267,9 @@ __asm__("movl 0(%%esi), %%eax \n\t"
: "D" (a), "S" (b) : "D" (a), "S" (b)
: "%eax", "%edx", "memory" : "%eax", "%edx", "memory"
); );
#else
*a = *b;
#endif
} }
/* NEGATE */ /* NEGATE */