public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* addressof losage
@ 1999-05-26 11:21 Richard Henderson
  1999-05-26 11:29 ` Richard Henderson
  1999-05-31 21:36 ` Richard Henderson
  0 siblings, 2 replies; 4+ messages in thread
From: Richard Henderson @ 1999-05-26 11:21 UTC (permalink / raw)
  To: Jason Merrill, egcs

In the process of trying to fix up reload to do something
semi-sensible with QI and HI mode on Alpha pre-BWX, I 
discovered a serious problem with the way we create the
addressof expressions in the first place.

In the beginning, we emit

(insn 13 11 0 (set (reg/v:HI 72)
        (subreg/s/u:HI (reg/v:DI 69) 0)) -1 (nil)
    (nil))

which is all well and good.  Then we come along and smash reg 72 into

(insn 13 11 0 (set (mem/s:HI (addressof:DI (reg/v:HI 73) 72) 0)
        (subreg/s/u:HI (reg/v:DI 69) 0)) -1 (nil)
    (nil))

which isn't a valid instruction.  We didn't notice until now
because the predicate on the movhi pattern is wrong.


r~

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: addressof losage
  1999-05-26 11:21 addressof losage Richard Henderson
@ 1999-05-26 11:29 ` Richard Henderson
  1999-05-31 21:36   ` Richard Henderson
  1999-05-31 21:36 ` Richard Henderson
  1 sibling, 1 reply; 4+ messages in thread
From: Richard Henderson @ 1999-05-26 11:29 UTC (permalink / raw)
  To: Jason Merrill, egcs

On Wed, May 26, 1999 at 11:21:03AM -0700, Richard Henderson wrote:
> ... which isn't a valid instruction.  We didn't notice until now
> because the predicate on the movhi pattern is wrong.

Huh.  This is more complicated than I thought.  Fixing the predicate
causes the right thing to happen.  I didn't see any place that validation
would have happened, but it obviously did.

Oh well, never mind.


r~

^ permalink raw reply	[flat|nested] 4+ messages in thread

* addressof losage
  1999-05-26 11:21 addressof losage Richard Henderson
  1999-05-26 11:29 ` Richard Henderson
@ 1999-05-31 21:36 ` Richard Henderson
  1 sibling, 0 replies; 4+ messages in thread
From: Richard Henderson @ 1999-05-31 21:36 UTC (permalink / raw)
  To: Jason Merrill, egcs

In the process of trying to fix up reload to do something
semi-sensible with QI and HI mode on Alpha pre-BWX, I 
discovered a serious problem with the way we create the
addressof expressions in the first place.

In the beginning, we emit

(insn 13 11 0 (set (reg/v:HI 72)
        (subreg/s/u:HI (reg/v:DI 69) 0)) -1 (nil)
    (nil))

which is all well and good.  Then we come along and smash reg 72 into

(insn 13 11 0 (set (mem/s:HI (addressof:DI (reg/v:HI 73) 72) 0)
        (subreg/s/u:HI (reg/v:DI 69) 0)) -1 (nil)
    (nil))

which isn't a valid instruction.  We didn't notice until now
because the predicate on the movhi pattern is wrong.


r~

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: addressof losage
  1999-05-26 11:29 ` Richard Henderson
@ 1999-05-31 21:36   ` Richard Henderson
  0 siblings, 0 replies; 4+ messages in thread
From: Richard Henderson @ 1999-05-31 21:36 UTC (permalink / raw)
  To: Jason Merrill, egcs

On Wed, May 26, 1999 at 11:21:03AM -0700, Richard Henderson wrote:
> ... which isn't a valid instruction.  We didn't notice until now
> because the predicate on the movhi pattern is wrong.

Huh.  This is more complicated than I thought.  Fixing the predicate
causes the right thing to happen.  I didn't see any place that validation
would have happened, but it obviously did.

Oh well, never mind.


r~

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1999-05-31 21:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-05-26 11:21 addressof losage Richard Henderson
1999-05-26 11:29 ` Richard Henderson
1999-05-31 21:36   ` Richard Henderson
1999-05-31 21:36 ` Richard Henderson

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).