s6.s revision 1.1.1.1 1 1.1 christos // Test r4 = VMAX/VMAX (r5,r1) A0<<2;
2 1.1 christos # mach: bfin
3 1.1 christos
4 1.1 christos .include "testutils.inc"
5 1.1 christos start
6 1.1 christos
7 1.1 christos
8 1.1 christos // Both max values are in high half, hence both bits
9 1.1 christos // into A0 are 1
10 1.1 christos A0 = 0;
11 1.1 christos R1.L = 0x2; // max in r1 is 3
12 1.1 christos R1.H = 0x3;
13 1.1 christos
14 1.1 christos R0.L = 0x6; // max in r0 is 7
15 1.1 christos R0.H = 0x7;
16 1.1 christos
17 1.1 christos R6 = VIT_MAX( R1 , R0 ) (ASL);
18 1.1 christos
19 1.1 christos DBGA ( R6.L , 0x0007 );
20 1.1 christos DBGA ( R6.H , 0x0003 );
21 1.1 christos R7 = A0.w;
22 1.1 christos DBGA ( R7.L , 0x0003 );
23 1.1 christos DBGA ( R7.H , 0x0000 );
24 1.1 christos R7.L = A0.x;
25 1.1 christos DBGA ( R7.L , 0x0000 );
26 1.1 christos
27 1.1 christos // max value in r1 is in low, so second bit into A0 is zero
28 1.1 christos A0 = 0;
29 1.1 christos R1.L = 0x3; // max in r1 is 3
30 1.1 christos R1.H = 0x2;
31 1.1 christos
32 1.1 christos R0.L = 0x6; // max in r0 is 7
33 1.1 christos R0.H = 0x7;
34 1.1 christos
35 1.1 christos R6 = VIT_MAX( R1 , R0 ) (ASL);
36 1.1 christos
37 1.1 christos DBGA ( R6.L , 0x0007 );
38 1.1 christos DBGA ( R6.H , 0x0003 );
39 1.1 christos R7 = A0.w;
40 1.1 christos DBGA ( R7.L , 0x0002 );
41 1.1 christos DBGA ( R7.H , 0x0000 );
42 1.1 christos R7.L = A0.x;
43 1.1 christos DBGA ( R7.L , 0x0000 );
44 1.1 christos
45 1.1 christos // both max values in low, so both bits into A0 are zero
46 1.1 christos R0.L = 0x8000;
47 1.1 christos R0.H = 0x0;
48 1.1 christos A0.w = R0;
49 1.1 christos R1.L = 0x3; // max in r1 is 3
50 1.1 christos R1.H = 0x2;
51 1.1 christos
52 1.1 christos R0.L = 0x7; // max in r0 is 7
53 1.1 christos R0.H = 0x6;
54 1.1 christos
55 1.1 christos R6 = VIT_MAX( R1 , R0 ) (ASL);
56 1.1 christos
57 1.1 christos DBGA ( R6.L , 0x0007 );
58 1.1 christos DBGA ( R6.H , 0x0003 );
59 1.1 christos R7 = A0.w;
60 1.1 christos DBGA ( R7.L , 0x0000 );
61 1.1 christos DBGA ( R7.H , 0x0002 );
62 1.1 christos R7.L = A0.x;
63 1.1 christos DBGA ( R7.L , 0x0000 );
64 1.1 christos
65 1.1 christos // Test for correct max when one value overflows
66 1.1 christos A0 = 0;
67 1.1 christos R1.L = 0x7fff; // max in r1 is 0x8001 (overflowed)
68 1.1 christos R1.H = 0x8001;
69 1.1 christos
70 1.1 christos R0.L = 0x6; // max in r0 is 7
71 1.1 christos R0.H = 0x7;
72 1.1 christos
73 1.1 christos R6 = VIT_MAX( R1 , R0 ) (ASL);
74 1.1 christos
75 1.1 christos DBGA ( R6.L , 0x0007 );
76 1.1 christos DBGA ( R6.H , 0x8001 );
77 1.1 christos R7 = A0.w;
78 1.1 christos DBGA ( R7.L , 0x0003 );
79 1.1 christos DBGA ( R7.H , 0x0000 );
80 1.1 christos R7.L = A0.x;
81 1.1 christos DBGA ( R7.L , 0x0000 );
82 1.1 christos
83 1.1 christos pass
84