From: hjl@lucon.org (H.J. Lu)
To: law@cygnus.com
Cc: hjl@lucon.org, wilson@cygnus.com, scox@cygnus.com,
crux@pool.informatik.rwth-aachen.de, egcs@cygnus.com
Subject: Re: More fp bug in egcs
Date: Tue, 05 May 1998 19:14:00 -0000 [thread overview]
Message-ID: <m0yWnXo-000268C@ocean.lucon.org> (raw)
In-Reply-To: <23041.894353710@hurl.cygnus.com>
>
>
> In message < m0yVnEy-000268C@ocean.lucon.org >you write:
> > Here is the trimmed down test case. I am not sure if your patch is
> > correct. If you take look at the stack RTL dump, you will see SF 1 in
> [ ... ]
> BTW, I added the testcase to the testsuite.
>
> jeff
>
Here is the stack RTL dump again. As you can see
(clobber (reg:SF 14 %st(6)))
should be
(clobber (reg:SF 8 %st(0)))
Should I worry about it? I think the bug is in move_for_stack_reg () in
reg-stack.c:
else if (STACK_REG_P (src))
{
/* Save from a stack reg to MEM, or possibly integer reg. Since
only top of stack may be saved, emit an exchange first if
needs be. */
emit_swap_insn (insn, regstack, src);
note = find_regno_note (insn, REG_DEAD, REGNO (src));
if (note)
{
replace_reg (&XEXP (note, 0), FIRST_STACK_REG);
regstack->top--;
CLEAR_HARD_REG_BIT (regstack->reg_set, REGNO (src));
}
else if (GET_MODE (src) == XFmode && regstack->top < REG_STACK_SIZE - 1)
{
/* A 387 cannot write an XFmode value to a MEM without
clobbering the source reg. The output code can handle
this by reading back the value from the MEM.
But it is more efficient to use a temp register if one is
available. Push the source value here if the register
stack is not full, and then write the value to memory via
a pop. */
rtx push_rtx, push_insn;
rtx top_stack_reg = FP_MODE_REG (FIRST_STACK_REG, XFmode);
push_rtx = gen_movxf (top_stack_reg, top_stack_reg);
push_insn = emit_insn_before (push_rtx, insn);
PUT_MODE (push_insn, QImode);
REG_NOTES (insn) = gen_rtx (EXPR_LIST, REG_DEAD, top_stack_reg,
REG_NOTES (insn));
}
replace_reg (psrc, FIRST_STACK_REG);
}
The problem is not all notes are updated.
--
H.J. Lu (hjl@gnu.org)
----
;; Insn is not within a basic block
(insn:QI 67 163 166 (parallel[
(set (reg:DI 2 %ecx)
(fix:DI (fix:SF (reg:SF 8 %st(0)))))
(clobber (reg:SF 14 %st(6)))
(clobber (mem:SI (plus:SI (reg:SI 6 %ebp)
(const_int -20))))
(clobber (mem:DI (plus:SI (reg:SI 6 %ebp)
(const_int -28))))
(clobber (reg:SI 1 %edx))
] ) 120 {fix_truncxfsi2-1} (nil)
(nil))
;; Insn is not within a basic block
(insn:QI 166 67 68 (set (mem:SF (plus:SI (reg:SI 6 %ebp)
(const_int -76)))
(reg:SF 8 %st(0))) -1 (nil)
(expr_list:REG_DEAD (reg:DF 8 %st(0))
(nil)))
next prev parent reply other threads:[~1998-05-05 19:14 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-04-25 18:25 H.J. Lu
1998-04-27 21:29 ` Jim Wilson
1998-04-30 20:03 ` Jim Wilson
1998-05-02 18:56 ` H.J. Lu
1998-05-03 20:10 ` Jim Wilson
1998-05-05 0:35 ` Jeffrey A Law
1998-05-05 19:14 ` H.J. Lu [this message]
1998-05-06 11:49 ` Jim Wilson
1998-05-05 5:03 ` Jeffrey A Law
1998-05-06 17:12 ` A patch for PPro H.J. Lu
1998-05-06 18:14 ` Jeffrey A Law
1998-05-07 15:31 ` Jim Wilson
1998-05-03 0:55 More fp bug in egcs H.J. Lu
1998-05-03 12:03 ` H.J. Lu
1998-05-03 17:14 ` Jim Wilson
1998-05-04 11:17 ` H.J. Lu
1998-05-04 18:07 ` Jeffrey A Law
1998-05-04 18:07 ` H.J. Lu
1998-05-04 22:00 ` Jeffrey A Law
1998-05-08 16:04 ` Jeffrey A Law
1998-05-03 20:10 ` Jim Wilson
1998-05-05 5:46 ` Jeffrey A Law
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m0yWnXo-000268C@ocean.lucon.org \
--to=hjl@lucon.org \
--cc=crux@pool.informatik.rwth-aachen.de \
--cc=egcs@cygnus.com \
--cc=law@cygnus.com \
--cc=scox@cygnus.com \
--cc=wilson@cygnus.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).