This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: compile of libc-2.0.7pre3 fails with egcs-2.91.22 980404
- To: wilson at cygnus dot com
- Subject: Re: compile of libc-2.0.7pre3 fails with egcs-2.91.22 980404
- From: john at feith dot com (John Wehle)
- Date: Fri, 17 Apr 1998 11:19:59 -0400
- Cc: egcs-bugs at cygnus dot com, mharnois at sbt dot net
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 | |
-------------------------------------------------------------------------