This is the mail archive of the gcc-patches@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]
Other format: [Raw text]

Re: rewrite ia64 symbol references


Richard,

I am having trouble with your changes to ia64_expand_load_address when I
am in 32 bit mode on IA64 HP-UX and was wondering if you could recommend
a fix.

The problem is that I can enter ia64_expand_load_address with a dest
argument that is an SImode register instead of a DImode register.
Before, when this happened I would use scratch (if it was DImode) or
create a temporary DImode register to use before copying it back to the
original dest and putting it in SImode.  Is this still the best way to
handle this?  Should I put back code to create a temporary register if
dest is not in DImode?  Are there times when creating a temporary would
cause problems?

Here is the error I currently get during my bootstrap:

[hpadl731] $ obj_gcc/gcc/cc1 x.c
 bar
x.c: In function `bar':
x.c:6: error: unrecognizable insn:
(insn 28 21 29 0 7ef7e280 (set (reg:SI 120 r36)
        (plus:DI (high:DI (symbol_ref:SI ("x") [flags 0x40] <var_decl 7ef7c580 x
>))
            (reg:DI 1 r1))) -1 (nil)
    (nil))
x.c:6: internal compiler error: in extract_insn, at recog.c:2188
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

Steve Ellcey
sje@cup.hp.com


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