alpha.c (small_symbolic_operand): New.
authorRichard Henderson <rth@redhat.com>
Thu, 13 Sep 2001 08:42:20 +0000 (01:42 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 13 Sep 2001 08:42:20 +0000 (01:42 -0700)
commit133d3133614e67b07891110d12ec1bfc6af58eb0
tree6e0e7913cb4002941265bbd23d185d04c6625c63
parent97f4007957cdf58a9cc7478fd62fb64b3c7b762e
alpha.c (small_symbolic_operand): New.

        * config/alpha/alpha.c (small_symbolic_operand): New.
        (override_options): Set MASK_SMALL_DATA based on pic/PIC.
        (some_operand, input_operand): Don't handle HIGH.
        (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
        (alpha_expand_mov): Likewise.
        (print_operand) [H]: Just print HIGH symbol.
        (print_operand_address): Handle small data.
        * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
        (TARGET_SWITCHES): Add -msmall-data/large-data.
        (PIC_OFFSET_TABLE_REGNUM): New.
        (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
        (PREDICATE_COES): Update.
        * config/alpha/alpha.md (adddi_er_high): New.
        (adddi_er_low): Handle small data.
        * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
        prefer .sdata to .rodata.
        (SELECT_RTX_SECTION): Likewise.

From-SVN: r45576
gcc/ChangeLog
gcc/config/alpha/alpha.c
gcc/config/alpha/alpha.h
gcc/config/alpha/alpha.md
gcc/config/alpha/elf.h