Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

! 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