This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: UltraSPARC 16-bit assignments severely broken [analysis]
- To: "Charles M. Hannum" <root at ihack dot net>
- Subject: Re: UltraSPARC 16-bit assignments severely broken [analysis]
- From: Geoff Keating <geoffk at cygnus dot com>
- Date: 24 Jul 2000 15:30:02 -0700
- CC: gcc-bugs at gcc dot gnu dot org
- References: <200007230316.e6N3GLn02381@lop-nor.ihack.net>
"Charles M. Hannum" <root@ihack.net> writes:
> The problem has to do with loop hoisting and movhi. When the parser
> generates the 16-bit assignment inside the loop,
> sparc_emit_set_const32() splits it into a two-part load:
>
> (insn 21 19 22 (set (reg:HI 110)
> (const_double (const_int 0 [0x0]) -32768 [0xffff8000] 0 [0x0] 0 [0x0] 0 [0x0] 0 [0x0])) -1 (nil)
> (nil))
This is wrong. It should be:
(insn 21 19 22 (set (reg:HI 110)
(const_int -32768)) -1 (nil)
(nil))
--
- Geoffrey Keating <geoffk@cygnus.com>