Hello Ramana,
Here is the attribute revisited after your comments, so
- thumb1 is now supported
- -mflip-thump option added for testing.
- inlining is allowed between modes.
This set of patches was tested on rev#217709 as:
no regressions with:
arm-sim/
arm-sim/-march=armv7-a
arm-sim/-mthumb
arm-sim/-mthumb/-march=armv7-a
a few artifacts, all of them analyzed, with
arm-sim/-mflip-thumb/
arm-sim/-mflip-thumb//-march=armv7-a
arm-sim/-mflip-thumb//-mthumb
arm-sim/-mflip-thumb//-mthumb/-march=armv7-a
Artifacts are analyzed, they are mostly the fault of the testsuite being
unable to mix modes in the expected results (e.g thumb[1,2] or arm tests
predicates, mix setjmp/longjump between modes...)
The support is split as followed:
[1/6] Reorganized arm_option_override to dynamically redefine the flags
depending on the attribute mode.
[2/6] Reorganized macro settings to be set/unset for each #pragma targets
[3/6] Change ARM_DECLARE_FUNCTION_NAME into a function
[4/6] Implement hooks to support attribute target
[5/6] Implement #pragma target
[6/6] Add -mflip-thumb option for testing
I think I missed the stage3, Anyway would it be OK for stage1 when it
reopens ?
Christian