[fpc-pascal] inline asm in fpc progran
Jeppe Johansen
jepjoh2 at kom.aau.dk
Thu Aug 26 09:44:09 CEST 2010
Err, that should be -dFPC_ARMEL of course
Den 26-08-2010 09:42, Jeppe Johansen skrev:
> Fpc should be compiled with -dFPC-ARMEL in OPT, not CROSSOPT
>
> Den 26-08-2010 07:10, Nataraj S Narayan skrev:
>> Hi Jonas
>>
>>
>> I tried a very elementary code on arm-linux-uclibc, compiled using
>> "ppcrossarm -TLinux -darm ttt3.pas -CfSOFT -XParm-linux- -XR/cdrom"
>>
>> program kuraj;
>> begin
>> writeln('Hooua');
>> end.
>>
>>
>> The asm listing using -al is here: - http://pastebin.com/CG9i0x3z
>>
>> It dont work in the normal EABI kernel but works on OABI compat one.
>>
>> I got ppcrossarm using :-
>> gmake distclean crosszipinstall CPU_TARGET=arm OS_TARGET=linux
>> CROSSOPT='-CfSOFT -darm -dFPC-ARMEL -gl'
>> FPC=/usr/local/lib/fpc/2.5.1/ppc386
>>
>>
>> warm regards
>>
>> Nataraj
>>
>> On Fri, Aug 20, 2010 at 6:51 PM, Jonas Maebe
>> <jonas.maebe at elis.ugent.be <mailto:jonas.maebe at elis.ugent.be>> wrote:
>>
>>
>> On 20 Aug 2010, at 15:00, Nataraj S Narayan wrote:
>>
>> On Fri, Aug 20, 2010 at 2:38 PM, Jonas Maebe
>> <jonas.maebe at elis.ugent.be
>> <mailto:jonas.maebe at elis.ugent.be>>wrote:
>>
>> You probably need the "nostackframe" directive, or remove
>> the "mov pc,lr"
>>
>> at the end.
>>
>> Compile the code with -al, compile equivalent Pascal code
>> with -al and look
>> at the differences in the generated ".s" files.
>>
>>
>> I changed the kernel to old 2.6.30 and the code works on the
>> Arm target!
>>
>> That kernel has been compiled with CONFIG_OABI_COMPAT=y.
>> Newer kernels dont
>> show this option, only EABI.
>>
>> Also my ppcrossarm is :-
>>
>> Free Pascal Compiler version 2.5.1 [2010/07/28] for arm
>> Copyright (c) 1993-2009 by Florian Klaempfl
>>
>> What do you make of it?
>>
>>
>> That you did not reply to the suggestions I made in my previous
>> message. Please say what you did and what happened, even if it
>> didn't work. It's not nice to spend time on trying to help
>> someone, if that person then simply ignores what you write and
>> replies with something completely different.
>>
>> The EABI requires that the stack is always aligned to 8 bytes on
>> entry/exit of subroutines, and you probably mess up the alignment
>> with the manually inserted return instruction.
>>
>> Also, make sure that you compiled an EABI cross-compiler (ensure
>> that -dFPC_ARMEL is part of the OPT setting of the "make"
>> invocation used to compile FPC).
>>
>>
>>
>> Jonas
>> _______________________________________________
>> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
>> <mailto:fpc-pascal at lists.freepascal.org>
>> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>>
>>
>>
>> _______________________________________________
>> fpc-pascal maillist -fpc-pascal at lists.freepascal.org
>> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
>
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20100826/ff2aee81/attachment.html>
More information about the fpc-pascal
mailing list