aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2018-07-03 20:22:35 -0600
committerJeff Law <law@gcc.gnu.org>2018-07-03 20:22:35 -0600
commit7422f0ff39697b53ad599834647c56cb0cb3c3a3 (patch)
tree6e33c0e440ac78e6c8d86a56065031e26e721c1d /gcc
parent7af7cb515f8ee1af63f7998c2748281263ae6f48 (diff)
downloadgcc-7422f0ff39697b53ad599834647c56cb0cb3c3a3.zip
gcc-7422f0ff39697b53ad599834647c56cb0cb3c3a3.tar.gz
gcc-7422f0ff39697b53ad599834647c56cb0cb3c3a3.tar.bz2
h8300.md (logical<mode>3_sn, [...]): Merge into a single pattern.
* config/h8300/h8300.md (logical<mode>3_sn, logical<mode>3): Merge into a single pattern. From-SVN: r262369
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/h8300/h8300.md23
2 files changed, 4 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c3ea014..cd8f6ab 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -13,6 +13,9 @@
2018-07-03 Jeff Law <law@redhat.com>
+ * config/h8300/h8300.md (logical<mode>3_sn, logical<mode>3): Merge
+ into a single pattern.
+
* config/h8300/h8300.md (ors code_iterator): New.
(bsetqi_msx, bnotqi_msx patterns and splitters): Consolidate into
a single pattern and single splitter.
diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md
index f3cf421..70f96c7 100644
--- a/gcc/config/h8300/h8300.md
+++ b/gcc/config/h8300/h8300.md
@@ -1645,34 +1645,13 @@
;; {AND,IOR,XOR}{HI3,SI3} PATTERNS
;; ----------------------------------------------------------------------
-;; We need a separate pattern here because machines other than the
-;; original H8300 don't have to split the 16-bit operand into a pair
-;; of high/low instructions, so we can accept literal addresses, that
-;; have to be loaded into a register on H8300.
-
-(define_insn "*logical<mode>3_sn"
- [(set (match_operand:HSI 0 "h8300_dst_operand" "=rQ")
- (match_operator:HSI 3 "bit_operator"
- [(match_operand:HSI 1 "h8300_dst_operand" "%0")
- (match_operand:HSI 2 "h8300_src_operand" "rQi")]))]
- "(TARGET_H8300S || TARGET_H8300H) && h8300_operands_match_p (operands)"
-{
- return output_logical_op (<MODE>mode, operands);
-}
- [(set (attr "length")
- (symbol_ref "compute_logical_op_length (<MODE>mode, operands)"))
- (set (attr "cc")
- (symbol_ref "compute_logical_op_cc (<MODE>mode, operands)"))])
-
(define_insn "*logical<mode>3"
[(set (match_operand:HSI 0 "h8300_dst_operand" "=rQ")
(match_operator:HSI 3 "bit_operator"
[(match_operand:HSI 1 "h8300_dst_operand" "%0")
(match_operand:HSI 2 "h8300_src_operand" "rQi")]))]
"h8300_operands_match_p (operands)"
-{
- return output_logical_op (<MODE>mode, operands);
-}
+ { return output_logical_op (<MODE>mode, operands); }
[(set (attr "length")
(symbol_ref "compute_logical_op_length (<MODE>mode, operands)"))
(set (attr "cc")