mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 09:59:29 +02:00
* very basic stuff for the arm
This commit is contained in:
parent
d73acd12f6
commit
d2035fd6b4
@ -50,11 +50,13 @@
|
||||
{$define x86}
|
||||
{$define cpu64bit}
|
||||
{$define cpuextended}
|
||||
{$define callparatemp}
|
||||
{$endif x86_64}
|
||||
|
||||
{$ifdef alpha}
|
||||
{$define cpu64bit}
|
||||
{$undef cpuflags}
|
||||
{$define callparatemp}
|
||||
{$endif alpha}
|
||||
|
||||
{$ifdef sparc}
|
||||
@ -65,6 +67,10 @@
|
||||
{$define callparatemp}
|
||||
{$endif powerpc}
|
||||
|
||||
{$ifdef arm}
|
||||
{$define callparatemp}
|
||||
{$endif arm}
|
||||
|
||||
{ FPU Emulator support }
|
||||
{$ifdef m68k}
|
||||
{$define cpufpemu}
|
||||
@ -77,7 +83,10 @@
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.20 2003-05-24 21:12:57 florian
|
||||
Revision 1.21 2003-07-21 11:52:57 florian
|
||||
* very basic stuff for the arm
|
||||
|
||||
Revision 1.20 2003/05/24 21:12:57 florian
|
||||
* if something doesn't work with callparatemp, the define callparatemp
|
||||
should be used because other processors with reigster calling conventions
|
||||
depend on this as well
|
||||
@ -140,5 +149,4 @@
|
||||
|
||||
Revision 1.3 2002/07/04 18:56:50 florian
|
||||
+ log added
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -111,8 +111,9 @@ interface
|
||||
system_x86_64_linux, { 26 }
|
||||
system_powerpc_darwin, { 27 }
|
||||
system_i386_EMX, { 28 }
|
||||
system_powerpc_netbsd, { 29 }
|
||||
system_powerpc_openbsd { 30 }
|
||||
system_powerpc_netbsd, { 29 }
|
||||
system_powerpc_openbsd, { 30 }
|
||||
system_arm_linux { 31 }
|
||||
);
|
||||
|
||||
tasm = (as_none
|
||||
@ -132,7 +133,6 @@ interface
|
||||
,as_i386_pecoffwdosx
|
||||
,as_m68k_mit
|
||||
,as_powerpc_mpw
|
||||
,as_x86_64_as
|
||||
);
|
||||
|
||||
tar = (ar_none
|
||||
@ -347,7 +347,6 @@ implementation
|
||||
cutils;
|
||||
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
Target setting
|
||||
****************************************************************************}
|
||||
@ -634,8 +633,8 @@ end;
|
||||
|
||||
procedure InitSystems;
|
||||
begin
|
||||
{ Now default target, this is dependent on the i386 or m68k define,
|
||||
when the define is the same as the current cpu then we use the source
|
||||
{ Now default target, this is dependent on the target cpu define,
|
||||
when the define is the same as the source cpu then we use the source
|
||||
os, else we pick a default }
|
||||
{$ifdef i386}
|
||||
{$ifdef cpu86}
|
||||
@ -672,9 +671,20 @@ begin
|
||||
default_target(system_powerpc_linux);
|
||||
{$endif cpupowerpc}
|
||||
{$endif powerpc}
|
||||
{$IFDEF sparc}
|
||||
default_target(system_sparc_linux);
|
||||
{$ENDIF sparc}
|
||||
{$ifdef sparc}
|
||||
{$ifdef cpusparc}
|
||||
default_target(source_info.system);
|
||||
{$else cpusparc}
|
||||
default_target(system_sparc_linux);
|
||||
{$endif cpusparc}
|
||||
{$endif sparc}
|
||||
{$ifdef arm}
|
||||
{$ifdef cpuarm}
|
||||
default_target(source_info.system);
|
||||
{$else cpuarm}
|
||||
default_target(system_arm_linux);
|
||||
{$endif cpuarm}
|
||||
{$endif arm}
|
||||
end;
|
||||
|
||||
|
||||
@ -685,7 +695,10 @@ finalization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.65 2003-05-31 16:17:27 marco
|
||||
Revision 1.66 2003-07-21 11:52:57 florian
|
||||
* very basic stuff for the arm
|
||||
|
||||
Revision 1.65 2003/05/31 16:17:27 marco
|
||||
* cpuppc -> cpupowerpc. Target compiler was always linux for ppc
|
||||
|
||||
Revision 1.64 2003/05/28 23:18:31 florian
|
||||
@ -788,4 +801,4 @@ end.
|
||||
|
||||
Revision 1.38 2002/04/14 16:56:30 carl
|
||||
- remove duplicate comment
|
||||
}
|
||||
}
|
||||
|
@ -414,6 +414,70 @@ unit i_linux;
|
||||
use_function_relative_addresses : true
|
||||
);
|
||||
|
||||
system_arm_linux_info : tsysteminfo =
|
||||
(
|
||||
system : system_arm_Linux;
|
||||
name : 'Linux for ARM';
|
||||
shortname : 'linux';
|
||||
flags : [];
|
||||
cpu : cpu_SPARC;
|
||||
unit_env : 'LINUXUNITS';
|
||||
extradefines : 'UNIX;HASUNIX';
|
||||
sourceext : '.pp';
|
||||
pasext : '.pas';
|
||||
exeext : '';
|
||||
defext : '.def';
|
||||
scriptext : '.sh';
|
||||
smartext : '.sl';
|
||||
unitext : '.ppu';
|
||||
unitlibext : '.ppl';
|
||||
asmext : '.s';
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : 'lib';
|
||||
sharedClibext : '.so';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : 'lib';
|
||||
Cprefix : '';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
files_case_relevent : true;
|
||||
assem : as_gas;
|
||||
assemextern : as_gas;
|
||||
link : nil;
|
||||
linkextern : nil;
|
||||
ar : ar_gnu_ar;
|
||||
res : res_none;
|
||||
script : script_unix;
|
||||
endian : endian_big;
|
||||
alignment :
|
||||
(
|
||||
procalign : 4;
|
||||
loopalign : 4;
|
||||
jumpalign : 0;
|
||||
constalignmin : 0;
|
||||
constalignmax : 4;
|
||||
varalignmin : 0;
|
||||
varalignmax : 4;
|
||||
localalignmin : 0;
|
||||
localalignmax : 4;
|
||||
paraalign : 4;
|
||||
recordalignmin : 4;
|
||||
recordalignmax : 4;
|
||||
maxCrecordalign : 4
|
||||
);
|
||||
first_parm_offset : 8;
|
||||
heapsize : 256*1024;
|
||||
stacksize : 262144;
|
||||
DllScanSupported:false;
|
||||
use_function_relative_addresses : true
|
||||
);
|
||||
|
||||
implementation
|
||||
|
||||
initialization
|
||||
@ -450,11 +514,18 @@ initialization
|
||||
set_source_info(system_powerpc_linux_info);
|
||||
{$endif linux}
|
||||
{$endif CPUPOWERPC}
|
||||
|
||||
{$ifdef CPUARM}
|
||||
{$ifdef linux}
|
||||
set_source_info(system_arm_linux_info);
|
||||
{$endif linux}
|
||||
{$endif CPUARM}
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.9 2003-07-06 17:58:22 peter
|
||||
Revision 1.10 2003-07-21 11:52:57 florian
|
||||
* very basic stuff for the arm
|
||||
|
||||
Revision 1.9 2003/07/06 17:58:22 peter
|
||||
* framepointer fixes for sparc
|
||||
* parent framepointer code more generic
|
||||
|
||||
|
@ -545,11 +545,20 @@ initialization
|
||||
RegisterExport(system_SPARC_linux,texportliblinux);
|
||||
RegisterTarget(system_SPARC_linux_info);
|
||||
{$endif SPARC}
|
||||
{$ifdef ARM}
|
||||
RegisterExternalLinker(system_arm_linux_info,TLinkerLinux);
|
||||
RegisterImport(system_arm_linux,timportliblinux);
|
||||
RegisterExport(system_arm_linux,texportliblinux);
|
||||
RegisterTarget(system_arm_linux_info);
|
||||
{$endif ARM}
|
||||
end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.8 2003-04-27 07:29:52 peter
|
||||
Revision 1.9 2003-07-21 11:52:57 florian
|
||||
* very basic stuff for the arm
|
||||
|
||||
Revision 1.8 2003/04/27 07:29:52 peter
|
||||
* aktprocdef cleanup, aktprocdef is now always nil when parsing
|
||||
a new procdef declaration
|
||||
* aktprocsym removed
|
||||
|
Loading…
Reference in New Issue
Block a user