mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-04 12:50:21 +02:00
+ some basic stuff for mips64el
git-svn-id: trunk@45614 -
This commit is contained in:
parent
eb6f503bad
commit
9710b2cbb4
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -660,6 +660,7 @@ compiler/ppcgen/ngppcset.pas svneol=native#text/plain
|
|||||||
compiler/ppcgen/rgcpu.pas svneol=native#text/plain
|
compiler/ppcgen/rgcpu.pas svneol=native#text/plain
|
||||||
compiler/ppcjvm.lpi svneol=native#text/plain
|
compiler/ppcjvm.lpi svneol=native#text/plain
|
||||||
compiler/ppcmips.lpi svneol=native#text/plain
|
compiler/ppcmips.lpi svneol=native#text/plain
|
||||||
|
compiler/ppcmips64el.lpi svneol=native#text/plain
|
||||||
compiler/ppcmipsel.lpi svneol=native#text/plain
|
compiler/ppcmipsel.lpi svneol=native#text/plain
|
||||||
compiler/ppcppc.lpi svneol=native#text/plain
|
compiler/ppcppc.lpi svneol=native#text/plain
|
||||||
compiler/ppcppc64.lpi svneol=native#text/plain
|
compiler/ppcppc64.lpi svneol=native#text/plain
|
||||||
|
@ -242,6 +242,10 @@
|
|||||||
{$endif mips}
|
{$endif mips}
|
||||||
{$endif mipsel}
|
{$endif mipsel}
|
||||||
|
|
||||||
|
{$ifdef mips64el}
|
||||||
|
{$define mips}
|
||||||
|
{$define mips64}
|
||||||
|
{$endif mipsel}
|
||||||
|
|
||||||
{$ifdef mips}
|
{$ifdef mips}
|
||||||
{$ifndef mips64}
|
{$ifndef mips64}
|
||||||
@ -249,7 +253,9 @@
|
|||||||
{$define cpu32bitalu}
|
{$define cpu32bitalu}
|
||||||
{$define cpu32bitaddr}
|
{$define cpu32bitaddr}
|
||||||
{$else}
|
{$else}
|
||||||
{$error mips64 not yet supported}
|
{$define cpu64bit}
|
||||||
|
{$define cpu64bitalu}
|
||||||
|
{$define cpu64bitaddr}
|
||||||
{$endif}
|
{$endif}
|
||||||
{$define cpuflags} { Flags are emulated }
|
{$define cpuflags} { Flags are emulated }
|
||||||
{$define cputargethasfixedstack}
|
{$define cputargethasfixedstack}
|
||||||
|
@ -27,7 +27,11 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
globtype, parabase,
|
globtype, parabase,
|
||||||
cgbase, cgutils, cgobj, cg64f32, cpupara,
|
cgbase, cgutils, cgobj,
|
||||||
|
{$ifndef mips64}
|
||||||
|
cg64f32,
|
||||||
|
{$endif mips64}
|
||||||
|
cpupara,
|
||||||
aasmbase, aasmtai, aasmcpu, aasmdata,
|
aasmbase, aasmtai, aasmcpu, aasmdata,
|
||||||
cpubase, cpuinfo,
|
cpubase, cpuinfo,
|
||||||
node, symconst, SymType, symdef,
|
node, symconst, SymType, symdef,
|
||||||
@ -88,6 +92,7 @@ type
|
|||||||
procedure g_profilecode(list: TAsmList);override;
|
procedure g_profilecode(list: TAsmList);override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$ifndef mips64}
|
||||||
TCg64MPSel = class(tcg64f32)
|
TCg64MPSel = class(tcg64f32)
|
||||||
public
|
public
|
||||||
procedure a_load64_reg_ref(list: tasmlist; reg: tregister64; const ref: treference); override;
|
procedure a_load64_reg_ref(list: tasmlist; reg: tregister64; const ref: treference); override;
|
||||||
@ -100,6 +105,7 @@ type
|
|||||||
procedure a_op64_const_reg_reg_checkoverflow(list: tasmlist; op: TOpCG; size: tcgsize; Value: int64; regsrc, regdst: tregister64; setflags: boolean; var ovloc: tlocation); override;
|
procedure a_op64_const_reg_reg_checkoverflow(list: tasmlist; op: TOpCG; size: tcgsize; Value: int64; regsrc, regdst: tregister64; setflags: boolean; var ovloc: tlocation); override;
|
||||||
procedure a_op64_reg_reg_reg_checkoverflow(list: tasmlist; op: TOpCG; size: tcgsize; regsrc1, regsrc2, regdst: tregister64; setflags: boolean; var ovloc: tlocation); override;
|
procedure a_op64_reg_reg_reg_checkoverflow(list: tasmlist; op: TOpCG; size: tcgsize; regsrc1, regsrc2, regdst: tregister64; setflags: boolean; var ovloc: tlocation); override;
|
||||||
end;
|
end;
|
||||||
|
{$endif mips64}
|
||||||
|
|
||||||
procedure create_codegen;
|
procedure create_codegen;
|
||||||
|
|
||||||
@ -1691,6 +1697,7 @@ procedure TCGMIPS.g_adjust_self_value(list:TAsmList;procdef: tprocdef;ioffset: t
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{$ifndef mips64}
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
TCG64_MIPSel
|
TCG64_MIPSel
|
||||||
****************************************************************************}
|
****************************************************************************}
|
||||||
@ -1928,12 +1935,15 @@ begin
|
|||||||
internalerror(200306017);
|
internalerror(200306017);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
{$endif mips64}
|
||||||
|
|
||||||
|
|
||||||
procedure create_codegen;
|
procedure create_codegen;
|
||||||
begin
|
begin
|
||||||
cg:=TCGMIPS.Create;
|
cg:=TCGMIPS.Create;
|
||||||
|
{$ifndef mips64}
|
||||||
cg64:=TCg64MPSel.Create;
|
cg64:=TCg64MPSel.Create;
|
||||||
|
{$endif mips64}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
92
compiler/ppcmips64el.lpi
Normal file
92
compiler/ppcmips64el.lpi
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<Version Value="9"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<General>
|
||||||
|
<Flags>
|
||||||
|
<MainUnitHasUsesSectionForAllUnits Value="False"/>
|
||||||
|
<MainUnitHasCreateFormStatements Value="False"/>
|
||||||
|
<MainUnitHasTitleStatement Value="False"/>
|
||||||
|
<LRSInOutputDirectory Value="False"/>
|
||||||
|
</Flags>
|
||||||
|
<SessionStorage Value="InProjectDir"/>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<Title Value="ppcmips64el"/>
|
||||||
|
</General>
|
||||||
|
<BuildModes Count="1">
|
||||||
|
<Item1 Name="default" Default="True"/>
|
||||||
|
</BuildModes>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||||
|
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<local>
|
||||||
|
<FormatVersion Value="1"/>
|
||||||
|
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||||
|
</local>
|
||||||
|
</RunParams>
|
||||||
|
<RequiredPackages Count="1">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
<MinVersion Major="1" Valid="True"/>
|
||||||
|
</Item1>
|
||||||
|
</RequiredPackages>
|
||||||
|
<Units Count="4">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="pp.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="pp"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="mips\aasmcpu.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="aasmcpu"/>
|
||||||
|
</Unit1>
|
||||||
|
<Unit2>
|
||||||
|
<Filename Value="mips\aoptcpu.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="aoptcpu"/>
|
||||||
|
</Unit2>
|
||||||
|
<Unit3>
|
||||||
|
<Filename Value="aopt.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="aopt"/>
|
||||||
|
</Unit3>
|
||||||
|
</Units>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="mips64el\pp"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="mips"/>
|
||||||
|
<OtherUnitFiles Value="mips64;mips;systems"/>
|
||||||
|
<UnitOutputDirectory Value="mips64el\lazbuild"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<Parsing>
|
||||||
|
<SyntaxOptions>
|
||||||
|
<CStyleOperator Value="False"/>
|
||||||
|
<AllowLabel Value="False"/>
|
||||||
|
<CPPInline Value="False"/>
|
||||||
|
<UseAnsiStrings Value="False"/>
|
||||||
|
</SyntaxOptions>
|
||||||
|
</Parsing>
|
||||||
|
<Other>
|
||||||
|
<Verbosity>
|
||||||
|
<ShowWarn Value="False"/>
|
||||||
|
<ShowNotes Value="False"/>
|
||||||
|
<ShowHints Value="False"/>
|
||||||
|
</Verbosity>
|
||||||
|
<ConfigFile>
|
||||||
|
<StopAfterErrCount Value="50"/>
|
||||||
|
</ConfigFile>
|
||||||
|
<CustomOptions Value="-dmips64el"/>
|
||||||
|
<CompilerPath Value="$(CompPath)"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
</CONFIG>
|
@ -117,7 +117,7 @@ interface
|
|||||||
{ This table is kept OS,Cpu because it is easier to maintain (PFV) }
|
{ This table is kept OS,Cpu because it is easier to maintain (PFV) }
|
||||||
OSCpuPossible : array[TOS,TCpu] of boolean = (
|
OSCpuPossible : array[TOS,TCpu] of boolean = (
|
||||||
{ os i386 m68k ppc sparc x86_64 arm ppc64 avr armeb armel mips mipsel mips64 misp64el jvm i8086 aarch64 wasm sparc64 riscv32 riscv64 xtensa z80 }
|
{ os i386 m68k ppc sparc x86_64 arm ppc64 avr armeb armel mips mipsel mips64 misp64el jvm i8086 aarch64 wasm sparc64 riscv32 riscv64 xtensa z80 }
|
||||||
{ linux } ( true, true, true, true, true, true, true, false, true, false, true, true, false, false, false, false, true, false, true, true, true, true, false),
|
{ linux } ( true, true, true, true, true, true, true, false, true, false, true, true, false, true, false, false, true, false, true, true, true, true, false),
|
||||||
{ go32v2 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
{ go32v2 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||||
{ win32 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
{ win32 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||||
{ os2 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
{ os2 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||||
|
Loading…
Reference in New Issue
Block a user