This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[3.1.1] Re: Possible bug with -O2 -march=athlon[-tbird]


> Since I've already lost face by making a false bug report on GNATS, I 
> might as well risk doing it on the mailing list this time...
> 
> When I try to compile one of the files from xmess-0.561.1 using
> 
> 	gcc -c -O2 -march=athlon[-tbird]
> 
> I get this error:
> 
> 	/tmp/ccRddfe9.s: Assembler messages:
> 	/tmp/ccRddfe9.s:5300: Error: bad register name `%sil'
> 

Hi,
the bug is caused by wrong constrain (cut&paste, as expected).
Simple grepping has shown another two occurences of identical bug.

This is 2.95 regression.  Bootstrapped/regtested i386-linux mainline,
branch in progress.

Honza

Sat May 18 22:50:22 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (pushqi2, ashrqi_*): Fix constraint.

Index: i386.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.md,v
retrieving revision 1.361
diff -c -3 -p -r1.361 i386.md
*** i386.md	14 May 2002 10:46:27 -0000	1.361
--- i386.md	18 May 2002 20:47:05 -0000
***************
*** 1361,1367 ****
  ;; For 64BIT abi we always round up to 8 bytes.
  (define_insn "*pushqi2_rex64"
    [(set (match_operand:QI 0 "push_operand" "=X")
! 	(match_operand:QI 1 "nonmemory_no_elim_operand" "ri"))]
    "TARGET_64BIT"
    "push{q}\t%q1"
    [(set_attr "type" "push")
--- 1361,1367 ----
  ;; For 64BIT abi we always round up to 8 bytes.
  (define_insn "*pushqi2_rex64"
    [(set (match_operand:QI 0 "push_operand" "=X")
! 	(match_operand:QI 1 "nonmemory_no_elim_operand" "qi"))]
    "TARGET_64BIT"
    "push{q}\t%q1"
    [(set_attr "type" "push")
***************
*** 11184,11190 ****
  	  (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0")
  		       (match_operand:QI 2 "const_int_1_operand" "I"))
  	  (const_int 0)))
!    (set (match_operand:QI 0 "nonimmediate_operand" "=rm")
  	(ashiftrt:QI (match_dup 1) (match_dup 2)))]
    "ix86_match_ccmode (insn, CCGOCmode)
     && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
--- 11184,11190 ----
  	  (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0")
  		       (match_operand:QI 2 "const_int_1_operand" "I"))
  	  (const_int 0)))
!    (set (match_operand:QI 0 "nonimmediate_operand" "=qm")
  	(ashiftrt:QI (match_dup 1) (match_dup 2)))]
    "ix86_match_ccmode (insn, CCGOCmode)
     && (TARGET_PENTIUM || TARGET_PENTIUMPRO)
***************
*** 11205,11211 ****
  	  (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0")
  		       (match_operand:QI 2 "immediate_operand" "I"))
  	  (const_int 0)))
!    (set (match_operand:QI 0 "nonimmediate_operand" "=rm")
  	(ashiftrt:QI (match_dup 1) (match_dup 2)))]
    "ix86_match_ccmode (insn, CCGOCmode)
     && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)"
--- 11205,11211 ----
  	  (ashiftrt:QI (match_operand:QI 1 "nonimmediate_operand" "0")
  		       (match_operand:QI 2 "immediate_operand" "I"))
  	  (const_int 0)))
!    (set (match_operand:QI 0 "nonimmediate_operand" "=qm")
  	(ashiftrt:QI (match_dup 1) (match_dup 2)))]
    "ix86_match_ccmode (insn, CCGOCmode)
     && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]