Commit | Line | Data |
---|---|---|
ee1ee5b5 NC |
1 | /* |
2 | * test relax | |
3 | * bitclr.c <-> bitclr! : register number must be in 0-15 | |
4 | * bitset.c <-> bitset! : register number must be in 0-15 | |
5 | * bittgl.c <-> bittgl! : register number must be in 0-15 | |
6 | * slli.c <-> slli! : register number must be in 0-15 | |
7 | * srli.c <-> srli! : register number must be in 0-15 | |
8 | ||
9 | * Author: ligang | |
10 | */ | |
11 | ||
12 | /* This macro transform 32b instruction to 16b. */ | |
13 | .macro tran3216 insn32, insn16 | |
14 | .align 4 | |
15 | ||
16 | \insn32 r0, r0, 2 #32b -> 16b | |
17 | \insn16 r0, 2 | |
18 | ||
19 | \insn32 r15, r15, 4 #32b -> 16b | |
20 | \insn16 r15, 4 | |
21 | ||
22 | \insn32 r15, r15, 1 #32b -> 16b | |
23 | \insn16 r15, 1 | |
24 | ||
25 | \insn16 r15, 3 | |
26 | \insn32 r15, r15, 3 #32b -> 16b | |
27 | ||
28 | \insn32 r8, r8, 3 #32b -> 16b | |
29 | \insn32 r8, r8, 3 #32b -> 16b | |
30 | ||
31 | \insn32 r15, r15, 1 #No transform | |
32 | \insn32 r26, r23, 4 | |
33 | ||
34 | .endm | |
35 | ||
36 | /* This macro transform 16b instruction to 32b. */ | |
37 | .macro tran1632 insn32, insn16 | |
38 | .align 4 | |
39 | ||
40 | \insn16 r0, 2 #16b -> 32b | |
41 | \insn32 r20, r21, 2 | |
42 | ||
43 | \insn16 r15, 4 #16b -> 32b | |
44 | \insn32 r25, r21, 4 | |
45 | ||
46 | \insn16 r15, 1 #16b -> 32b | |
47 | \insn32 r25, r22, 1 | |
48 | ||
49 | \insn16 r8, 3 #No transform | |
50 | \insn16 r8, 3 #No transform | |
51 | ||
52 | \insn16 r6, 4 #No transform | |
53 | \insn32 r6, r6, 4 #32b -> 16b | |
54 | ||
55 | \insn32 r9, r9, 2 #32b -> 16b | |
56 | \insn16 r9, 2 #No transform | |
57 | ||
58 | .endm | |
59 | ||
60 | .text | |
61 | ||
62 | tran3216 "bitclr.c", "bitclr!" | |
63 | tran3216 "bitset.c", "bitset!" | |
64 | tran3216 "bittgl.c", "bittgl!" | |
65 | tran3216 "slli.c", "slli!" | |
66 | tran3216 "srli.c", "srli!" | |
67 | ||
68 | tran1632 "bitclr.c", "bitclr!" | |
69 | tran1632 "bitset.c", "bitset!" | |
70 | tran1632 "bittgl.c", "bittgl!" | |
71 | tran1632 "slli.c", "slli!" | |
72 | tran1632 "srli.c", "srli!" | |
73 |