mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-15 14:19:28 +02:00
* more z80 support for the compiler
git-svn-id: branches/z80@35678 -
This commit is contained in:
parent
33d56598e0
commit
fc4a8c0daa
@ -3535,6 +3535,12 @@ begin
|
||||
def_system_macro('FPC_CURRENCY_IS_INT64');
|
||||
def_system_macro('FPC_COMP_IS_INT64');
|
||||
{$endif aarch64}
|
||||
{$ifdef z80}
|
||||
def_system_macro('CPUZ80');
|
||||
def_system_macro('CPU16');
|
||||
def_system_macro('FPC_CURRENCY_IS_INT64');
|
||||
def_system_macro('FPC_COMP_IS_INT64');
|
||||
{$endif z80}
|
||||
|
||||
{$if defined(cpu8bitalu)}
|
||||
def_system_macro('CPUINT8');
|
||||
|
@ -333,6 +333,13 @@ implementation
|
||||
sc80floattype:=cfloatdef.create(sc80real,true);
|
||||
s64currencytype:=corddef.create(scurrency,low(int64),high(int64),true);
|
||||
{$endif avr}
|
||||
{$ifdef z80}
|
||||
s32floattype:=cfloatdef.create(s32real,true);
|
||||
s64floattype:=cfloatdef.create(s64real,true);
|
||||
s80floattype:=cfloatdef.create(s80real,true);
|
||||
sc80floattype:=cfloatdef.create(sc80real,true);
|
||||
s64currencytype:=corddef.create(scurrency,low(int64),high(int64),true);
|
||||
{$endif z80}
|
||||
{$ifdef mips}
|
||||
create_fpu_types;
|
||||
s64currencytype:=corddef.create(scurrency,low(int64),high(int64),true);
|
||||
|
@ -1006,7 +1006,11 @@ begin
|
||||
|
||||
{$ifdef wasm}
|
||||
default_target(system_wasm_wasm32);
|
||||
{$endif}
|
||||
{$endif wasm}
|
||||
|
||||
{$ifdef z80}
|
||||
default_target(system_z80_embedded);
|
||||
{$endif z80}
|
||||
end;
|
||||
|
||||
|
||||
|
@ -488,6 +488,70 @@ unit i_embed;
|
||||
llvmdatalayout : 'TODO';
|
||||
);
|
||||
|
||||
system_z80_embedded_info : tsysteminfo =
|
||||
(
|
||||
system : system_z80_embedded;
|
||||
name : 'Embedded';
|
||||
shortname : 'embedded';
|
||||
flags : [tf_needs_symbol_size,tf_files_case_sensitive,
|
||||
tf_smartlink_sections];
|
||||
cpu : cpu_avr;
|
||||
unit_env : '';
|
||||
extradefines : '';
|
||||
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';
|
||||
importlibprefix : 'libimp';
|
||||
importlibext : '.a';
|
||||
Cprefix : '';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
assem : as_gas;
|
||||
assemextern : as_gas;
|
||||
link : ld_none;
|
||||
linkextern : ld_embedded;
|
||||
ar : ar_gnu_ar;
|
||||
res : res_none;
|
||||
dbg : dbg_dwarf2;
|
||||
script : script_unix;
|
||||
endian : endian_little;
|
||||
alignment :
|
||||
(
|
||||
procalign : 1;
|
||||
loopalign : 1;
|
||||
jumpalign : 0;
|
||||
constalignmin : 0;
|
||||
constalignmax : 1;
|
||||
varalignmin : 0;
|
||||
varalignmax : 1;
|
||||
localalignmin : 0;
|
||||
localalignmax : 1;
|
||||
recordalignmin : 0;
|
||||
recordalignmax : 1;
|
||||
maxCrecordalign : 1
|
||||
);
|
||||
first_parm_offset : 0;
|
||||
stacksize : 1024;
|
||||
stackalign : 1;
|
||||
abi : abi_default;
|
||||
llvmdatalayout : 'todo';
|
||||
);
|
||||
|
||||
implementation
|
||||
|
||||
initialization
|
||||
@ -526,4 +590,10 @@ initialization
|
||||
set_source_info(system_m68k_embedded_info);
|
||||
{$endif embedded}
|
||||
{$endif cpum68k}
|
||||
{$ifdef CPUZ80}
|
||||
{$ifdef embedded}
|
||||
set_source_info(system_z80_embedded_info);
|
||||
{$endif embedded}
|
||||
{$endif CPUZ80}
|
||||
end.
|
||||
|
||||
|
@ -1514,4 +1514,9 @@ initialization
|
||||
RegisterLinker(ld_embedded,TLinkerEmbedded);
|
||||
RegisterTarget(system_m68k_embedded_info);
|
||||
{$endif m68k}
|
||||
|
||||
{$ifdef z80}
|
||||
RegisterLinker(ld_embedded,TLinkerEmbedded);
|
||||
RegisterTarget(system_z80_embedded_info);
|
||||
{$endif z80}
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user