m10.s revision 1.1 1 1.1 christos # mach: bfin
2 1.1 christos
3 1.1 christos // Test extraction from accumulators:
4 1.1 christos // ROUND/TRUNCATE in UNSIGNED FRACTIONAL mode
5 1.1 christos // test ops: "+="
6 1.1 christos
7 1.1 christos .include "testutils.inc"
8 1.1 christos start
9 1.1 christos
10 1.1 christos
11 1.1 christos // load r0=0xfffef000
12 1.1 christos // load r1=0xfffff000
13 1.1 christos // load r2=0x00008000
14 1.1 christos // load r3=0x00018000
15 1.1 christos // load r4=0x0000007f
16 1.1 christos loadsym P0, data0
17 1.1 christos R0 = [ P0 ++ ];
18 1.1 christos R1 = [ P0 ++ ];
19 1.1 christos R2 = [ P0 ++ ];
20 1.1 christos R3 = [ P0 ++ ];
21 1.1 christos R4 = [ P0 ++ ];
22 1.1 christos
23 1.1 christos // round
24 1.1 christos // 0x00fffef000 -> 0xffff
25 1.1 christos A1 = A0 = 0;
26 1.1 christos A1.w = R0;
27 1.1 christos A0.w = R0;
28 1.1 christos R5.H = A1, R5.L = A0 (FU);
29 1.1 christos DBGA ( R5.L , 0xffff );
30 1.1 christos DBGA ( R5.H , 0xffff );
31 1.1 christos
32 1.1 christos // truncate
33 1.1 christos // 0x00fffef00 -> 0xfffe
34 1.1 christos A1 = A0 = 0;
35 1.1 christos A1.w = R0;
36 1.1 christos A0.w = R0;
37 1.1 christos R5.H = A1, R5.L = A0 (TFU);
38 1.1 christos DBGA ( R5.L , 0xfffe );
39 1.1 christos DBGA ( R5.H , 0xfffe );
40 1.1 christos
41 1.1 christos // round
42 1.1 christos // 0x00fffff000 -> 0xffff
43 1.1 christos A1 = A0 = 0;
44 1.1 christos A1.w = R1;
45 1.1 christos A0.w = R1;
46 1.1 christos R5.H = A1, R5.L = A0 (FU);
47 1.1 christos DBGA ( R5.L , 0xffff );
48 1.1 christos DBGA ( R5.H , 0xffff );
49 1.1 christos
50 1.1 christos pass
51 1.1 christos
52 1.1 christos .data;
53 1.1 christos data0:
54 1.1 christos .dw 0xf000
55 1.1 christos .dw 0xfffe
56 1.1 christos .dw 0xf000
57 1.1 christos .dw 0xffff
58 1.1 christos .dw 0x8000
59 1.1 christos .dw 0x0000
60 1.1 christos .dw 0x8000
61 1.1 christos .dw 0x0001
62 1.1 christos .dw 0x007f
63 1.1 christos .dw 0x0000
64