re PR target/48032 (PowerPC64 -mcmodel=medium invalid ld offset)
authorAlan Modra <amodra@gmail.com>
Tue, 15 Mar 2011 02:19:28 +0000 (12:49 +1030)
committerAlan Modra <amodra@gcc.gnu.org>
Tue, 15 Mar 2011 02:19:28 +0000 (12:49 +1030)
commit77b0791e3dd1c8f8115499725357d0791334ce85
treeb27ed5b1bbd9fb5fa033c1c1714e2076ee51296e
parente95992339f9c10fce65d2eea8c95fe9e5a84d43c
re PR target/48032 (PowerPC64 -mcmodel=medium invalid ld offset)

PR target/48032
* config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
presume symbol_refs without a symbol_ref_decl are suitably
aligned, nor other trees we may see here.  Handle anchor symbols.
(legitimate_constant_pool_address_p): Comment.  Add mode param.
Check cmodel=medium addresses.  Adjust all calls.
(rs6000_emit_move): Don't call offsettable_ok_by_alignment on
creating cmodel=medium optimized access to locals.
* config/rs6000/constraints.md (R): Pass QImode to
legitimate_constant_pool_address_p.
* config/rs6000/predicates.md (input_operand): Pass mode to
legitimate_constant_pool_address_p.
* config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
Update prototype.

From-SVN: r170976
gcc/ChangeLog
gcc/config/rs6000/constraints.md
gcc/config/rs6000/predicates.md
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c