mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 21:29:42 +02:00
* very basic stuff for the arm
This commit is contained in:
parent
d73acd12f6
commit
d2035fd6b4
@ -50,11 +50,13 @@
|
|||||||
{$define x86}
|
{$define x86}
|
||||||
{$define cpu64bit}
|
{$define cpu64bit}
|
||||||
{$define cpuextended}
|
{$define cpuextended}
|
||||||
|
{$define callparatemp}
|
||||||
{$endif x86_64}
|
{$endif x86_64}
|
||||||
|
|
||||||
{$ifdef alpha}
|
{$ifdef alpha}
|
||||||
{$define cpu64bit}
|
{$define cpu64bit}
|
||||||
{$undef cpuflags}
|
{$undef cpuflags}
|
||||||
|
{$define callparatemp}
|
||||||
{$endif alpha}
|
{$endif alpha}
|
||||||
|
|
||||||
{$ifdef sparc}
|
{$ifdef sparc}
|
||||||
@ -65,6 +67,10 @@
|
|||||||
{$define callparatemp}
|
{$define callparatemp}
|
||||||
{$endif powerpc}
|
{$endif powerpc}
|
||||||
|
|
||||||
|
{$ifdef arm}
|
||||||
|
{$define callparatemp}
|
||||||
|
{$endif arm}
|
||||||
|
|
||||||
{ FPU Emulator support }
|
{ FPU Emulator support }
|
||||||
{$ifdef m68k}
|
{$ifdef m68k}
|
||||||
{$define cpufpemu}
|
{$define cpufpemu}
|
||||||
@ -77,7 +83,10 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$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
|
* if something doesn't work with callparatemp, the define callparatemp
|
||||||
should be used because other processors with reigster calling conventions
|
should be used because other processors with reigster calling conventions
|
||||||
depend on this as well
|
depend on this as well
|
||||||
@ -140,5 +149,4 @@
|
|||||||
|
|
||||||
Revision 1.3 2002/07/04 18:56:50 florian
|
Revision 1.3 2002/07/04 18:56:50 florian
|
||||||
+ log added
|
+ log added
|
||||||
|
}
|
||||||
}
|
|
||||||
|
@ -111,8 +111,9 @@ interface
|
|||||||
system_x86_64_linux, { 26 }
|
system_x86_64_linux, { 26 }
|
||||||
system_powerpc_darwin, { 27 }
|
system_powerpc_darwin, { 27 }
|
||||||
system_i386_EMX, { 28 }
|
system_i386_EMX, { 28 }
|
||||||
system_powerpc_netbsd, { 29 }
|
system_powerpc_netbsd, { 29 }
|
||||||
system_powerpc_openbsd { 30 }
|
system_powerpc_openbsd, { 30 }
|
||||||
|
system_arm_linux { 31 }
|
||||||
);
|
);
|
||||||
|
|
||||||
tasm = (as_none
|
tasm = (as_none
|
||||||
@ -132,7 +133,6 @@ interface
|
|||||||
,as_i386_pecoffwdosx
|
,as_i386_pecoffwdosx
|
||||||
,as_m68k_mit
|
,as_m68k_mit
|
||||||
,as_powerpc_mpw
|
,as_powerpc_mpw
|
||||||
,as_x86_64_as
|
|
||||||
);
|
);
|
||||||
|
|
||||||
tar = (ar_none
|
tar = (ar_none
|
||||||
@ -347,7 +347,6 @@ implementation
|
|||||||
cutils;
|
cutils;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
Target setting
|
Target setting
|
||||||
****************************************************************************}
|
****************************************************************************}
|
||||||
@ -634,8 +633,8 @@ end;
|
|||||||
|
|
||||||
procedure InitSystems;
|
procedure InitSystems;
|
||||||
begin
|
begin
|
||||||
{ Now default target, this is dependent on the i386 or m68k define,
|
{ Now default target, this is dependent on the target cpu define,
|
||||||
when the define is the same as the current cpu then we use the source
|
when the define is the same as the source cpu then we use the source
|
||||||
os, else we pick a default }
|
os, else we pick a default }
|
||||||
{$ifdef i386}
|
{$ifdef i386}
|
||||||
{$ifdef cpu86}
|
{$ifdef cpu86}
|
||||||
@ -672,9 +671,20 @@ begin
|
|||||||
default_target(system_powerpc_linux);
|
default_target(system_powerpc_linux);
|
||||||
{$endif cpupowerpc}
|
{$endif cpupowerpc}
|
||||||
{$endif powerpc}
|
{$endif powerpc}
|
||||||
{$IFDEF sparc}
|
{$ifdef sparc}
|
||||||
default_target(system_sparc_linux);
|
{$ifdef cpusparc}
|
||||||
{$ENDIF sparc}
|
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;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -685,7 +695,10 @@ finalization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$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
|
* cpuppc -> cpupowerpc. Target compiler was always linux for ppc
|
||||||
|
|
||||||
Revision 1.64 2003/05/28 23:18:31 florian
|
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
|
Revision 1.38 2002/04/14 16:56:30 carl
|
||||||
- remove duplicate comment
|
- remove duplicate comment
|
||||||
}
|
}
|
||||||
|
@ -414,6 +414,70 @@ unit i_linux;
|
|||||||
use_function_relative_addresses : true
|
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
|
implementation
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
@ -450,11 +514,18 @@ initialization
|
|||||||
set_source_info(system_powerpc_linux_info);
|
set_source_info(system_powerpc_linux_info);
|
||||||
{$endif linux}
|
{$endif linux}
|
||||||
{$endif CPUPOWERPC}
|
{$endif CPUPOWERPC}
|
||||||
|
{$ifdef CPUARM}
|
||||||
|
{$ifdef linux}
|
||||||
|
set_source_info(system_arm_linux_info);
|
||||||
|
{$endif linux}
|
||||||
|
{$endif CPUARM}
|
||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$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
|
* framepointer fixes for sparc
|
||||||
* parent framepointer code more generic
|
* parent framepointer code more generic
|
||||||
|
|
||||||
|
@ -545,11 +545,20 @@ initialization
|
|||||||
RegisterExport(system_SPARC_linux,texportliblinux);
|
RegisterExport(system_SPARC_linux,texportliblinux);
|
||||||
RegisterTarget(system_SPARC_linux_info);
|
RegisterTarget(system_SPARC_linux_info);
|
||||||
{$endif SPARC}
|
{$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.
|
end.
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$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
|
* aktprocdef cleanup, aktprocdef is now always nil when parsing
|
||||||
a new procdef declaration
|
a new procdef declaration
|
||||||
* aktprocsym removed
|
* aktprocsym removed
|
||||||
|
Loading…
Reference in New Issue
Block a user