MIPS/GCC: Mark text contents as code or data
authorMaciej W. Rozycki <macro@imgtec.com>
Wed, 16 Nov 2016 17:12:08 +0000 (17:12 +0000)
committerMaciej W. Rozycki <macro@gcc.gnu.org>
Wed, 16 Nov 2016 17:12:08 +0000 (17:12 +0000)
commit2fe2aba3cd7c2daf16c545bc7fa34481157bfcaf
tree931dfe15f072d0bff6ee2f255e808b318ed13700
parent598eaaa2a2368bb7d5ac3bafe7a0d1bb26d43f6e
MIPS/GCC: Mark text contents as code or data

gcc/
* config/mips/mips-protos.h (mips_set_text_contents_type): New
prototype.
* config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): New macro.
(ASM_OUTPUT_CASE_END): Likewise.
* config/mips/mips.c (mips_set_text_contents_type): New
function.
(mips16_emit_constants): Record the pool's initial label number
with the `consttable' insn.  Emit a `consttable_end' insn at the
end.
(mips_final_prescan_insn): Call `mips_set_text_contents_type'
for `consttable' insns.
(mips_final_postscan_insn): Call `mips_set_text_contents_type'
for `consttable_end' insns.
* config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE_END enum
value.
(consttable): Add operand.
(consttable_end): New insn.

gcc/testsuite/
* gcc.target/mips/data-sym-jump.c: New test case.
* gcc.target/mips/data-sym-pool.c: New test case.
* gcc.target/mips/insn-pseudo-4.c: Adjust for constant pool
annotation.

From-SVN: r242502
gcc/ChangeLog
gcc/config/mips/mips-protos.h
gcc/config/mips/mips.c
gcc/config/mips/mips.h
gcc/config/mips/mips.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/data-sym-jump.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/data-sym-pool.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/insn-pseudo-4.c