OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gdb-7.2/] [sim/] [testsuite/] [sim/] [sh/] [resbank.s] - Rev 841

Compare with Previous | Blame | View Log

# sh testcase for ldbank stbank resbank
# mach:	 all
# as(sh):	-defsym sim_cpu=0
# as(shdsp):	-defsym sim_cpu=1 -dsp 
 
	.include "testutils.inc"
 
	.macro	SEND reg bankno regno
	set_greg ((\bankno << 7) + (\regno << 2)), \reg
	.endm
 
	start
 
stbank_1:
	set_grs_a5a5
	mov	#0, r0
	SEND	r1, 0, 0
	stbank	r0, @r1
	mov	#1, r0
	SEND	r1, 0, 1
	stbank	r0, @r1
	mov	#2, r0
	SEND	r1, 0, 2
	stbank	r0, @r1
	mov	#3, r0
	SEND	r1, 0, 3
	stbank	r0, @r1
	mov	#4, r0
	SEND	r1, 0, 4
	stbank	r0, @r1
	mov	#5, r0
	SEND	r1, 0, 5
	stbank	r0, @r1
	mov	#6, r0
	SEND	r1, 0, 6
	stbank	r0, @r1
	mov	#7, r0
	SEND	r1, 0, 7
	stbank	r0, @r1
	mov	#8, r0
	SEND	r1, 0, 8
	stbank	r0, @r1
	mov	#9, r0
	SEND	r1, 0, 9
	stbank	r0, @r1
	mov	#10, r0
	SEND	r1, 0, 10
	stbank	r0, @r1
	mov	#11, r0
	SEND	r1, 0, 11
	stbank	r0, @r1
	mov	#12, r0
	SEND	r1, 0, 12
	stbank	r0, @r1
	mov	#13, r0
	SEND	r1, 0, 13
	stbank	r0, @r1
	mov	#14, r0
	SEND	r1, 0, 14
	stbank	r0, @r1
	mov	#15, r0
	SEND	r1, 0, 15
	stbank	r0, @r1
	mov	#16, r0
	SEND	r1, 0, 16
	stbank	r0, @r1
	mov	#17, r0
	SEND	r1, 0, 17
	stbank	r0, @r1
	mov	#18, r0
	SEND	r1, 0, 18
	stbank	r0, @r1
	mov	#19, r0
	SEND	r1, 0, 19
	stbank	r0, @r1
 
	assertreg0	19
	assertreg	19 << 2, r1
	test_gr_a5a5	r2
	test_gr_a5a5	r3
	test_gr_a5a5	r4
	test_gr_a5a5	r5
	test_gr_a5a5	r6
	test_gr_a5a5	r7
	test_gr_a5a5	r8
	test_gr_a5a5	r9
	test_gr_a5a5	r10
	test_gr_a5a5	r11
	test_gr_a5a5	r12
	test_gr_a5a5	r13
	test_gr_a5a5	r14
 
ldbank_1:
	set_grs_a5a5
	SEND	r1, 0, 0
	ldbank	@r1, r0
	assertreg0 0
	SEND	r1, 0, 1
	ldbank	@r1, r0
	assertreg0 1
	SEND	r1, 0, 2
	ldbank	@r1, r0
	assertreg0 2
	SEND	r1, 0, 3
	ldbank	@r1, r0
	assertreg0 3
	SEND	r1, 0, 4
	ldbank	@r1, r0
	assertreg0 4
	SEND	r1, 0, 5
	ldbank	@r1, r0
	assertreg0 5
	SEND	r1, 0, 6
	ldbank	@r1, r0
	assertreg0 6
	SEND	r1, 0, 7
	ldbank	@r1, r0
	assertreg0 7
	SEND	r1, 0, 8
	ldbank	@r1, r0
	assertreg0 8
	SEND	r1, 0, 9
	ldbank	@r1, r0
	assertreg0 9
	SEND	r1, 0, 10
	ldbank	@r1, r0
	assertreg0 10
	SEND	r1, 0, 11
	ldbank	@r1, r0
	assertreg0 11
	SEND	r1, 0, 12
	ldbank	@r1, r0
	assertreg0 12
	SEND	r1, 0, 13
	ldbank	@r1, r0
	assertreg0 13
	SEND	r1, 0, 14
	ldbank	@r1, r0
	assertreg0 14
	SEND	r1, 0, 15
	ldbank	@r1, r0
	assertreg0 15
	SEND	r1, 0, 16
	ldbank	@r1, r0
	assertreg0 16
	SEND	r1, 0, 17
	ldbank	@r1, r0
	assertreg0 17
	SEND	r1, 0, 18
	ldbank	@r1, r0
	assertreg0 18
	SEND	r1, 0, 19
	ldbank	@r1, r0
	assertreg0 19
 
	assertreg (19 << 2), r1
	test_gr_a5a5 r2
	test_gr_a5a5 r3
	test_gr_a5a5 r4
	test_gr_a5a5 r5
	test_gr_a5a5 r6
	test_gr_a5a5 r7
	test_gr_a5a5 r8
	test_gr_a5a5 r9
	test_gr_a5a5 r10
	test_gr_a5a5 r11
	test_gr_a5a5 r12
	test_gr_a5a5 r13
	test_gr_a5a5 r14
 
resbank_1:
	set_grs_a5a5
	mov	#1, r0
	trapa	#13	! magic trap, sets ibnr
 
	resbank
 
	assertreg0	0
	assertreg	1, r1
	assertreg	2, r2
	assertreg	3, r3
	assertreg	4, r4
	assertreg	5, r5
	assertreg	6, r6
	assertreg	7, r7
	assertreg	8, r8
	assertreg	9, r9
	assertreg	10, r10
	assertreg	11, r11
	assertreg	12, r12
	assertreg	13, r13
	assertreg	14, r14
	assert_sreg	15, mach
	assert_sreg	17, pr
	assert_creg	18, gbr
	assert_sreg	19, macl
 
resbank_2:
	set_grs_a5a5
	movi20	#555, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
	add	#-1, r0
	mov.l	r0, @-r15
 
	set_sr_bit	(1 << 14)	! set BO
 
	resbank
 
	assert_sreg	555, macl
	assert_sreg	554, mach
	assert_creg	553, gbr
	assert_sreg	552, pr
	assertreg	551, r14
	assertreg	550, r13
	assertreg	549, r12
	assertreg	548, r11
	assertreg	547, r10
	assertreg	546, r9
	assertreg	545, r8
	assertreg	544, r7
	assertreg	543, r6
	assertreg	542, r5
	assertreg	541, r4
	assertreg	540, r3
	assertreg	539, r2
	assertreg	538, r1
	assertreg0	537
 
	mov		r15, r0
	assertreg0	stackt
 
	pass
 
	exit 0
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.