Commit | Line | Data |
---|---|---|
4a306116 | 1 | # frv testcase for mcplhi $FRi,$s6,$FRk |
086419a8 | 2 | # mach: fr400 fr550 |
4a306116 DB |
3 | |
4 | .include "testutils.inc" | |
5 | ||
6 | start | |
7 | ||
8 | .global mcplhi | |
9 | mcplhi: | |
10 | set_fr_iimmed 0xdead,0xbeef,fr8 | |
11 | set_fr_iimmed 0xbeef,0xdead,fr9 | |
12 | set_fr_iimmed 0x1234,0x5678,fr10 | |
13 | mcplhi fr8,0x0,fr10 ; Shift by 0 | |
14 | test_fr_iimmed 0xdead5678,fr10 | |
15 | ||
16 | set_fr_iimmed 0x1234,0x5678,fr10 | |
17 | mcplhi fr8,0x1,fr10 ; Shift by 1 | |
18 | test_fr_iimmed 0xbd5b5678,fr10 | |
19 | ||
20 | set_fr_iimmed 0x1234,0x5678,fr10 | |
21 | mcplhi fr8,0x4,fr10 ; Shift by 4 | |
22 | test_fr_iimmed 0xeadf5678,fr10 | |
23 | ||
24 | set_fr_iimmed 0x1234,0x5678,fr10 | |
25 | mcplhi fr8,0xc,fr10 ; Shift by 12 | |
26 | test_fr_iimmed 0xdeef5678,fr10 | |
27 | ||
28 | set_fr_iimmed 0x1234,0x5678,fr10 | |
29 | mcplhi fr8,0xf,fr10 ; Shift by 15 | |
30 | test_fr_iimmed 0xbeef5678,fr10 | |
31 | ||
32 | ; test again with truncated shift values | |
33 | set_fr_iimmed 0x1234,0x5678,fr10 | |
34 | mcplhi fr8,0x10,fr10 ; Shift by 0 | |
35 | test_fr_iimmed 0xdead5678,fr10 | |
36 | ||
37 | set_fr_iimmed 0x1234,0x5678,fr10 | |
38 | mcplhi fr8,0x21,fr10 ; Shift by 1 | |
39 | test_fr_iimmed 0xbd5b5678,fr10 | |
40 | ||
41 | set_fr_iimmed 0x1234,0x5678,fr10 | |
42 | mcplhi fr8,0x34,fr10 ; Shift by 4 | |
43 | test_fr_iimmed 0xeadf5678,fr10 | |
44 | ||
45 | set_fr_iimmed 0x1234,0x5678,fr10 | |
46 | mcplhi fr8,0x1c,fr10 ; Shift by 12 | |
47 | test_fr_iimmed 0xdeef5678,fr10 | |
48 | ||
49 | set_fr_iimmed 0x1234,0x5678,fr10 | |
50 | mcplhi fr8,0x2f,fr10 ; Shift by 15 | |
51 | test_fr_iimmed 0xbeef5678,fr10 | |
52 | ||
53 | pass |