[Bug target/52144] ARM should support arm/thumb function attribute to permit different instruction sets in the same source
chrbr at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jun 10 07:51:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52144
--- Comment #5 from chrbr at gcc dot gnu.org ---
Author: chrbr
Date: Wed Jun 10 07:50:59 2015
New Revision: 224314
URL: https://gcc.gnu.org/viewcvs?rev=224314&root=gcc&view=rev
Log:
Add ARM/thumb attribute target
PR target/52144
* config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified):
Save.
* config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
(arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
* config/arm/arm.h (SWITCHABLE_TARGET): Define.
* config/arm/arm.c (arm_reset_previous_fndecl): New functions.
(arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
(arm_valid_target_attribute_p): Likewise.
(arm_set_current_function, arm_can_inline_p): Likewise.
(arm_valid_target_attribute_rec): Likewise.
(arm_previous_fndecl): New variable.
(TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
(TARGET_CAN_INLINE_P): Define.
(arm_asm_trampoline_template): Emit mode.
(arm_file_start): Don't set unified syntax.
(arm_declare_function_name): Set unified syntax and mode.
(arm_option_override): Init target_option_default_node.
and target_option_current_node.
* config/arm/arm.md (*call_value_symbol): Set mode when possible.
(*call_symbol): Likewise.
* doc/extend.texi: Document ARM/Thumb target attribute.
* doc/invoke.texi: Likewise.
* gcc.target/arm/attr_arm.c: New test
* gcc.target/arm/attr_arm-err.c: New test
* gcc.target/arm/attr_thumb.c: New test
* gcc.target/arm/attr_thumb-static.c: New test
Added:
trunk/gcc/testsuite/gcc.target/arm/attr_arm-err.c
trunk/gcc/testsuite/gcc.target/arm/attr_arm.c
trunk/gcc/testsuite/gcc.target/arm/attr_thumb-static.c
trunk/gcc/testsuite/gcc.target/arm/attr_thumb.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm-protos.h
trunk/gcc/config/arm/arm.c
trunk/gcc/config/arm/arm.h
trunk/gcc/config/arm/arm.md
trunk/gcc/config/arm/arm.opt
trunk/gcc/doc/extend.texi
trunk/gcc/doc/invoke.texi
trunk/gcc/testsuite/ChangeLog
More information about the Gcc-bugs
mailing list