blob: 5ddc5d38dc7b89521466bc252b881bab1f39b19a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
// MAC test program.
// Test for positive and negative saturation using
// SIGNED FRACTIONAL mode.
# mach: bfin
#include "test.h"
.include "testutils.inc"
start
init_r_regs 0;
ASTAT = R0;
// load r0=0x00007fff
// load r1=0x00007fff
loadsym p0, data0
R0 = [ P0 ++ ];
R1 = [ P0 ++ ];
R5 = 0;
R4 = 0;
BITSET( R4 , 9 );
A1 = A0 = 0;
LOOP1:
A1 -= R0.L * R1.L, A0 += R0.L * R1.L;
//_DBG a1;
//_DBG a0;
R4 += -1;
CC = R4 == R5;
IF !CC JUMP LOOP1;
R3 = ASTAT;
CHECKREG R3, (_AV1S|_AV1|_AV0S|_AV0|_AC0|_AC0_COPY|_CC|_AZ);
_DBG A1;
_DBG A0;
R6 = A1.w;
_DBG ASTAT;
R7.L = A1.x;
R3 = ASTAT;
_DBG r3;
CHECKREG R3, (_AV1S|_AV1|_AV0S|_AV0|_AC0|_AC0_COPY|_CC|_AZ);
CHECKREG R6, 0;
CHECKREG R7, 0x0000FF80;
R6 = A0.w;
R7.L = A0.x;
CHECKREG R6, 0xffffffff;
CHECKREG R7, 0x7f;
pass
.data 0x1000;
data0:
.dw 0x7fff
.dw 0x0000
.dw 0x7fff
.dw 0x0000
|