1/* 2 * tests for bit operations' instruction relaxation 3 * 4 * Author: libin 5 */ 6 7.include "relaxation_macro.h" 8 9.macro _bit_op_pattern insn insn1 10 insn_32 "\insn r0, r0, 0" 11 insn_32 "\insn r0, r0, 0x1f" 12 insn_32 "\insn r15, r15, 0" 13 insn_32 "\insn r15, r15, 0x1f" 14 15 tran_16_32 "\insn! r0,0", "\insn r0,r0,0" 16 17 /* shouldn't alter */ 18 insn_32 "\insn1 r0, r0, 0" 19 insn_32 "\insn r16, r16, 0" 20 insn_32 "\insn r16, r16, 0x1f" 21.endm 22 23.text 24/* 25 * bitclr rD,rA,BN5 -> bitclr! rD,BN5 26 * bitset rD,rA,BN5 -> bitset! rD,BN5 27 * bittgl rD,rA,BN5 -> bittgl! rD,BN5 28 */ 29_bit_op_pattern "bitclr", "bitclr.c" 30_bit_op_pattern "bitset", "bitset.c" 31_bit_op_pattern "bittgl", "bittgl.c" 32 33/* bittst.c rA,BN5 <-> bittst! rD,BN5" */ 34insn_32 "bittst.c r0, 0" 35insn_32 "bittst.c r0, 0x1f" 36insn_32 "bittst.c r15, 0" 37insn_32 "bittst.c r15, 0x1f" 38 39tran_16_32 "bittst! r0,0", "bittst.c r0,0" 40 41/* shouldn't alter */ 42insn_32 "bittst.c r16, 0" 43insn_32 "bittst.c r16, 0x1f" 44