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: UltraSPARC 16-bit assignments severely broken [analysis]



"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>

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]