PATCH: fix for problem in i386.md ashlqi3_1_lea pattern
Alasdair Baird
alasdair@wildcat.demon.co.uk
Tue Aug 1 15:37:00 GMT 2000
I am currently having problems bootstrapping gcc (CVSed today) for
an ia32 platform, using the -march=athlon flag. Part way through
building stage2 the compiler ends up with the following horrible
death scenario:
stor-layout.c: In function `compute_record_mode':
stor-layout.c:1095: Could not split insn
(insn 582 1038 589 (parallel[
(set (reg:QI 1 dl)
(ashift:QI (reg:QI 5 di)
(const_int 1 [0x1])))
(clobber (reg:CC 17 flags))
] ) 229 {*ashlqi3_1_lea} (nil)
(expr_list:REG_DEAD (reg:QI 5 di)
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil))))
stor-layout.c:1095: Internal compiler error in final_scan_insn, at final.c:3004
Please submit a full bug report.
I believe this is occuring to an incorrect constraint on the
ashlqi3_1_lea instruction pattern. Certainly the following patch
returns the compiler to bootstrapping.
Alasdair.
Tue Aug 1 23:19:42 BST 2000 Alasdair Baird <alasdair@wildcat.demon.co.uk>
* i386.md (ashlqi3_1_lea): Fix constraint.
*** gcc/config/i386/i386.md-orig Mon Jul 31 18:33:58 2000
--- gcc/config/i386/i386.md Tue Aug 1 22:45:48 2000
***************
*** 6690,6696 ****
(define_insn "*ashlqi3_1_lea"
[(set (match_operand:QI 0 "nonimmediate_operand" "=qm,r,r")
! (ashift:QI (match_operand:QI 1 "nonimmediate_operand" "0,0,r")
(match_operand:QI 2 "nonmemory_operand" "cI,cI,M")))
(clobber (reg:CC 17))]
"!TARGET_PARTIAL_REG_STALL
--- 6690,6696 ----
(define_insn "*ashlqi3_1_lea"
[(set (match_operand:QI 0 "nonimmediate_operand" "=qm,r,r")
! (ashift:QI (match_operand:QI 1 "nonimmediate_operand" "0,0,0")
(match_operand:QI 2 "nonmemory_operand" "cI,cI,M")))
(clobber (reg:CC 17))]
"!TARGET_PARTIAL_REG_STALL
More information about the Gcc-patches
mailing list