]> git.ipfire.org Git - thirdparty/gcc.git/commit
[ARM] Add support for -mpure-code option
authoravieira <avieira@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 22 Sep 2016 17:02:47 +0000 (17:02 +0000)
committeravieira <avieira@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 22 Sep 2016 17:02:47 +0000 (17:02 +0000)
commit9753b5495e82b025fcb165536a308263810cdce7
tree2b6549bc452c8fe8fec854d66c6c770e37be25f7
parent7739537fdcc5e07f7d5112b19f306343baac765e
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240379 138bc75d-0d04-0410-961f-82ee72b054a4
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