[fpc-pascal] FPC ARM inline Assembler

Vern vmst at golden.net
Thu Apr 6 19:06:39 CEST 2023


After reading the FPC manual more closely , the correct compiler command 
is {$ASMMODE default} where/default /is the native system ... in this 
case Orange Pi arm64 and the compiler now allows accepting ARM assembler 
instructions.

However it won't allow referencing a Pascal variable.

Here is an example (32-bit) of x86 inline assembler that works correctly

procedure MSBitTest ( DataIn : longword);
var
  MSBit : longword;

begin
  asm
   bsr eax , DataIn
   mov MsBit , eax
  end;
end;

.......... the ARM version fails (similar code : ignore the fact it is 
the reverse of BSR) ... what am I missing ?

procedure MSBitTest ( DataIn : longword);
var
  MSBit : longword;

begin
  asm
   clz w4 , DataIn
   mov MsBit , w4
  end;
end;

Regards
Vern

On 06/04/2023 11:36 a.m., Sven Barth via fpc-pascal wrote:
> Vern via fpc-pascal <fpc-pascal at lists.freepascal.org> schrieb am Do., 
> 6. Apr. 2023, 17:32:
>
>     Does the current FPC compiler support  ARM inline assembler ?
>
>
> Yes.
>
>
>     If so what is the equivalent ARM command for {$ASMMODE intel}
>
>
> There is none, because only one syntax is supported.
>
> Regards,
> Sven
>
>
> _______________________________________________
> fpc-pascal maillist  -fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20230406/49344675/attachment.htm>


More information about the fpc-pascal mailing list