1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| ! 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
|
|