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