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


Second attempt ... does this solve the problem?

ChangeLog:

Sat Apr 18 11:24:10 EDT 1998  John Wehle  (john@feith.com)

	* i386.md (movsf_push, movdf_push, movxf_push): Allow memory
	operands during and after reload.

-- John Wehle
------------------8<------------------------8<------------------------
*** gcc/config/i386/i386.md.ORIGINAL1	Thu Apr 16 22:35:33 1998
--- gcc/config/i386/i386.md	Sat Apr 18 00:21:29 1998
***************
*** 1181,1188 ****
  
  (define_insn "movsf_push"
    [(set (match_operand:SF 0 "push_operand" "=<,<")
! 	(match_operand:SF 1 "nonmemory_operand" "rF,f"))]
!   ""
    "*
  {
    if (STACK_REG_P (operands[1]))
--- 1181,1188 ----
  
  (define_insn "movsf_push"
    [(set (match_operand:SF 0 "push_operand" "=<,<")
! 	(match_operand:SF 1 "general_operand" "*rfF,m"))]
!   "GET_CODE (operands[1]) != MEM || reload_in_progress || reload_completed"
    "*
  {
    if (STACK_REG_P (operands[1]))
***************
*** 1205,1210 ****
--- 1205,1211 ----
  
        RET;
      }
+ 
    return AS1 (push%L0,%1);
  }")
  
***************
*** 1328,1335 ****
  
  (define_insn "movdf_push"
    [(set (match_operand:DF 0 "push_operand" "=<,<")
! 	(match_operand:DF 1 "nonmemory_operand" "rF,f"))]
!   ""
    "*
  {
    if (STACK_REG_P (operands[1]))
--- 1329,1336 ----
  
  (define_insn "movdf_push"
    [(set (match_operand:DF 0 "push_operand" "=<,<")
! 	(match_operand:DF 1 "general_operand" "*rfF,o"))]
!   "GET_CODE (operands[1]) != MEM || reload_in_progress || reload_completed"
    "*
  {
    if (STACK_REG_P (operands[1]))
***************
*** 1349,1354 ****
--- 1350,1359 ----
  
        RET;
      }
+ 
+   if (which_alternative == 1)
+     return output_move_pushmem (operands, insn, GET_MODE_SIZE (DFmode), 0, 0);
+ 
    return output_move_double (operands);
  }")
  
***************
*** 1474,1481 ****
  
  (define_insn "movxf_push"
    [(set (match_operand:XF 0 "push_operand" "=<,<")
!  	(match_operand:XF 1 "nonmemory_operand" "rF,f"))]
!   ""
    "*
  {
    if (STACK_REG_P (operands[1]))
--- 1479,1486 ----
  
  (define_insn "movxf_push"
    [(set (match_operand:XF 0 "push_operand" "=<,<")
!  	(match_operand:XF 1 "general_operand" "*rfF,o"))]
!   "GET_CODE (operands[1]) != MEM || reload_in_progress || reload_completed"
    "*
  {
    if (STACK_REG_P (operands[1]))
***************
*** 1494,1499 ****
--- 1499,1508 ----
  
        RET;
      }
+ 
+   if (which_alternative == 1)
+     return output_move_pushmem (operands, insn, GET_MODE_SIZE (XFmode), 0, 0);
+ 
    return output_move_double (operands);
   }")
  
-------------------------------------------------------------------------
|   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]