m68k.md (iorsi_zexthi_ashl16): Disable.

* m68k/m68k.md (iorsi_zexthi_ashl16): Disable.
Fixes m68k codegen problem.

From-SVN: r14996
This commit is contained in:
Jim Wilson 1997-08-29 15:19:58 +00:00 committed by Jeff Law
parent 4f91a0f87a
commit 575833386f
2 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,7 @@
Thu Aug 28 15:14:46 1997 Jim Wilson <wilson@cygnus.com>
* m68k/m68k.md (iorsi_zexthi_ashl16): Disable.
1997-08-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile.in (config.status): Depend on version.c

View File

@ -3733,12 +3733,21 @@
;; On all 68k models, this makes faster code in a special case.
;; See also ashlsi_16, ashrsi_16 and lshrsi_16.
;; ??? This pattern can not work as written, because it fails if operand 0
;; and operand 1 are the same register. This can happen for alternative 1.
;; This will still fail even if an early clobber is added to the output
;; for alternative 1. This is because reload may satisfy the matching
;; constraint by forcing the output to use exactly the same register as
;; operand 2, without noticing that this then causes a conflict with operand 1.
;; Possible fix: check for operand 0/1 overlap, and emit correct but slower
;; code. This should be rare if the early clobber is added.
(define_insn "iorsi_zexthi_ashl16"
[(set (match_operand:SI 0 "general_operand" "=&d,d")
(ior:SI (zero_extend:SI (match_operand:HI 1 "general_operand" "dmn,dmn"))
(ashift:SI (match_operand:SI 2 "general_operand" "o,0")
(const_int 16))))]
""
"0"
"*
{
CC_STATUS_INIT;