sim: bfin: import testsuite
[deliverable/binutils-gdb.git] / sim / testsuite / sim / bfin / m15.s
1 // Test extraction from accumulators:
2 // SIGNED FRACTIONAL and SIGNED INT mode into register PAIR with SCALE
3 # mach: bfin
4
5 .include "testutils.inc"
6 start
7
8
9 // load r0=0x0ffffff0
10 // load r1=0x7ffffff0
11 // load r2=0x0fffffff
12 // load r3=0x80100000
13 // load r4=0x000000ff
14 loadsym P0, data0;
15 R0 = [ P0 ++ ];
16 R1 = [ P0 ++ ];
17 R2 = [ P0 ++ ];
18 R3 = [ P0 ++ ];
19 R4 = [ P0 ++ ];
20
21 // extract
22 // 0x000ffffff0 -> 0x1ffffffe0
23 A1 = A0 = 0;
24 A1.w = R0;
25 A0.w = R0;
26 R7 = A1, R6 = A0 (S2RND);
27 DBGA ( R7.L , 0xffe0 );
28 DBGA ( R7.H , 0x1fff );
29 DBGA ( R6.L , 0xffe0 );
30 DBGA ( R6.H , 0x1fff );
31
32 // extract (saturate)
33 // 0x007ffffff0 -> 0x7ffffffff
34 A1 = A0 = 0;
35 A1.w = R1;
36 A0.w = R1;
37 R7 = A1, R6 = A0 (S2RND);
38 DBGA ( R7.L , 0xffff );
39 DBGA ( R7.H , 0x7fff );
40 DBGA ( R6.L , 0xffff );
41 DBGA ( R6.H , 0x7fff );
42
43 // extract (saturate negative)
44 // 0xff0ffffff0 -> 0x80000000
45 A1 = A0 = 0;
46 A1.w = R0;
47 A0.w = R0;
48 A1.x = R4.L;
49 A0.x = R4.L;
50 R7 = A1, R6 = A0 (S2RND);
51 DBGA ( R7.L , 0x0000 );
52 DBGA ( R7.H , 0x8000 );
53 DBGA ( R6.L , 0x0000 );
54 DBGA ( R6.H , 0x8000 );
55
56 // extract int
57 // 0x000ffffff0 -> 0x1ffffffe0
58 A1 = A0 = 0;
59 A1.w = R0;
60 A0.w = R0;
61 R7 = A1, R6 = A0 (ISS2);
62 DBGA ( R7.L , 0xffe0 );
63 DBGA ( R7.H , 0x1fff );
64 DBGA ( R6.L , 0xffe0 );
65 DBGA ( R6.H , 0x1fff );
66
67 pass
68
69 .data
70 data0:
71 .dw 0xfff0
72 .dw 0x0fff
73 .dw 0xfff0
74 .dw 0x7fff
75 .dw 0xffff
76 .dw 0x0fff
77 .dw 0x0000
78 .dw 0x8010
79 .dw 0x00ff
80 .dw 0x0000
This page took 0.031209 seconds and 4 git commands to generate.