Works now!

Many Thanks
Vern

On 06/04/2023 1:43 p.m., Jonas Maebe via fpc-pascal wrote:
On 06/04/2023 19:06, Vern via fpc-pascal wrote:
.......... 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;

ARM is a load/store architecture, which means it only supports operations on values loaded in registers. Local variables are always allocated on the stack in procedures/functions with inline assembler blocks, so you need to use the "str" instruction to store w4 into MsBit. "mov" only works for register-register transfers on ARM.


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to