blob: ab70bd94fd81e06e27a3ffad667d7848b6a40923 [file] [log] [blame]
! SPDX-License-Identifier: GPL-2.0
! 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