mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-20 14:29:21 +02:00
* removed some notes/hints
This commit is contained in:
parent
e248c0ece4
commit
9ed2ce8c12
@ -485,8 +485,7 @@ uses
|
|||||||
{$else}
|
{$else}
|
||||||
strings,
|
strings,
|
||||||
{$endif}
|
{$endif}
|
||||||
verbose,
|
verbose;
|
||||||
ppu;
|
|
||||||
|
|
||||||
const
|
const
|
||||||
pputaimarker = 254;
|
pputaimarker = 254;
|
||||||
@ -1815,7 +1814,10 @@ uses
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.22 2003-04-22 10:09:34 daniel
|
Revision 1.23 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.22 2003/04/22 10:09:34 daniel
|
||||||
+ Implemented the actual register allocator
|
+ Implemented the actual register allocator
|
||||||
+ Scratch registers unavailable when new register allocator used
|
+ Scratch registers unavailable when new register allocator used
|
||||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||||
|
@ -194,12 +194,6 @@ var
|
|||||||
t[3]:= b;
|
t[3]:= b;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure swap80bitarray(var t: t80bitarray);
|
|
||||||
begin
|
|
||||||
{!!!!!!!!!!!!}
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const
|
const
|
||||||
ait_const2str : array[ait_const_32bit..ait_const_8bit] of string[8]=
|
ait_const2str : array[ait_const_32bit..ait_const_8bit] of string[8]=
|
||||||
@ -818,7 +812,10 @@ var
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.20 2003-01-09 21:52:37 peter
|
Revision 1.21 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.20 2003/01/09 21:52:37 peter
|
||||||
* merged some verbosity options.
|
* merged some verbosity options.
|
||||||
* V_LineInfo is a verbosity flag to include line info
|
* V_LineInfo is a verbosity flag to include line info
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ Implementation
|
|||||||
finput,
|
finput,
|
||||||
gdb,
|
gdb,
|
||||||
{$endif GDB}
|
{$endif GDB}
|
||||||
cpubase,cpuinfo,aasmcpu
|
cpubase,aasmcpu
|
||||||
;
|
;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -1614,7 +1614,10 @@ Implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.50 2003-03-10 18:16:00 olle
|
Revision 1.51 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.50 2003/03/10 18:16:00 olle
|
||||||
* niceified comments
|
* niceified comments
|
||||||
|
|
||||||
Revision 1.49 2003/01/10 21:49:00 marco
|
Revision 1.49 2003/01/10 21:49:00 marco
|
||||||
|
@ -502,7 +502,7 @@ unit cgobj;
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
globals,globtype,options,systems,cgbase,
|
globals,globtype,options,systems,cgbase,
|
||||||
verbose,defutil,tgobj,paramgr,
|
verbose,defutil,paramgr,
|
||||||
rgobj,cutils;
|
rgobj,cutils;
|
||||||
|
|
||||||
const
|
const
|
||||||
@ -1838,7 +1838,10 @@ finalization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.83 2003-04-22 13:47:08 peter
|
Revision 1.84 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.83 2003/04/22 13:47:08 peter
|
||||||
* fixed C style array of const
|
* fixed C style array of const
|
||||||
* fixed C array passing
|
* fixed C array passing
|
||||||
* fixed left to right with high parameters
|
* fixed left to right with high parameters
|
||||||
|
@ -13,12 +13,12 @@
|
|||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
**********************************************************************}
|
**********************************************************************
|
||||||
{$ifndef delphi}
|
}
|
||||||
{$mode objfpc}
|
|
||||||
{$endif}
|
|
||||||
unit charset;
|
unit charset;
|
||||||
|
|
||||||
|
{$i fpcdefs.inc}
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -267,7 +267,10 @@ finalization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.3 2002-10-05 12:43:24 carl
|
Revision 1.4 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.3 2002/10/05 12:43:24 carl
|
||||||
* fixes for Delphi 6 compilation
|
* fixes for Delphi 6 compilation
|
||||||
(warning : Some features do not work under Delphi)
|
(warning : Some features do not work under Delphi)
|
||||||
|
|
||||||
|
@ -29,9 +29,6 @@ Implementation
|
|||||||
|
|
||||||
Const
|
Const
|
||||||
EntryMemUsed : longint = 0;
|
EntryMemUsed : longint = 0;
|
||||||
SaveExit : pointer = nil;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Procedure CheckMemory(LostMemory : longint);
|
Procedure CheckMemory(LostMemory : longint);
|
||||||
var
|
var
|
||||||
@ -54,7 +51,10 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.2 2002-11-15 12:23:49 peter
|
Revision 1.3 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.2 2002/11/15 12:23:49 peter
|
||||||
* new unit
|
* new unit
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,6 @@ implementation
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
cutils,
|
cutils,
|
||||||
globals,
|
|
||||||
{$ifdef DELPHI}
|
{$ifdef DELPHI}
|
||||||
sysutils;
|
sysutils;
|
||||||
{$else DELPHI}
|
{$else DELPHI}
|
||||||
@ -462,7 +461,10 @@ end;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.6 2002-05-18 13:34:06 peter
|
Revision 1.7 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.6 2002/05/18 13:34:06 peter
|
||||||
* readded missing revisions
|
* readded missing revisions
|
||||||
|
|
||||||
Revision 1.5 2002/05/16 19:46:35 carl
|
Revision 1.5 2002/05/16 19:46:35 carl
|
||||||
|
@ -92,8 +92,8 @@ interface
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
TSearchPathList = class(TStringList)
|
TSearchPathList = class(TStringList)
|
||||||
procedure AddPath(s:string;addfirst:boolean);
|
procedure AddPath(s:string;addfirst:boolean);overload;
|
||||||
procedure AddPath(SrcPath,s:string;addfirst:boolean);
|
procedure AddPath(SrcPath,s:string;addfirst:boolean);overload;
|
||||||
procedure AddList(list:TSearchPathList;addfirst:boolean);
|
procedure AddList(list:TSearchPathList;addfirst:boolean);
|
||||||
function FindFile(const f : string;var foundfile:string):boolean;
|
function FindFile(const f : string;var foundfile:string):boolean;
|
||||||
end;
|
end;
|
||||||
@ -1527,7 +1527,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.84 2003-03-23 23:21:42 hajny
|
Revision 1.85 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.84 2003/03/23 23:21:42 hajny
|
||||||
+ emx target added
|
+ emx target added
|
||||||
|
|
||||||
Revision 1.83 2003/01/30 21:45:53 peter
|
Revision 1.83 2003/01/30 21:45:53 peter
|
||||||
|
@ -242,9 +242,9 @@ implementation
|
|||||||
{ SSE2 instructions }
|
{ SSE2 instructions }
|
||||||
IF_SSE2 = $00020000;
|
IF_SSE2 = $00020000;
|
||||||
{ the mask for processor types }
|
{ the mask for processor types }
|
||||||
IF_PMASK = longint($FF000000);
|
{IF_PMASK = longint($FF000000);}
|
||||||
{ the mask for disassembly "prefer" }
|
{ the mask for disassembly "prefer" }
|
||||||
IF_PFMASK = longint($F001FF00);
|
{IF_PFMASK = longint($F001FF00);}
|
||||||
IF_8086 = $00000000; { 8086 instruction }
|
IF_8086 = $00000000; { 8086 instruction }
|
||||||
IF_186 = $01000000; { 186+ instruction }
|
IF_186 = $01000000; { 186+ instruction }
|
||||||
IF_286 = $02000000; { 286+ instruction }
|
IF_286 = $02000000; { 286+ instruction }
|
||||||
@ -1959,7 +1959,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.16 2003-04-22 10:09:35 daniel
|
Revision 1.17 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.16 2003/04/22 10:09:35 daniel
|
||||||
+ Implemented the actual register allocator
|
+ Implemented the actual register allocator
|
||||||
+ Scratch registers unavailable when new register allocator used
|
+ Scratch registers unavailable when new register allocator used
|
||||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||||
|
@ -230,7 +230,6 @@ uses
|
|||||||
}
|
}
|
||||||
{ don't change the order }
|
{ don't change the order }
|
||||||
{ it's used by the register size conversions }
|
{ it's used by the register size conversions }
|
||||||
{$packenum 1}
|
|
||||||
Toldregister = (R_NO,
|
Toldregister = (R_NO,
|
||||||
R_EAX,R_ECX,R_EDX,R_EBX,R_ESP,R_EBP,R_ESI,R_EDI,
|
R_EAX,R_ECX,R_EDX,R_EBX,R_ESP,R_EBP,R_ESI,R_EDI,
|
||||||
R_AX,R_CX,R_DX,R_BX,R_SP,R_BP,R_SI,R_DI,
|
R_AX,R_CX,R_DX,R_BX,R_SP,R_BP,R_SI,R_DI,
|
||||||
@ -255,7 +254,6 @@ uses
|
|||||||
|
|
||||||
Tsuperregister=byte;
|
Tsuperregister=byte;
|
||||||
Tsubregister=byte;
|
Tsubregister=byte;
|
||||||
{$packenum normal}
|
|
||||||
|
|
||||||
{ A type to store register locations for 64 Bit values. }
|
{ A type to store register locations for 64 Bit values. }
|
||||||
tregister64 = packed record
|
tregister64 = packed record
|
||||||
@ -764,7 +762,7 @@ implementation
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$ifdef unused}
|
||||||
function supreg_name(r:Tsuperregister):string;
|
function supreg_name(r:Tsuperregister):string;
|
||||||
|
|
||||||
var s:string[4];
|
var s:string[4];
|
||||||
@ -783,6 +781,7 @@ implementation
|
|||||||
supreg_name:='reg'+s;
|
supreg_name:='reg'+s;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
{$endif unused}
|
||||||
|
|
||||||
function is_calljmp(o:tasmop):boolean;
|
function is_calljmp(o:tasmop):boolean;
|
||||||
begin
|
begin
|
||||||
@ -816,7 +815,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.47 2003-04-22 10:09:35 daniel
|
Revision 1.48 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.47 2003/04/22 10:09:35 daniel
|
||||||
+ Implemented the actual register allocator
|
+ Implemented the actual register allocator
|
||||||
+ Scratch registers unavailable when new register allocator used
|
+ Scratch registers unavailable when new register allocator used
|
||||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||||
|
@ -108,6 +108,9 @@ unit cpupara;
|
|||||||
|
|
||||||
function ti386paramanager.getintparaloc(nr : longint) : tparalocation;
|
function ti386paramanager.getintparaloc(nr : longint) : tparalocation;
|
||||||
begin
|
begin
|
||||||
|
getintparaloc.loc:=LOC_REFERENCE;
|
||||||
|
getintparaloc.reference.index.enum:=R_EBP;
|
||||||
|
getintparaloc.reference.offset:=4*nr;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure ti386paramanager.create_param_loc_info(p : tabstractprocdef);
|
procedure ti386paramanager.create_param_loc_info(p : tabstractprocdef);
|
||||||
@ -130,7 +133,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.8 2003-01-08 18:43:57 daniel
|
Revision 1.9 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.8 2003/01/08 18:43:57 daniel
|
||||||
* Tregister changed into a record
|
* Tregister changed into a record
|
||||||
|
|
||||||
Revision 1.7 2002/12/24 15:56:50 peter
|
Revision 1.7 2002/12/24 15:56:50 peter
|
||||||
|
@ -58,7 +58,7 @@ implementation
|
|||||||
cpubase,paramgr,
|
cpubase,paramgr,
|
||||||
aasmbase,aasmtai,aasmcpu,
|
aasmbase,aasmtai,aasmcpu,
|
||||||
node,ncal,nbas,nmem,nld,ncnv,
|
node,ncal,nbas,nmem,nld,ncnv,
|
||||||
ncgutil,cga,cgobj,tgobj,regvars,rgobj,rgcpu,cg64f32,cgcpu,cpuinfo;
|
ncgutil,cga,cgobj,tgobj,rgobj,rgcpu,cgcpu,cpuinfo;
|
||||||
|
|
||||||
|
|
||||||
{*****************************************************************************
|
{*****************************************************************************
|
||||||
@ -201,7 +201,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.88 2003-04-22 10:09:35 daniel
|
Revision 1.89 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.88 2003/04/22 10:09:35 daniel
|
||||||
+ Implemented the actual register allocator
|
+ Implemented the actual register allocator
|
||||||
+ Scratch registers unavailable when new register allocator used
|
+ Scratch registers unavailable when new register allocator used
|
||||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||||
|
@ -60,14 +60,13 @@ interface
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
globtype,systems,
|
systems,
|
||||||
cutils,verbose,globals,fmodule,
|
cutils,verbose,
|
||||||
symconst,symdef,defutil,
|
aasmtai,
|
||||||
aasmbase,aasmtai,aasmcpu,
|
cginfo,cgbase,pass_2,
|
||||||
cginfo,cgbase,pass_1,pass_2,
|
|
||||||
cpubase,paramgr,
|
cpubase,paramgr,
|
||||||
nbas,ncon,ncal,ncnv,nld,
|
nbas,ncon,ncal,ncnv,nld,
|
||||||
cga,tgobj,ncgutil,cgobj,cg64f32,rgobj,rgcpu;
|
cga,tgobj,ncgutil,cgobj,rgobj,rgcpu;
|
||||||
|
|
||||||
|
|
||||||
{*****************************************************************************
|
{*****************************************************************************
|
||||||
@ -347,7 +346,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.57 2003-04-22 10:09:35 daniel
|
Revision 1.58 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.57 2003/04/22 10:09:35 daniel
|
||||||
+ Implemented the actual register allocator
|
+ Implemented the actual register allocator
|
||||||
+ Scratch registers unavailable when new register allocator used
|
+ Scratch registers unavailable when new register allocator used
|
||||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||||
|
@ -54,7 +54,7 @@ implementation
|
|||||||
uses
|
uses
|
||||||
globtype,systems,
|
globtype,systems,
|
||||||
cutils,verbose,globals,
|
cutils,verbose,globals,
|
||||||
symconst,symdef,aasmbase,aasmtai,aasmcpu,defutil,
|
symconst,symdef,aasmbase,aasmtai,defutil,
|
||||||
cginfo,cgbase,pass_1,pass_2,
|
cginfo,cgbase,pass_1,pass_2,
|
||||||
ncon,
|
ncon,
|
||||||
cpubase,cpuinfo,
|
cpubase,cpuinfo,
|
||||||
@ -1181,7 +1181,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.51 2003-04-22 10:09:35 daniel
|
Revision 1.52 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.51 2003/04/22 10:09:35 daniel
|
||||||
+ Implemented the actual register allocator
|
+ Implemented the actual register allocator
|
||||||
+ Scratch registers unavailable when new register allocator used
|
+ Scratch registers unavailable when new register allocator used
|
||||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||||
|
@ -50,13 +50,13 @@ implementation
|
|||||||
{$ifdef delphi}
|
{$ifdef delphi}
|
||||||
sysutils,
|
sysutils,
|
||||||
{$endif}
|
{$endif}
|
||||||
globtype,systems,
|
systems,
|
||||||
cutils,verbose,globals,
|
cutils,verbose,
|
||||||
symconst,symtype,symdef,symsym,symtable,defutil,paramgr,
|
symdef,paramgr,
|
||||||
aasmbase,aasmtai,aasmcpu,
|
aasmtai,
|
||||||
cginfo,cgbase,pass_2,
|
cginfo,
|
||||||
pass_1,nld,ncon,nadd,
|
nld,ncon,nadd,
|
||||||
cgobj,cga,tgobj,rgobj,ncgutil;
|
cgobj,tgobj,rgobj;
|
||||||
|
|
||||||
{*****************************************************************************
|
{*****************************************************************************
|
||||||
TI386ADDRNODE
|
TI386ADDRNODE
|
||||||
@ -154,7 +154,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.51 2003-03-28 19:16:57 peter
|
Revision 1.52 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.51 2003/03/28 19:16:57 peter
|
||||||
* generic constructor working for i386
|
* generic constructor working for i386
|
||||||
* remove fixed self register
|
* remove fixed self register
|
||||||
* esi added as address register for i386
|
* esi added as address register for i386
|
||||||
|
@ -32,7 +32,7 @@ implementation
|
|||||||
uses
|
uses
|
||||||
systems,
|
systems,
|
||||||
verbose,globals,globtype,
|
verbose,globals,globtype,
|
||||||
aasmbase,aasmtai,aasmcpu,
|
aasmbase,aasmtai,
|
||||||
symconst,symtype,symdef,symsym,
|
symconst,symtype,symdef,symsym,
|
||||||
fmodule,
|
fmodule,
|
||||||
nobj,
|
nobj,
|
||||||
@ -247,7 +247,10 @@ initialization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.17 2003-01-13 14:54:34 daniel
|
Revision 1.18 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.17 2003/01/13 14:54:34 daniel
|
||||||
* Further work to convert codegenerator register convention;
|
* Further work to convert codegenerator register convention;
|
||||||
internalerror bug fixed.
|
internalerror bug fixed.
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ implementation
|
|||||||
uses
|
uses
|
||||||
pass_1,defutil,htypechk,
|
pass_1,defutil,htypechk,
|
||||||
symdef,paramgr,
|
symdef,paramgr,
|
||||||
aasmbase,aasmtai,aasmcpu,
|
aasmbase,aasmtai,
|
||||||
ncnv, ncon, pass_2,
|
ncnv, ncon, pass_2,
|
||||||
cginfo, cgbase, cpubase,
|
cginfo, cgbase, cpubase,
|
||||||
tgobj, rgobj, cgobj, ncgutil;
|
tgobj, rgobj, cgobj, ncgutil;
|
||||||
@ -249,7 +249,10 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.29 2003-03-28 19:16:57 peter
|
Revision 1.30 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.29 2003/03/28 19:16:57 peter
|
||||||
* generic constructor working for i386
|
* generic constructor working for i386
|
||||||
* remove fixed self register
|
* remove fixed self register
|
||||||
* esi added as address register for i386
|
* esi added as address register for i386
|
||||||
|
@ -54,7 +54,7 @@ implementation
|
|||||||
cginfo,cgbase,pass_2,
|
cginfo,cgbase,pass_2,
|
||||||
ncon,
|
ncon,
|
||||||
cpubase,cpuinfo,
|
cpubase,cpuinfo,
|
||||||
cga,cgx86,cgobj,tgobj,ncgutil,regvars,rgobj;
|
cga,cgx86,cgobj,tgobj,ncgutil,rgobj;
|
||||||
|
|
||||||
|
|
||||||
{*****************************************************************************
|
{*****************************************************************************
|
||||||
@ -724,7 +724,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.52 2003-04-22 10:09:35 daniel
|
Revision 1.53 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.52 2003/04/22 10:09:35 daniel
|
||||||
+ Implemented the actual register allocator
|
+ Implemented the actual register allocator
|
||||||
+ Scratch registers unavailable when new register allocator used
|
+ Scratch registers unavailable when new register allocator used
|
||||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||||
|
@ -1299,7 +1299,7 @@ implementation
|
|||||||
procedure tcgprocinlinenode.pass_2;
|
procedure tcgprocinlinenode.pass_2;
|
||||||
var st : tsymtable;
|
var st : tsymtable;
|
||||||
oldprocdef : tprocdef;
|
oldprocdef : tprocdef;
|
||||||
savedstackoffset,ps, i : longint;
|
ps, i : longint;
|
||||||
oldprocinfo : tprocinfo;
|
oldprocinfo : tprocinfo;
|
||||||
oldinlining_procedure,
|
oldinlining_procedure,
|
||||||
nostackframe,make_global : boolean;
|
nostackframe,make_global : boolean;
|
||||||
@ -1476,7 +1476,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.49 2003-04-22 13:47:08 peter
|
Revision 1.50 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.49 2003/04/22 13:47:08 peter
|
||||||
* fixed C style array of const
|
* fixed C style array of const
|
||||||
* fixed C array passing
|
* fixed C array passing
|
||||||
* fixed left to right with high parameters
|
* fixed left to right with high parameters
|
||||||
|
@ -166,7 +166,6 @@ implementation
|
|||||||
ranges : boolean;
|
ranges : boolean;
|
||||||
hr,hr2,hr3,
|
hr,hr2,hr3,
|
||||||
pleftreg : tregister;
|
pleftreg : tregister;
|
||||||
href : treference;
|
|
||||||
opsize : tcgsize;
|
opsize : tcgsize;
|
||||||
setparts : array[1..8] of Tsetpart;
|
setparts : array[1..8] of Tsetpart;
|
||||||
i,numparts : byte;
|
i,numparts : byte;
|
||||||
@ -1114,7 +1113,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.28 2003-04-22 12:45:58 florian
|
Revision 1.29 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.28 2003/04/22 12:45:58 florian
|
||||||
* fixed generic in operator code
|
* fixed generic in operator code
|
||||||
+ added debug code to check if all scratch registers are released
|
+ added debug code to check if all scratch registers are released
|
||||||
|
|
||||||
|
@ -1165,15 +1165,14 @@ implementation
|
|||||||
CGMessage(sym_w_function_result_not_set);
|
CGMessage(sym_w_function_result_not_set);
|
||||||
reference_reset_base(href,procinfo.framepointer,procinfo.return_offset);
|
reference_reset_base(href,procinfo.framepointer,procinfo.return_offset);
|
||||||
cgsize:=def_cgsize(aktprocdef.rettype.def);
|
cgsize:=def_cgsize(aktprocdef.rettype.def);
|
||||||
|
{ Here, we return the function result. In most architectures, the value is
|
||||||
|
passed into the accumulator, but in a windowed architecure like sparc a
|
||||||
|
function returns in a register and the caller receives it in an other one }
|
||||||
case aktprocdef.rettype.def.deftype of
|
case aktprocdef.rettype.def.deftype of
|
||||||
orddef,
|
orddef,
|
||||||
enumdef :
|
enumdef :
|
||||||
begin
|
begin
|
||||||
uses_acc:=true;
|
uses_acc:=true;
|
||||||
{$WARNING accumulator was replaced by return_result_reg}
|
|
||||||
{Here, we return the function result. In most architectures, the value is
|
|
||||||
passed into the accumulator, but in a windowed architecure like sparc a
|
|
||||||
function returns in a register and the caller receives it in an other one}
|
|
||||||
r.enum:=R_INTREGISTER;
|
r.enum:=R_INTREGISTER;
|
||||||
r.number:=NR_RETURN_RESULT_REG;
|
r.number:=NR_RETURN_RESULT_REG;
|
||||||
cg.a_reg_alloc(list,r);
|
cg.a_reg_alloc(list,r);
|
||||||
@ -1181,21 +1180,14 @@ function returns in a register and the caller receives it in an other one}
|
|||||||
if cgsize in [OS_64,OS_S64] then
|
if cgsize in [OS_64,OS_S64] then
|
||||||
begin
|
begin
|
||||||
uses_acchi:=true;
|
uses_acchi:=true;
|
||||||
r.enum:=accumulatorhigh;
|
|
||||||
cg.a_reg_alloc(list,r);
|
|
||||||
r.enum:=R_INTREGISTER;
|
|
||||||
r.number:=NR_ACCUMULATOR;
|
|
||||||
r2.enum:=R_INTREGISTER;
|
r2.enum:=R_INTREGISTER;
|
||||||
r2.number:=NR_ACCUMULATORHIGH;
|
r2.number:=NR_ACCUMULATORHIGH;
|
||||||
|
cg.a_reg_alloc(list,r2);
|
||||||
cg64.a_load64_ref_reg(list,href,joinreg64(r,r2));
|
cg64.a_load64_ref_reg(list,href,joinreg64(r,r2));
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
{$endif cpu64bit}
|
{$endif cpu64bit}
|
||||||
begin
|
begin
|
||||||
{$WARNING accumulator was replaced by return_result_reg}
|
|
||||||
{Here, we return the function result. In most architectures, the value is
|
|
||||||
passed into the accumulator, but in a windowed architecure like sparc a
|
|
||||||
function returns in a register and the caller receives it in an other one}
|
|
||||||
hreg.enum:=R_INTREGISTER;
|
hreg.enum:=R_INTREGISTER;
|
||||||
hreg.number:=RS_RETURN_RESULT_REG shl 8 or cgsize2subreg(cgsize);
|
hreg.number:=RS_RETURN_RESULT_REG shl 8 or cgsize2subreg(cgsize);
|
||||||
cg.a_load_ref_reg(list,cgsize,href,hreg);
|
cg.a_load_ref_reg(list,cgsize,href,hreg);
|
||||||
@ -1225,19 +1217,18 @@ function returns in a register and the caller receives it in an other one}
|
|||||||
if cgsize in [OS_64,OS_S64] then
|
if cgsize in [OS_64,OS_S64] then
|
||||||
begin
|
begin
|
||||||
uses_acchi:=true;
|
uses_acchi:=true;
|
||||||
r.enum:=accumulatorhigh;
|
|
||||||
cg.a_reg_alloc(list,r);
|
|
||||||
r.enum:=R_INTREGISTER;
|
|
||||||
r.number:=NR_ACCUMULATOR;
|
|
||||||
r2.enum:=R_INTREGISTER;
|
r2.enum:=R_INTREGISTER;
|
||||||
r2.number:=NR_ACCUMULATORHIGH;
|
r2.number:=NR_ACCUMULATORHIGH;
|
||||||
|
cg.a_reg_alloc(list,r2);
|
||||||
cg64.a_load64_ref_reg(list,href,joinreg64(r,r2));
|
cg64.a_load64_ref_reg(list,href,joinreg64(r,r2));
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
{$endif cpu64bit}
|
{$endif cpu64bit}
|
||||||
r.enum:=R_INTREGISTER;
|
begin
|
||||||
r.number:=NR_ACCUMULATOR;
|
hreg.enum:=R_INTREGISTER;
|
||||||
cg.a_load_ref_reg(list,cgsize,href,r);
|
hreg.number:=RS_RETURN_RESULT_REG shl 8 or cgsize2subreg(cgsize);
|
||||||
|
cg.a_load_ref_reg(list,cgsize,href,hreg);
|
||||||
|
end;
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2048,7 +2039,10 @@ function returns in a register and the caller receives it in an other one}
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.86 2003-04-22 13:47:08 peter
|
Revision 1.87 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.86 2003/04/22 13:47:08 peter
|
||||||
* fixed C style array of const
|
* fixed C style array of const
|
||||||
* fixed C array passing
|
* fixed C array passing
|
||||||
* fixed left to right with high parameters
|
* fixed left to right with high parameters
|
||||||
|
@ -295,7 +295,6 @@ implementation
|
|||||||
s : TAsmSection;
|
s : TAsmSection;
|
||||||
alignedpos : longint;
|
alignedpos : longint;
|
||||||
objdata : TAsmObjectData;
|
objdata : TAsmObjectData;
|
||||||
hsym : tasmsymbol;
|
|
||||||
begin
|
begin
|
||||||
{ calculate offsets of each objdata }
|
{ calculate offsets of each objdata }
|
||||||
for sec:=low(TSection) to high(TSection) do
|
for sec:=low(TSection) to high(TSection) do
|
||||||
@ -624,7 +623,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.12 2002-07-01 18:46:24 peter
|
Revision 1.13 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.12 2002/07/01 18:46:24 peter
|
||||||
* internal linker
|
* internal linker
|
||||||
* reorganized aasm layer
|
* reorganized aasm layer
|
||||||
|
|
||||||
|
@ -706,7 +706,7 @@ const go32v2stub : array[0..2047] of byte=(
|
|||||||
procedure tcoffobjectdata.fixuprelocs;
|
procedure tcoffobjectdata.fixuprelocs;
|
||||||
var
|
var
|
||||||
r : TAsmRelocation;
|
r : TAsmRelocation;
|
||||||
address,i,
|
address,
|
||||||
relocval : longint;
|
relocval : longint;
|
||||||
sec : TSection;
|
sec : TSection;
|
||||||
begin
|
begin
|
||||||
@ -804,10 +804,9 @@ const go32v2stub : array[0..2047] of byte=(
|
|||||||
filename : string[18];
|
filename : string[18];
|
||||||
sec : TSection;
|
sec : TSection;
|
||||||
namestr : string[8];
|
namestr : string[8];
|
||||||
nameidx,
|
nameidx : longint;
|
||||||
value,
|
value,
|
||||||
sectionval,
|
sectionval,
|
||||||
i : longint;
|
|
||||||
globalval : byte;
|
globalval : byte;
|
||||||
secrec : coffsectionrec;
|
secrec : coffsectionrec;
|
||||||
p : tasmsymbol;
|
p : tasmsymbol;
|
||||||
@ -924,11 +923,6 @@ const go32v2stub : array[0..2047] of byte=(
|
|||||||
sympos,i : longint;
|
sympos,i : longint;
|
||||||
hstab : coffstab;
|
hstab : coffstab;
|
||||||
gotreloc : boolean;
|
gotreloc : boolean;
|
||||||
namestr : string[8];
|
|
||||||
nameidx,
|
|
||||||
value,
|
|
||||||
sectionval : longint;
|
|
||||||
globalval : byte;
|
|
||||||
sec : TSection;
|
sec : TSection;
|
||||||
header : coffheader;
|
header : coffheader;
|
||||||
sechdr : coffsechdr;
|
sechdr : coffsechdr;
|
||||||
@ -1097,15 +1091,11 @@ const go32v2stub : array[0..2047] of byte=(
|
|||||||
|
|
||||||
procedure tcoffexeoutput.write_symbols;
|
procedure tcoffexeoutput.write_symbols;
|
||||||
var
|
var
|
||||||
filename : string[18];
|
|
||||||
sec : TSection;
|
|
||||||
namestr : string[8];
|
namestr : string[8];
|
||||||
nameidx,
|
nameidx : longint;
|
||||||
value,
|
value,
|
||||||
sectionval,
|
sectionval,
|
||||||
i : longint;
|
|
||||||
globalval : byte;
|
globalval : byte;
|
||||||
secrec : coffsectionrec;
|
|
||||||
objdata : TAsmObjectData;
|
objdata : TAsmObjectData;
|
||||||
p : tasmsymbol;
|
p : tasmsymbol;
|
||||||
s : string;
|
s : string;
|
||||||
@ -1162,8 +1152,6 @@ const go32v2stub : array[0..2047] of byte=(
|
|||||||
mempos,
|
mempos,
|
||||||
datapos : longint;
|
datapos : longint;
|
||||||
sec : TSection;
|
sec : TSection;
|
||||||
sym : tasmsymbol;
|
|
||||||
s : TAsmSection;
|
|
||||||
begin
|
begin
|
||||||
{ retrieve amount of sections }
|
{ retrieve amount of sections }
|
||||||
nsects:=0;
|
nsects:=0;
|
||||||
@ -1206,16 +1194,11 @@ const go32v2stub : array[0..2047] of byte=(
|
|||||||
|
|
||||||
function tcoffexeoutput.writedata:boolean;
|
function tcoffexeoutput.writedata:boolean;
|
||||||
var
|
var
|
||||||
datapos,
|
|
||||||
secsymidx,
|
|
||||||
i : longint;
|
i : longint;
|
||||||
hstab : coffstab;
|
|
||||||
gotreloc : boolean;
|
|
||||||
sec : TSection;
|
sec : TSection;
|
||||||
header : coffheader;
|
header : coffheader;
|
||||||
optheader : coffoptheader;
|
optheader : coffoptheader;
|
||||||
sechdr : coffsechdr;
|
sechdr : coffsechdr;
|
||||||
empty : array[0..15] of byte;
|
|
||||||
hp : pdynamicblock;
|
hp : pdynamicblock;
|
||||||
objdata : TAsmObjectData;
|
objdata : TAsmObjectData;
|
||||||
hsym : tasmsymbol;
|
hsym : tasmsymbol;
|
||||||
@ -1734,7 +1717,10 @@ initialization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.25 2002-12-07 14:08:11 carl
|
Revision 1.26 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.25 2002/12/07 14:08:11 carl
|
||||||
* fix warning
|
* fix warning
|
||||||
|
|
||||||
Revision 1.24 2002/08/12 15:08:39 carl
|
Revision 1.24 2002/08/12 15:08:39 carl
|
||||||
|
@ -517,8 +517,7 @@ implementation
|
|||||||
var
|
var
|
||||||
elfsym : telf32symbol;
|
elfsym : telf32symbol;
|
||||||
sec : TSection;
|
sec : TSection;
|
||||||
locals,
|
locals : longint;
|
||||||
i : longint;
|
|
||||||
sym : tasmsymbol;
|
sym : tasmsymbol;
|
||||||
begin
|
begin
|
||||||
with elf32data do
|
with elf32data do
|
||||||
@ -852,7 +851,10 @@ initialization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.18 2002-08-12 15:08:39 carl
|
Revision 1.19 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.18 2002/08/12 15:08:39 carl
|
||||||
+ stab register indexes for powerpc (moved from gdb to cpubase)
|
+ stab register indexes for powerpc (moved from gdb to cpubase)
|
||||||
+ tprocessor enumeration moved to cpuinfo
|
+ tprocessor enumeration moved to cpuinfo
|
||||||
+ linker in target_info is now a class
|
+ linker in target_info is now a class
|
||||||
|
@ -56,7 +56,7 @@ interface
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
cutils,globtype,globals,verbose,fmodule;
|
cutils,globals,verbose;
|
||||||
|
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
@ -138,7 +138,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.1 2002-07-01 18:46:24 peter
|
Revision 1.2 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.1 2002/07/01 18:46:24 peter
|
||||||
* internal linker
|
* internal linker
|
||||||
* reorganized aasm layer
|
* reorganized aasm layer
|
||||||
|
|
||||||
|
@ -190,7 +190,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.21 2003-02-15 22:25:50 carl
|
Revision 1.22 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.21 2003/02/15 22:25:50 carl
|
||||||
+ give more information on some new defines
|
+ give more information on some new defines
|
||||||
|
|
||||||
Revision 1.20 2003/02/02 19:25:54 carl
|
Revision 1.20 2003/02/02 19:25:54 carl
|
||||||
|
@ -226,8 +226,6 @@ implementation
|
|||||||
code:tnode;
|
code:tnode;
|
||||||
{ true when no stackframe is required }
|
{ true when no stackframe is required }
|
||||||
nostackframe:boolean;
|
nostackframe:boolean;
|
||||||
{ offset where the stackpointer is saved, -1 when not saved }
|
|
||||||
savedstackoffset:longint;
|
|
||||||
{ number of bytes which have to be cleared by RET }
|
{ number of bytes which have to be cleared by RET }
|
||||||
parasize:longint;
|
parasize:longint;
|
||||||
{ filepositions }
|
{ filepositions }
|
||||||
@ -886,7 +884,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.100 2003-04-22 13:47:08 peter
|
Revision 1.101 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.100 2003/04/22 13:47:08 peter
|
||||||
* fixed C style array of const
|
* fixed C style array of const
|
||||||
* fixed C array passing
|
* fixed C array passing
|
||||||
* fixed left to right with high parameters
|
* fixed left to right with high parameters
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
}
|
}
|
||||||
unit Script;
|
unit script;
|
||||||
|
|
||||||
{$i fpcdefs.inc}
|
{$i fpcdefs.inc}
|
||||||
|
|
||||||
@ -419,7 +419,10 @@ end;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.20 2003-02-07 21:21:39 marco
|
Revision 1.21 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.20 2003/02/07 21:21:39 marco
|
||||||
* Some small fix
|
* Some small fix
|
||||||
|
|
||||||
Revision 1.19 2003/01/10 21:49:00 marco
|
Revision 1.19 2003/01/10 21:49:00 marco
|
||||||
|
@ -691,13 +691,18 @@ var
|
|||||||
DoneRedirectFile;
|
DoneRedirectFile;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
initialization
|
||||||
finalization
|
finalization
|
||||||
{ Be sure to close the redirect files to flush all data }
|
{ Be sure to close the redirect files to flush all data }
|
||||||
DoneRedirectFile;
|
DoneRedirectFile;
|
||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.24 2003-01-09 21:52:38 peter
|
Revision 1.25 2003-04-22 14:33:38 peter
|
||||||
|
* removed some notes/hints
|
||||||
|
|
||||||
|
Revision 1.24 2003/01/09 21:52:38 peter
|
||||||
* merged some verbosity options.
|
* merged some verbosity options.
|
||||||
* V_LineInfo is a verbosity flag to include line info
|
* V_LineInfo is a verbosity flag to include line info
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user