aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/bfin/se_rets_hazard.s
blob: 7406e8708fc66dcde1030ed38871f595867be229 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//Original:/testcases/seq/se_rets_hazard/se_rets_hazard.dsp
# mach: bfin

.include "testutils.inc"
	start


BOOT:
	FP = SP;	// and frame pointer

	INIT_R_REGS 0;	// initialize general purpose regs




	ASTAT = r0;	// reset sequencer registers

// The Main Program


START:
	loadsym r1, SUB1;
	RETS = r1;
	RTS;

MID1:
	CHECKREG r6, 0;	// shouldn't be BAD
	R6.L = 0xBAD2;	// In case we come back to MID1
	loadsym P1, MID2;
	CALL ( P1 );
	RTS;

MID2:
	loadsym R1, END;
	RETS = r1;
	[ -- SP ] = I0;
	LINK 0;
	I0 = FP;
	UNLINK;
	RTS;

END:

	pass	// Call Endtest Macro

// Subroutines and Functions

SUB1:               // Code goes here
	CHECKREG r7, 0;	// should be if sub executed
	R7.L = 0xBAD;	// In case we come back to SUB1
	loadsym R2, MID1;
	[ -- SP ] = R2;
	RETS = [sp++];
	RTS;
	R6.L = 0xBAD;