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