huangcm
2025-08-30 0269911b91ed7e03c24005924cc6423abf245fb8
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