This cures an ICE caused by a wrong pattern that produces invalid 
register references.

gcc/ChangeLog

2018-05-27  Paul Koning  <n...@arrl.net>

        * config/pdp11/pdp11.md (truncsihi2): Remove.
 
Index: config/pdp11/pdp11.md
===================================================================
--- config/pdp11/pdp11.md       (revision 260806)
+++ config/pdp11/pdp11.md       (revision 260807)
@@ -314,7 +314,6 @@
        (match_operand:DI 1 "general_operand" "rN,g"))]
   ""
   "* return output_move_multiple (operands);"
-;; what's the mose expensive code - say twice movsi = 16
   [(set_attr "length" "16,32")])
 
 (define_insn "movsi"
@@ -322,8 +321,6 @@
        (match_operand:SI 1 "general_operand" "rN,IJ,IJ,g"))]
   ""
   "* return output_move_multiple (operands);"
-;; what's the most expensive code ? - I think 8!
-;; we could split it up and make several sub-cases...
   [(set_attr "length" "4,6,8,16")])
 
 (define_insn "mov<mode>"
@@ -426,14 +423,6 @@
   [(set_attr "length" "0,2,4")])
 
 
-(define_expand "truncsihi2"
-  [(set (match_operand:HI 0 "nonimmediate_operand" "=g")
-       (subreg:HI 
-         (match_operand:SI 1 "general_operand" "or")
-          0))]
-  ""
-  "")
-
 

 ;;- zero extension instructions
 

Reply via email to