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
Showing
- gcc/ChangeLog 20 additions, 0 deletionsgcc/ChangeLog
- gcc/config/mips/mips-protos.h 2 additions, 0 deletionsgcc/config/mips/mips-protos.h
- gcc/config/mips/mips.c 65 additions, 4 deletionsgcc/config/mips/mips.c
- gcc/config/mips/mips.h 26 additions, 0 deletionsgcc/config/mips/mips.h
- gcc/config/mips/mips.md 11 additions, 1 deletiongcc/config/mips/mips.md
- gcc/testsuite/ChangeLog 7 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gcc.target/mips/data-sym-jump.c 50 additions, 0 deletionsgcc/testsuite/gcc.target/mips/data-sym-jump.c
- gcc/testsuite/gcc.target/mips/data-sym-pool.c 25 additions, 0 deletionsgcc/testsuite/gcc.target/mips/data-sym-pool.c
- gcc/testsuite/gcc.target/mips/insn-pseudo-4.c 3 additions, 1 deletiongcc/testsuite/gcc.target/mips/insn-pseudo-4.c
Loading
Please register or sign in to comment