symbian-qemu-0.9.1-12/qemu-symbian-svp/tests/cris/check_xarith.s
author mikek
Mon, 05 Jul 2010 15:30:26 +0100
branchGCC_SURGE
changeset 87 42ae69d3c4a8
parent 1 2fb8b9db1c86
permissions -rw-r--r--
1) Fix for Bug 3157 - Compilation error in gui_common.h 2) Fix for Bug 3158 - Compilation error in qemu-char.c 3) Fix for Bug 3160 - [GCCE] Illegal instruction in baseport/syborg/bootstrap/syborg.s 4) Fix for Bug 3162 - [GCCE] VFP math support needs excluded to build syborg ROM 5) Fix for Bug 3163 - [GCCE] Syborg baseport build breaks when EPOCROOT is not filesystem root 6) Fix for Bug 3164 - [GCCE] baseport/syborg/bld.inf needs to discriminate GCCE from ARMCC


.include "testutils.inc"

	start

	moveq	-1, $r0
	moveq	0, $r1
	addq	1, $r0
	ax
	addq	0, $r1

	move.d	$r0, $r3
	checkr3 0
	move.d	$r1, $r3
	checkr3 1

	move.d  0, $r0
	moveq	-1, $r1
	subq	1, $r0
	ax
	subq	0, $r1

	move.d	$r0, $r3
	checkr3 ffffffff
	move.d	$r1, $r3
	checkr3 fffffffe


	moveq	-1, $r0
	moveq	-1, $r1
	cmpq	-1, $r0
	ax
	cmpq	-1, $r1
	beq	1f
	nop
	fail
1:
	cmpq	0, $r0
	ax
	cmpq	-1, $r1
	bne	1f
	nop
	fail
1:

	;; test for broken X sequence, run it several times.
	moveq	8, $r0
1:
	moveq	0, $r3
	move.d	$r0, $r1
	andq	1, $r1
	lslq	4, $r1
	moveq	1, $r2
	or.d	$r1, $r2
	ba	2f
	move	$r2, $ccs
2:
	addq	0, $r3
	move.d	$r0, $r4
	move.d	$r1, $r5
	move.d	$r2, $r6
	move.d	$r3, $r7
	lsrq	4, $r1
	move.d	$r1, $r8
	xor	$r1, $r3
	checkr3	0
	subq	1, $r0
	bne	1b
	nop

	pass
	quit