sim: bfin: import testsuite
[deliverable/binutils-gdb.git] / sim / testsuite / sim / bfin / stk2.s
1 // load up some registers.
2 // setup up a global pointer table and load some state.
3 // save the machine state and clear some of the values.
4 // then restore and assert some of the values to ensure that
5 // we maintain consitent machine state.
6 # mach: bfin
7
8
9 .include "testutils.inc"
10 start
11
12 R0 = 1;
13 R1 = 2;
14 R2 = 3;
15 R3 = -7;
16 R4 = 4;
17 R5 = 5;
18 R6 = 6;
19 R7 = 7;
20
21 loadsym P0, a;
22 P1.L = 0x1000;
23 //DBG P0;
24 //DBG P1;
25 SP = P0;
26 FP = P0;
27
28 CALL try;
29
30 P1 = [ P0 ++ ];
31 P2 = [ P0 ++ ];
32 P0 += 4;
33 P4 = [ P0 ++ ];
34 P5 = [ P0 ++ ];
35 // DBG;
36 [ -- SP ] = ( R7:0, P5:0 );
37 // DBG SP;
38 // DBG FP;
39 R0 = R0 ^ R0;
40 R1 = R1 ^ R1;
41 R2 = R2 ^ R2;
42 R4 = R4 ^ R4;
43 R5 = R5 ^ R5;
44 R6 = R6 ^ R6;
45 R7 = R7 ^ R7;
46 // DBG;
47 ( R7:0, P5:0 ) = [ SP ++ ];
48 DBGA ( R0.L , 1 );
49 DBGA ( R1.L , 2 );
50 DBGA ( R2.L , 3 );
51 DBGA ( R3.L , 0xfff9 );
52 DBGA ( R4.L , 4 );
53 DBGA ( R5.L , 5 );
54 DBGA ( R6.L , 6 );
55 DBGA ( R7.L , 7 );
56
57 R0 = SP;
58 loadsym R1, a;
59 CC = R0 == R1;
60 IF !CC JUMP abrt;
61 R0 = FP;
62 CC = R0 == R1;
63 CC = R0 == R1;
64 IF !CC JUMP abrt;
65 pass
66 abrt:
67 fail
68
69 try:
70 LINK 0;
71 [ -- SP ] = R7;
72 [ -- SP ] = R0;
73 R7 = 0x1234 (X);
74 [ -- SP ] = R7;
75 CALL bar;
76 SP += 4;
77 R0 = [ SP ++ ];
78 R7 = [ SP ++ ];
79 UNLINK;
80 RTS;
81
82 bar:
83 R0 = [ SP ];
84 DBGA ( R0.L , 0x1234 );
85 RTS;
86
87 .data
88 _gptab:
89 .dw 0x200
90 .dw 0x000
91 .dw 0x300
92 .dw 0x400
93 .dw 0x500
94 .dw 0x600
95
96 .space (0x100)
97 a:
98 .dw 1
99 .dw 2
100 .dw 3
101 .dw 4
102 .dw 5
103 .dw 6
104 .dw 7
105 .dw 8
106 .dw 9
107 .dw 0xa
This page took 0.032765 seconds and 4 git commands to generate.