This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ARM/Thumb Interwork


what about the functions that have a mix of arm/thumb? is there a general rule to distinguish between arm/thumb code within such functions?

examples of such functions are
1. a function compiled with -mcallee-super-interworking
2. __<arm_func>_from_thumb

is there any other kind of function that can have mix of arm/thumb?

in case of 1, the function is marked as arm, and the thumb code begins with a label of the form '.real_start_of<funcname>'.
in case of 2, the function is marked as thumb, and arm code begins with a label of the form '__<arm_function_to_be_called>_change_to_arm'.


both the labels have type STT_NOTYPE in symtab. so is it the label name that is being used to distinguish between arm/thumb? if yes, is there any other label name that is used for this purpose?

the numeric value of STT_THUMB_FUNC is 13, right?

soubhik.

Richard Earnshaw wrote:
hi all,

i'm working on a tool that reads and analyzes arm/thumb elf files produced by gcc. to do this i need to be able to distinguish between arm and thumb code fragments.

arm eabi 2.0 extends generic elf standard to specify how to distinguish between arm and thumb code fragments. however, it seems that the cross gcc that i have does not follow arm eabi 2.0. so what is the convention that gcc follows and how to learn about it?

with the help of 'objdump', i cud see that calls to arm functions from thumb code and vice versa is supported thru special wrapper functions (__<func>_from_thumb and __<func>_from_arm). this technique will not work for a function having a mix of arm and thumb code. are such functions supported? what happens if a relocatable object is generated with -mcallee-super-interworking?



GNU tools currently mark Thumb function symbols with type STT_THUMB_FUNC. I'm hoping that we will be able to migrate the GNU tools over to the new ARM ABI specs, but it's going to be a fair amount of work.

R.

-- -0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5-6-7 Soubhik Bhattacharya Member Technical Staff Mentor Graphics Hyderabad, India. -0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5-6-7

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]