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