diff options
author | Richard Sandiford <rsandifo@gcc.gnu.org> | 2012-01-15 18:22:55 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2012-01-15 18:22:55 +0000 |
commit | ddaf812593310705b989f835ec3aac1a14a8b755 (patch) | |
tree | fc5bc18bcb124f4811d716b815e3bc85b3097e55 /gcc/config/mips/mips-protos.h | |
parent | bf63ef6c22e8d8f972e76dad2b75ef509ddbc062 (diff) | |
download | gcc-ddaf812593310705b989f835ec3aac1a14a8b755.zip gcc-ddaf812593310705b989f835ec3aac1a14a8b755.tar.gz gcc-ddaf812593310705b989f835ec3aac1a14a8b755.tar.bz2 |
mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
gcc/
2012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
(SYMBOL_32_HIGH): Likewise.
(mips_output_tls_reloc_directive): Declare.
* config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
(mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
* config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
(mips_lo_relocs, mips_hi_relocs): Make extern.
(mips16_stub_function): Move up file.
(mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
(mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
(mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
(mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead
of SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1
if it's false.
(mips_get_tp): Add MIPS16 support.
(mips_legitimize_tls_address): Remove MIPS16 sorry().
Generalize DTPREL and TPREL handling.
(mips_init_relocs): Initialize mips_use_pcrel_pool_p.
Add MIPS16 TLS support.
(mips_output_tls_reloc_directive): New function.
(mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
* config/mips/predicates.md (symbolic_operand_with_high)
(tls_reloc_operand): New predicates.
(force_to_mem_operand): Use mips_use_pcrel_pool_p.
* config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
(PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
(*unshifted_high): New instruction. Use it for MIPS16
high splitter.
(consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
(*tls_get_tp_mips16_call_<mode>): Likewise.
gcc/testsuite/
* gcc.target/mips/code-readable-2.c: Allow the jump table address
to be loaded from the constant pool, rather than via %hi and %lo.
libgcc/
2012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/libgcc-mips16.ver (__mips16_rdhwr): Add.
* config/mips/mips16.S (__mips16_rdhwr): New function.
* config/mips/t-mips16 (LIB1ASMFUNCS): Add _m16rdhwr.
From-SVN: r183195
Diffstat (limited to 'gcc/config/mips/mips-protos.h')
-rw-r--r-- | gcc/config/mips/mips-protos.h | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/gcc/config/mips/mips-protos.h b/gcc/config/mips/mips-protos.h index ca0fb5e..45d2537 100644 --- a/gcc/config/mips/mips-protos.h +++ b/gcc/config/mips/mips-protos.h @@ -56,9 +56,6 @@ enum mips_symbol_context { The symbol's value will be calculated using a MIPS16 PC-relative calculation. - SYMBOL_FORCE_TO_MEM - The symbol's value must be forced to memory and loaded from there. - SYMBOL_GOT_PAGE_OFST The symbol's value will be calculated by loading an address from the GOT and then applying a 16-bit offset. @@ -94,9 +91,6 @@ enum mips_symbol_context { UNSPEC wrappers around SYMBOL_TLS, corresponding to the thread-local storage relocation operators. - SYMBOL_32_HIGH - For a 32-bit symbolic address X, this is the value of %hi(X). - SYMBOL_64_HIGH For a 64-bit symbolic address X, this is the value of (%highest(X) << 16) + %higher(X). @@ -116,7 +110,6 @@ enum mips_symbol_type { SYMBOL_ABSOLUTE, SYMBOL_GP_RELATIVE, SYMBOL_PC_RELATIVE, - SYMBOL_FORCE_TO_MEM, SYMBOL_GOT_PAGE_OFST, SYMBOL_GOT_DISP, SYMBOL_GOTOFF_PAGE, @@ -129,7 +122,6 @@ enum mips_symbol_type { SYMBOL_DTPREL, SYMBOL_GOTTPREL, SYMBOL_TPREL, - SYMBOL_32_HIGH, SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW, @@ -260,6 +252,7 @@ extern void mips_push_asm_switch (struct mips_asm_switch *); extern void mips_pop_asm_switch (struct mips_asm_switch *); extern void mips_output_external (FILE *, tree, const char *); extern void mips_output_ascii (FILE *, const char *, size_t); +extern const char *mips_output_tls_reloc_directive (rtx *); extern void mips_output_aligned_decl_common (FILE *, tree, const char *, unsigned HOST_WIDE_INT, unsigned int); |