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.
Yury.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel