sim: bfin: import testsuite
[deliverable/binutils-gdb.git] / sim / testsuite / sim / bfin / m13.s
1 // Test extraction from accumulators:
2 // SIGNED FRACTIONAL and SIGNED INT mode into register PAIR
3 # mach: bfin
4
5 .include "testutils.inc"
6 start
7
8
9 // load r0=0x7ffffff0
10 // load r1=0xfffffff0
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 // 0x007ffffff0 -> 0x7fffffff0
23 A1 = A0 = 0;
24 A1.w = R0;
25 A0.w = R0;
26 R7 = A1, R6 = A0;
27 DBGA ( R7.L , 0xfff0 );
28 DBGA ( R7.H , 0x7fff );
29 DBGA ( R6.L , 0xfff0 );
30 DBGA ( R6.H , 0x7fff );
31
32 // extract with saturate
33 // 0x00fffffff0 -> 0x7ffffffff
34 A1 = A0 = 0;
35 A1.w = R1;
36 A0.w = R1;
37 R7 = A1, R6 = A0;
38 DBGA ( R7.L , 0xffff );
39 DBGA ( R7.H , 0x7fff );
40 DBGA ( R6.L , 0xffff );
41 DBGA ( R6.H , 0x7fff );
42
43 // extract with saturate negative
44 // 0xff0ffffff0 -> 0x80000000
45 A1 = A0 = 0;
46 A1.w = R2;
47 A0.w = R2;
48 A1.x = R4.L;
49 A0.x = R4.L;
50 R7 = A1, R6 = A0;
51 DBGA ( R7.L , 0x0000 );
52 DBGA ( R7.H , 0x8000 );
53 DBGA ( R6.L , 0x0000 );
54 DBGA ( R6.H , 0x8000 );
55
56 // extract integer (same as fract)
57 // 0x007ffffff0 -> 0x7fffffff0
58 A1 = A0 = 0;
59 A1.w = R0;
60 A0.w = R0;
61 R7 = A1, R6 = A0 (IS);
62 DBGA ( R7.L , 0xfff0 );
63 DBGA ( R7.H , 0x7fff );
64 DBGA ( R6.L , 0xfff0 );
65 DBGA ( R6.H , 0x7fff );
66
67 // extract with saturate negative
68 // 0xff0ffffff0 -> 0x80000000
69 A1 = A0 = 0;
70 A1.w = R2;
71 A0.w = R2;
72 A1.x = R4.L;
73 A0.x = R4.L;
74 R7 = A1, R6 = A0 (IS);
75 DBGA ( R7.L , 0x0000 );
76 DBGA ( R7.H , 0x8000 );
77 DBGA ( R6.L , 0x0000 );
78 DBGA ( R6.H , 0x8000 );
79
80 pass
81
82 .data
83 data0:
84 .dw 0xfff0
85 .dw 0x7fff
86 .dw 0xfff0
87 .dw 0xffff
88 .dw 0xffff
89 .dw 0x0fff
90 .dw 0x0000
91 .dw 0x8010
92 .dw 0x00ff
93 .dw 0x0000
This page took 0.032834 seconds and 4 git commands to generate.