This is the mail archive of the gcc-bugs@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]

Re: compile of libc-2.0.7pre3 fails with egcs-2.91.22 980404


Does this solve the problem?

ChangeLog:

Fri Apr 17 11:02:55 EDT 1998  John Wehle  (john@feith.com)

	* i386.md (movdf_push, movxf_push): Change 'r' constraint to '*r'.
	(movsf_push_memory_through_reg, movdf_push_memory_through_reg,
	movxf_push_memory_through_reg): New patterns.

-- John Wehle
------------------8<------------------------8<------------------------
*** gcc/config/i386/i386.md.ORIGINAL1	Thu Apr 16 22:35:33 1998
--- gcc/config/i386/i386.md	Fri Apr 17 02:07:53 1998
***************
*** 1208,1213 ****
--- 1208,1224 ----
    return AS1 (push%L0,%1);
  }")
  
+ (define_insn "movsf_push_memory_through_reg"
+   [(set (match_operand:SF 0 "push_operand" "=<")
+ 	(match_operand:SF 1 "memory_operand" "m"))
+    (clobber (match_scratch:SI 2 "=&r"))]
+   "!TARGET_PUSH_MEMORY"
+   "*
+ {
+   output_asm_insn (AS2 (mov%L1,%1,%2), operands);
+   return AS1 (push%L0,%2);
+ }")
+ 
  (define_insn "movsf_push_memory"
    [(set (match_operand:SF 0 "push_operand" "=<")
  	(match_operand:SF 1 "memory_operand" "m"))]
***************
*** 1328,1334 ****
  
  (define_insn "movdf_push"
    [(set (match_operand:DF 0 "push_operand" "=<,<")
! 	(match_operand:DF 1 "nonmemory_operand" "rF,f"))]
    ""
    "*
  {
--- 1339,1345 ----
  
  (define_insn "movdf_push"
    [(set (match_operand:DF 0 "push_operand" "=<,<")
! 	(match_operand:DF 1 "nonmemory_operand" "*rF,f"))]
    ""
    "*
  {
***************
*** 1352,1357 ****
--- 1363,1375 ----
    return output_move_double (operands);
  }")
  
+ (define_insn "movdf_push_memory_through_reg"
+   [(set (match_operand:DF 0 "push_operand" "=<")
+ 	(match_operand:DF 1 "memory_operand" "o"))
+    (clobber (match_scratch:SI 2 "=&r"))]
+   "!TARGET_PUSH_MEMORY"
+   "* return output_move_pushmem (operands, insn, GET_MODE_SIZE (DFmode),2,3);")
+ 
  (define_insn "movdf_push_memory"
    [(set (match_operand:DF 0 "push_operand" "=<")
  	(match_operand:DF 1 "memory_operand" "o"))]
***************
*** 1474,1480 ****
  
  (define_insn "movxf_push"
    [(set (match_operand:XF 0 "push_operand" "=<,<")
!  	(match_operand:XF 1 "nonmemory_operand" "rF,f"))]
    ""
    "*
  {
--- 1492,1498 ----
  
  (define_insn "movxf_push"
    [(set (match_operand:XF 0 "push_operand" "=<,<")
!  	(match_operand:XF 1 "nonmemory_operand" "*rF,f"))]
    ""
    "*
  {
***************
*** 1496,1501 ****
--- 1514,1526 ----
      }
    return output_move_double (operands);
   }")
+ 
+ (define_insn "movxf_push_memory_through_reg"
+   [(set (match_operand:XF 0 "push_operand" "=<")
+ 	(match_operand:XF 1 "memory_operand" "o"))
+    (clobber (match_scratch:SI 2 "=&r"))]
+   "!TARGET_PUSH_MEMORY"
+   "* return output_move_pushmem (operands, insn, GET_MODE_SIZE (XFmode),2,3);")
  
  (define_insn "movxf_push_memory"
    [(set (match_operand:XF 0 "push_operand" "=<")
-------------------------------------------------------------------------
|   Feith Systems  |   Voice: 1-215-646-8000  |  Email: john@feith.com  |
|    John Wehle    |     Fax: 1-215-540-5495  |                         |
-------------------------------------------------------------------------



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