Yury Sidorov schrieb:
> From: "Felipe Monteiro de Carvalho" <[EMAIL PROTECTED]>
>> On 11/1/07, Marco van de Voort <[EMAIL PROTECTED]> wrote:
>>> It seems that when you branch, in the instruction you can encode if the
>>>  instructionset of the target is thumb or not.
>>
>> So, currently fpc set's all branches to use arm4 mode
>>
>> And C++ apps compiled could check what the system is using and use a
>> if to either call in arm4 or call in thumb mode. The strange thing is
>> that this is a bit arbitrary. There is nothing special about an OS
>> call, it's just a call like any other. I wonder where does the
>> compiler get the information of if the function is in arm4 or thumb
>> mode.
> 
> FPC just do calls using BL command. It expects that all procedures are
> ARM4.
> C compilers has option called thumb interworking which wraps each
> procedure call with code which checks for procedure mode and performs
> necessary mode swithes. It will slowdown calls.
> 
> Also as Marco said interworking code can be added or not depending of
> object file instruction set.

On arm-linux and with gnu binutils, simply assemble everything with
-mthumb-interwork and you can mix arm and thumb o-files without worrying
about anything.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to