swh:1:snp:c2847dfd741eae21606027cf29250d1ebcd63fb4
Raw File
Tip revision: c6935931c1894ff857616ff8549b61236a19148f authored by Linus Torvalds on 04 September 2016, 21:31:46 UTC
Linux 4.8-rc5
Tip revision: c693593
cmpdi2.S
! 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
back to top