123456789101112131415161718192021222324252627282930313233 |
- ! Copyright (C) 2012 by Imagination Technologies Ltd.
- !
- ! 64-bit signed compare routine.
- !
- .text
- .global ___cmpdi2
- .type ___cmpdi2,function
- ! low high
- ! s64 a (D0Ar2, D1Ar1)
- ! s64 b (D0Ar4, D1Ar3)
- ___cmpdi2:
- ! start at 1 (equal) and conditionally increment or decrement
- MOV D0Re0,#1
- ! high words differ?
- CMP D1Ar1,D1Ar3
- BNE $Lhigh_differ
- ! unsigned compare low words
- CMP D0Ar2,D0Ar4
- SUBLO D0Re0,D0Re0,#1
- ADDHI D0Re0,D0Re0,#1
- MOV PC,D1RtP
- $Lhigh_differ:
- ! signed compare high words
- SUBLT D0Re0,D0Re0,#1
- ADDGT D0Re0,D0Re0,#1
- MOV PC,D1RtP
- .size ___cmpdi2,.-___cmpdi2
|