39 lines
601 B
ArmAsm
39 lines
601 B
ArmAsm
// Check MAC with scaling
|
|
# mach: bfin
|
|
|
|
.include "testutils.inc"
|
|
start
|
|
|
|
|
|
R0 = 0;
|
|
R1 = 0;
|
|
R2 = 0;
|
|
A1 = A0 = 0;
|
|
// The result accumulated in A1, and stored to a reg half
|
|
R0.L = 23229;
|
|
R0.H = -23724;
|
|
R1.L = -313;
|
|
R1.H = -17732;
|
|
R2.H = ( A1 = R1.L * R0.L ), A0 += R1.L * R0.L (S2RND);
|
|
_DBG R2;
|
|
DBGA ( R2.H , 0xfe44 );
|
|
|
|
R0 = 0;
|
|
ASTAT = R0; // clear all flags
|
|
A0 = 0;
|
|
A1 = 0;
|
|
R0.H = 0x8000;
|
|
R0.L = 0x7fff;
|
|
R1.H = 0x7fff;
|
|
R1.L = 0x8000;
|
|
A1 = R0.H * R1.H (M), R0.L = ( A0 -= R0.H * R1.H ) (ISS2);
|
|
_DBG R0;
|
|
DBGA ( R0.L , 0x7fff );
|
|
|
|
R0 += 0; // clear flags
|
|
NOP;
|
|
NOP;
|
|
NOP;
|
|
NOP;
|
|
pass
|