1// Test extraction from accumulators: 2// SCALE in SIGNED FRACTIONAL mode 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9// load r0=0x3fff0000 10// load r1=0x0fffc000 11// load r2=0x7ff00000 12// load r3=0x80100000 13// load r4=0x000000ff 14 loadsym P0, data0; 15 R0 = [ P0 ++ ]; 16 R1 = [ P0 ++ ]; 17 R2 = [ P0 ++ ]; 18 R3 = [ P0 ++ ]; 19 R4 = [ P0 ++ ]; 20 21// SCALE 22// 0x003fff0000 -> SCALE 0x7ffe 23 A1 = A0 = 0; 24 A1.w = R0; 25 A0.w = R0; 26 R5.H = A1, R5.L = A0 (S2RND); 27 DBGA ( R5.L , 0x7ffe ); 28 DBGA ( R5.H , 0x7ffe ); 29 30// SCALE 31// 0x000fffc000 -> SCALE 0x2000 32 A1 = A0 = 0; 33 A1.w = R1; 34 A0.w = R1; 35 R5.H = A1, R5.L = A0 (S2RND); 36 DBGA ( R5.L , 0x2000 ); 37 DBGA ( R5.H , 0x2000 ); 38 39// SCALE 40// 0x007ff00000 -> SCALE 0x7fff 41 A1 = A0 = 0; 42 A1.w = R2; 43 A0.w = R2; 44 R5.H = A1, R5.L = A0 (S2RND); 45 DBGA ( R5.L , 0x7fff ); 46 DBGA ( R5.H , 0x7fff ); 47 48// SCALE 49// 0xff80100000 -> SCALE 0x8000 50 A1 = A0 = 0; 51 A1.w = R3; 52 A0.w = R3; 53 A1.x = R4.L; 54 A0.x = R4.L; 55 R5.H = A1, R5.L = A0 (S2RND); 56 DBGA ( R5.L , 0x8000 ); 57 DBGA ( R5.H , 0x8000 ); 58 59 pass 60 61 .data; 62data0: 63 .dw 0x0000 64 .dw 0x3fff 65 .dw 0xc000 66 .dw 0x0fff 67 .dw 0x0000 68 .dw 0x7ff0 69 .dw 0x0000 70 .dw 0x8010 71 .dw 0x00ff 72 .dw 0x0000 73