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