* more z80 support for the compiler

git-svn-id: branches/z80@35678 -
This commit is contained in:
florian 2017-03-28 20:21:03 +00:00
parent 33d56598e0
commit fc4a8c0daa
5 changed files with 93 additions and 1 deletions

View File

@ -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');

View File

@ -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);

View File

@ -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;

View File

@ -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.

View File

@ -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.