31 lines
649 B
ArmAsm
31 lines
649 B
ArmAsm
! cmp64*() - 64 bit compare Author: Kees J. Bot
|
|
! 7 Dec 1995
|
|
.sect .text
|
|
.define _cmp64, _cmp64u, _cmp64ul
|
|
|
|
_cmp64: ! int cmp64(u64_t i, u64_t j);
|
|
mov ecx, esp
|
|
cmp64: xor eax, eax
|
|
mov edx, 4(ecx)
|
|
sub edx, 12(ecx)
|
|
mov edx, 8(ecx)
|
|
sbb edx, 16(ecx)
|
|
sbb eax, eax ! eax = - (i < j)
|
|
mov edx, 12(ecx)
|
|
sub edx, 4(ecx)
|
|
mov edx, 16(ecx)
|
|
sbb edx, 8(ecx)
|
|
adc eax, 0 ! eax = (i > j) - (i < j)
|
|
ret
|
|
|
|
_cmp64u: ! int cmp64u(u64_t i, unsigned j);
|
|
_cmp64ul: ! int cmp64ul(u64_t i, unsigned long j);
|
|
mov ecx, esp
|
|
push 16(ecx)
|
|
mov 16(ecx), 0
|
|
call cmp64
|
|
pop 16(ecx)
|
|
ret
|
|
|
|
!
|
|
! $PchId: cmp64.ack.s,v 1.2 1996/04/11 18:59:57 philip Exp $
|