sim: bfin: unify se_all helpers more
[deliverable/binutils-gdb.git] / sim / testsuite / sim / bfin / m9.s
CommitLineData
1d7b4a70
MF
1// Test extraction from accumulators:
2// ROUND/TRUNCATE in SIGNED FRACTIONAL mode
3// test ops: "+="
4# mach: bfin
5
6.include "testutils.inc"
7 start
8
9
10// load r0=0x7ffef000
11// load r1=0x7ffff000
12// load r2=0x00008000
13// load r3=0x00018000
14// load r4=0x0000007f
15 loadsym P0, data0;
16 R0 = [ P0 ++ ];
17 R1 = [ P0 ++ ];
18 R2 = [ P0 ++ ];
19 R3 = [ P0 ++ ];
20 R4 = [ P0 ++ ];
21
22// round
23// 0x007ffef00 -> 0x7fff
24 A1 = A0 = 0;
25 A1.w = R0;
26 A0.w = R0;
27 R5.H = A1, R5.L = A0;
28 DBGA ( R5.L , 0x7fff );
29 DBGA ( R5.H , 0x7fff );
30
31// round with ovflw
32// 0x007ffff00 -> 0x7fff
33 A1 = A0 = 0;
34 A1.w = R1;
35 A0.w = R1;
36 R5.H = A1, R5.L = A0;
37 DBGA ( R5.L , 0x7fff );
38 DBGA ( R5.H , 0x7fff );
39
40// trunc
41// 0x007ffef00 -> 0x7ffe
42 A1 = A0 = 0;
43 A1.w = R0;
44 A0.w = R0;
45 R5.H = A1, R5.L = A0 (T);
46 DBGA ( R5.L , 0x7ffe );
47 DBGA ( R5.H , 0x7ffe );
48
49// round with ovflw
50// 0x7f7ffff00 -> 0x7fff
51 A1 = A0 = 0;
52 A1.w = R1;
53 A1.x = R4.L;
54 A0.w = R1;
55 A0.x = R4.L;
56 R5.H = A1, R5.L = A0;
57 DBGA ( R5.L , 0x7fff );
58 DBGA ( R5.H , 0x7fff );
59
60// round, nearest even is zero
61// 0x0000008000 -> 0x0000
62 A1 = A0 = 0;
63 A1.w = R2;
64 A0.w = R2;
65 R5.H = A1, R5.L = A0;
66 DBGA ( R5.L , 0x0 );
67 DBGA ( R5.H , 0x0 );
68
69// round, nearest even is 2
70// 0x00000018000 -> 0x0002
71 A1 = A0 = 0;
72 A1.w = R3;
73 A0.w = R3;
74 R5.H = A1, R5.L = A0;
75 DBGA ( R5.L , 0x2 );
76 DBGA ( R5.H , 0x2 );
77
78 pass
79
80 .data
81data0:
82 .dw 0xf000
83 .dw 0x7ffe
84 .dw 0xf000
85 .dw 0x7ffe
86 .dw 0x8000
87 .dw 0x0000
88 .dw 0x8000
89 .dw 0x0001
90 .dw 0x007f
91 .dw 0x0000
This page took 0.056998 seconds and 4 git commands to generate.