This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] VAX ELF PIC support (take 2).
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: gcc-patches at gcc dot gnu dot org
- Cc: matt at 3am-software dot com
- Date: Tue, 21 Oct 2003 17:30:42 -0400 (EDT)
- Subject: Re: [patch] VAX ELF PIC support (take 2).
Hi Matt,
Since this is a large and complex change, I decided to test it. Sorry,
about the delay but I had to work out some updates for an ultrix build
with 3.4. Mostly, these are include hacks.
I hit a problem with your patch which appear related to the changes
made to GO_IF_LEGITIMATE_ADDRESS or print_operand_address.
stage1/xgcc -Bstage1/ -B/usr/local/vax-dec-ultrix4.3/bin/ -c -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Werror -fno-common -DHAVE_CONFIG_H -I. -I. -I../../gcc/gcc -I../../gcc/gcc/. -I../../gcc/gcc/../include ../../gcc/gcc/cppcharset.c -o cppcharset.o
../../gcc/gcc/cppcharset.c: In function `_cpp_valid_ucn':
../../gcc/gcc/cppcharset.c:771: internal compiler error: in print_operand_address, at config/vax/vax.c:386
We have the following insn being output:
(gdb) p debug_rtx (insn)
(insn 322 450 328 ../../gcc/gcc/cppcharset.c:767 (set (reg:SI 0 r0 [orig:121 <variable>.flags ] [121])
(zero_extend:SI (mem/s/u:HI (plus:SI (plus:SI (mult:SI (reg/v:SI 2 r2 [orig:66 md ] [66])
(const_int 2 [0x2]))
(reg:SI 8 r8 [136]))
(const:SI (plus:SI (symbol_ref:SI ("ucnranges") [flags 0x2] <var_decl 00658af4 ucnranges>)
(const_int 4 [0x4])))) [4 <variable>.flags+0 S2 A16]))) 30 {zero_extendhisi2} (nil)
(expr_list:REG_DEAD (reg/v:SI 2 r2 [orig:66 md ] [66])
(nil)))
(gdb) p debug_rtx (x)
(plus:SI (plus:SI (mult:SI (reg/v:SI 2 r2 [orig:66 md ] [66])
(const_int 2 [0x2]))
(reg:SI 8 r8 [136]))
(const:SI (plus:SI (symbol_ref:SI ("ucnranges") [flags 0x2] <var_decl 00658af4 ucnranges>)
(const_int 4 [0x4]))))
(gdb) p debug_rtx (addr)
(plus:SI (mult:SI (reg/v:SI 2 r2 [orig:66 md ] [66])
(const_int 2 [0x2]))
(reg:SI 8 r8 [136]))
(gdb) p debug_rtx (reg1)
(reg:SI 8 r8 [136])
(gdb) p debug_rtx (breg)
(nil)
(gdb) p debug_rtx (ireg)
(mult:SI (reg/v:SI 2 r2 [orig:66 md ] [66])
(const_int 2 [0x2]))
(gdb) p legitimate_address_p (HImode, x, 0)
$10 = 1
I'm going to try a baseline build so I can see the current state of things.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)