[ARM] Add support for -mpure-code option
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Thu, 22 Sep 2016 17:02:47 +0000 (17:02 +0000)
committerAndre Vieira <avieira@gcc.gnu.org>
Thu, 22 Sep 2016 17:02:47 +0000 (17:02 +0000)
commit0ee70cc0000fe25484cb0d3b2ac2904d2007e5cf
tree2b6549bc452c8fe8fec854d66c6c770e37be25f7
parent31e9f857d5408a69bc6c1eac793103c73ce6eed0
[ARM] Add support for -mpure-code option

gcc/ChangeLog:
2016-09-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
            Terry Guo  <terry.guo@arm.com>

    * target.def (elf_flags_numeric): New target hook.
    * targhooks.h (default_asm_elf_flags_numeric): New.
    * varasm.c (default_asm_elf_flags_numeric): New.
    (default_elf_asm_named_section): Use new target hook.
    * config/arm/arm.opt (mpure-code): New.
    * config/arm/arm.h (SECTION_ARM_PURECODE): New.
    * config/arm/arm.c (arm_asm_init_sections): Add section
    attribute to default text section if -mpure-code.
    (arm_option_check_internal): Diagnose use of option with
    non supported targets and/or options.
    (arm_asm_elf_flags_numeric): New.
    (arm_function_section): New.
    (arm_elf_section_type_flags): New.
    * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
    for -mpure-code.
    * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
    * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.

gcc/testsuite/ChangeLog:
2016-09-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
            Terry Guo  <terry.guo@arm.com>

    * gcc.target/arm/pure-code/ffunction-sections.c: New.
    * gcc.target/arm/pure-code/no-literal-pool.c: New.
    * gcc.target/arm/pure-code/pure-code.exp: New.

Co-Authored-By: Terry Guo <terry.guo@arm.com>
From-SVN: r240379
13 files changed:
gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/arm.h
gcc/config/arm/arm.md
gcc/config/arm/arm.opt
gcc/config/arm/elf.h
gcc/doc/invoke.texi
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/hooks.c
gcc/target.def
gcc/testsuite/ChangeLog
gcc/varasm.c