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