Commit | Line | Data |
---|---|---|
c3b7224a NC |
1 | /* |
2 | * tests for arithmetic instruction relaxation | |
3 | * | |
4 | * Author: libin | |
5 | */ | |
6 | ||
7 | .include "relaxation_macro.h" | |
8 | ||
9 | .macro _arith_op_pattern insn insn1 | |
10 | insn_32 "\insn r0, r0, r15" | |
11 | ||
12 | tran_16_32 "\insn! r0, r15", "\insn r0, r0, r15" | |
13 | ||
14 | /* shouldn't alter */ | |
15 | .set r1 | |
16 | insn_32 "\insn1 r0, r0, r15" | |
17 | insn_32 "\insn r0, r0, r16" | |
18 | insn_32 "\insn r16, r16, r0" | |
19 | insn_32 "\insn r16, r16, r17" | |
20 | insn_32 "\insn r0, r1, r2" | |
21 | .endm | |
22 | ||
23 | .text | |
24 | /* add rD,rA,rB -> add! rD,rA */ | |
25 | _arith_op_pattern "add", "add.c" | |
26 | ||
27 | /* sub rD,rA,rB -> sub rD,rA */ | |
28 | _arith_op_pattern "sub", "sub.c" | |
29 | ||
30 | /* addi rD,SImm16 -> addi! rD,SImm6 */ | |
31 | insn_32 "addi r0, -32" | |
32 | insn_32 "addi r0, 31" | |
33 | insn_32 "addi r15, -32" | |
34 | insn_32 "addi r15, 31" | |
35 | ||
36 | tran_16_32 "addi! r0,-32", "addi r0,-32" | |
37 | ||
38 | /* shouldn't alter */ | |
39 | insn_32 "addi.c r0, -32" | |
40 | insn_32 "addi r0, -33" | |
41 | insn_32 "addi r0, 32" | |
42 | insn_32 "addi r16, -32" | |
43 | insn_32 "addi r16, 31" |