mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-23 20:40:01 +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_CURRENCY_IS_INT64');
|
||||||
def_system_macro('FPC_COMP_IS_INT64');
|
def_system_macro('FPC_COMP_IS_INT64');
|
||||||
{$endif aarch64}
|
{$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)}
|
{$if defined(cpu8bitalu)}
|
||||||
def_system_macro('CPUINT8');
|
def_system_macro('CPUINT8');
|
||||||
|
@ -333,6 +333,13 @@ implementation
|
|||||||
sc80floattype:=cfloatdef.create(sc80real,true);
|
sc80floattype:=cfloatdef.create(sc80real,true);
|
||||||
s64currencytype:=corddef.create(scurrency,low(int64),high(int64),true);
|
s64currencytype:=corddef.create(scurrency,low(int64),high(int64),true);
|
||||||
{$endif avr}
|
{$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}
|
{$ifdef mips}
|
||||||
create_fpu_types;
|
create_fpu_types;
|
||||||
s64currencytype:=corddef.create(scurrency,low(int64),high(int64),true);
|
s64currencytype:=corddef.create(scurrency,low(int64),high(int64),true);
|
||||||
|
@ -1006,7 +1006,11 @@ begin
|
|||||||
|
|
||||||
{$ifdef wasm}
|
{$ifdef wasm}
|
||||||
default_target(system_wasm_wasm32);
|
default_target(system_wasm_wasm32);
|
||||||
{$endif}
|
{$endif wasm}
|
||||||
|
|
||||||
|
{$ifdef z80}
|
||||||
|
default_target(system_z80_embedded);
|
||||||
|
{$endif z80}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -488,6 +488,70 @@ unit i_embed;
|
|||||||
llvmdatalayout : 'TODO';
|
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
|
implementation
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
@ -526,4 +590,10 @@ initialization
|
|||||||
set_source_info(system_m68k_embedded_info);
|
set_source_info(system_m68k_embedded_info);
|
||||||
{$endif embedded}
|
{$endif embedded}
|
||||||
{$endif cpum68k}
|
{$endif cpum68k}
|
||||||
|
{$ifdef CPUZ80}
|
||||||
|
{$ifdef embedded}
|
||||||
|
set_source_info(system_z80_embedded_info);
|
||||||
|
{$endif embedded}
|
||||||
|
{$endif CPUZ80}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -1514,4 +1514,9 @@ initialization
|
|||||||
RegisterLinker(ld_embedded,TLinkerEmbedded);
|
RegisterLinker(ld_embedded,TLinkerEmbedded);
|
||||||
RegisterTarget(system_m68k_embedded_info);
|
RegisterTarget(system_m68k_embedded_info);
|
||||||
{$endif m68k}
|
{$endif m68k}
|
||||||
|
|
||||||
|
{$ifdef z80}
|
||||||
|
RegisterLinker(ld_embedded,TLinkerEmbedded);
|
||||||
|
RegisterTarget(system_z80_embedded_info);
|
||||||
|
{$endif z80}
|
||||||
end.
|
end.
|
||||||
|
Loading…
Reference in New Issue
Block a user