[PATCH, ARM] attribute target (thumb,arm)
Mon Sep 29 11:03:00 GMT 2014
Hi Ramana, Richard,
This patch implements the attribute target (and pragma) to allow
function based interworking.
as in the updated documentation, the syntax is:
__attribute__((target("thumb"))) int foo()
Forces thumb mode for function foo only. If the file was compiled with
-mthumb iit has no effect.
__attribute__((target("arm"))) int foo()
Forces arm mode for function foo. It has no effect if the file was not
compiled with -mthumb.
and regions can be grouped together with
#pragma GCC target ("thumb")
#pragma GCC target ("arm")
a few notes
- Inlining is allowed between functions of the same mode (compilation
switch, #pragma and attribute)
- 'arm_option_override' is now reorganized around
'arm_option_override_internal' for thumb related macros
- I kept TARGET_UNIFIED_ASM to minimize changes. Although removing it
would avoid to switch between unified/divided asms
and simplify arm_declare_function_name. Should be considered at some
- It is only available for Thumb2 variants (for thumb1 lack of interest
and a few complications I was unable to test, although this could be
added easily if needed, I think)
Tested for no regression for arm-none-eabi [,-with-arch=armv7-a]
OK for trunk ?
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 30204 bytes
Desc: not available
More information about the Gcc-patches