rs6000-protos.h (rs6000_output_addr_const_extra): Declare.
authorRichard Sandiford <rdsandiford@googlemail.com>
Mon, 6 Oct 2008 19:07:13 +0000 (19:07 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 6 Oct 2008 19:07:13 +0000 (19:07 +0000)
commit2e4316da802a3049f67686001f9dbca5711dcace
treeccf0ce9fa3c9617218e9f154f6b176a7969628ca
parent3517d3a0870e7081d4ded0fa4cc590c602713a8c
rs6000-protos.h (rs6000_output_addr_const_extra): Declare.

gcc/
* config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
Declare.
* config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
* config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
* config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
(constant_pool_expr_p): Use split_const and check the base.
(toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
instead of a MINUS.
(legitimate_constant_pool_address_p): Check toc_relative_p
instead of constant_pool_expr_p.
(print_operand_address): Always use output_addr_const for
constant pool addresses.
(rs6000_output_addr_const_extra): New function.
(create_TOC_reference): Create an UNSPEC_TOCREL instead of
a MINUS.

From-SVN: r140910
gcc/ChangeLog
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md