[fpc-pascal] Fcp for arm linux for EABI
Jose Pascual
josepascual at almudi.com
Fri Apr 27 00:00:02 CEST 2007
Hi,
in rtl/arm/arm.inc it can read
procedure fpc_cpuinit;
begin
{$if not(defined(wince)) and not(defined(gba)) and not(defined(nds))}
asm
rfs r0
and r0,r0,#0xffe0ffff
orr r0,r0,#0x00020000
wfs r0
end;
{$endif}
end;
altought I'm using a toolchain EABI and Compiling for softfloat -CfSOFT I
can make ppc for arm because
rfs and wfs are fpu intruction in ARM and it's contained in this code.
is there some solution for it?
Same thing in rtl/arm/math.inc
{$if not(defined(gba)) and not(defined(nds))}
const
_FPU_MASK_IM = $00010000; { invalid operation }
_FPU_MASK_ZM = $00020000; { divide by zero }
_FPU_MASK_OM = $00040000; { overflow }
_FPU_MASK_UM = $00080000; { underflow }
_FPU_MASK_PM = $00100000; { inexact }
_FPU_MASK_DM = $00000000; { denormalized operation }
_FPU_MASK_ALL = $001f0000; { mask for all flags }
function FPU_GetCW : dword; nostackframe; assembler;
asm
rfs r0
end;
procedure FPU_SetCW(cw : dword); nostackframe; assembler;
asm
wfs r0
end;
{$endif}
thanks,
Jose Pascual,
> -----Mensaje original-----
> De: fpc-pascal-bounces at lists.freepascal.org [mailto:fpc-pascal-
> bounces at lists.freepascal.org] En nombre de Henry Vermaak
> Enviado el: jueves, 26 de abril de 2007 14:54
> Para: FPC-Pascal users discussions
> Asunto: Re: [fpc-pascal] Fcp for arm linux for EABI
>
> another thing that's important to do when you're using svn is edit
> compiler/systems/i_linux.pas. go to the arm_linux section and remove
> the tf_smartlink_sections from the flags. you can also edit the
> endianness of the target here (endian_little or endian_big). see for
> example my diff for my big endian arm:
>
> hcv at technical02:~/freepascal/latest$ svn diff -r HEAD
> compiler/systems/i_linux.pas
> Index: compiler/systems/i_linux.pas
> ===================================================================
> --- compiler/systems/i_linux.pas (revision 7167)
> +++ compiler/systems/i_linux.pas (working copy)
> @@ -525,7 +525,7 @@
> name : 'Linux for ARM';
> shortname : 'Linux';
> flags :
> [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
> -
> tf_use_function_relative_addresses,tf_requires_proper_alignment,tf_smar
> tlink_sections];
> +
> tf_use_function_relative_addresses,tf_requires_proper_alignment];
> cpu : cpu_arm;
> unit_env : 'LINUXUNITS';
> extradefines : 'UNIX;HASUNIX';
> @@ -558,7 +558,7 @@
> res : res_none;
> dbg : dbg_stabs;
> script : script_unix;
> - endian : endian_little;
> + endian : endian_big;
> alignment :
> (
> procalign : 4;
>
> henry
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
More information about the fpc-pascal
mailing list