]> oss.titaniummirror.com Git - msp430-binutils.git/blobdiff - gas/testsuite/gas/score/bit_32.s
Imported binutils-2.20
[msp430-binutils.git] / gas / testsuite / gas / score / bit_32.s
diff --git a/gas/testsuite/gas/score/bit_32.s b/gas/testsuite/gas/score/bit_32.s
new file mode 100644 (file)
index 0000000..9490df4
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * tests for bit operations' instruction relaxation
+ *
+ * Author: libin
+ */
+
+.include "relaxation_macro.h"
+
+.macro _bit_op_pattern insn insn1
+  insn_32 "\insn r0,  r0,  0"
+  insn_32 "\insn r0,  r0,  0x1f"
+  insn_32 "\insn r15, r15, 0"
+  insn_32 "\insn r15, r15, 0x1f"
+
+  tran_16_32 "\insn! r0,0", "\insn r0,r0,0"
+
+  /* shouldn't alter */
+  insn_32 "\insn1 r0,  r0,  0"
+  insn_32 "\insn  r16, r16, 0"
+  insn_32 "\insn  r16, r16, 0x1f"
+.endm
+
+.text
+/*
+ * bitclr rD,rA,BN5 -> bitclr! rD,BN5
+ * bitset rD,rA,BN5 -> bitset! rD,BN5
+ * bittgl rD,rA,BN5 -> bittgl! rD,BN5
+ */
+_bit_op_pattern "bitclr", "bitclr.c"
+_bit_op_pattern "bitset", "bitset.c"
+_bit_op_pattern "bittgl", "bittgl.c"
+
+/* bittst.c rA,BN5 <-> bittst! rD,BN5" */
+insn_32 "bittst.c r0,  0"
+insn_32 "bittst.c r0,  0x1f"
+insn_32 "bittst.c r15, 0"
+insn_32 "bittst.c r15, 0x1f"
+
+tran_16_32 "bittst! r0,0", "bittst.c r0,0"
+
+/* shouldn't alter */
+insn_32 "bittst.c r16, 0"
+insn_32 "bittst.c r16, 0x1f"