mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-09 10:48:30 +02:00
* removed some notes/hints
This commit is contained in:
parent
e248c0ece4
commit
9ed2ce8c12
@ -485,8 +485,7 @@ uses
|
||||
{$else}
|
||||
strings,
|
||||
{$endif}
|
||||
verbose,
|
||||
ppu;
|
||||
verbose;
|
||||
|
||||
const
|
||||
pputaimarker = 254;
|
||||
@ -1815,7 +1814,10 @@ uses
|
||||
end.
|
||||
{
|
||||
$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
|
||||
+ Scratch registers unavailable when new register allocator used
|
||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||
|
@ -194,12 +194,6 @@ var
|
||||
t[3]:= b;
|
||||
end;
|
||||
|
||||
procedure swap80bitarray(var t: t80bitarray);
|
||||
begin
|
||||
{!!!!!!!!!!!!}
|
||||
end;
|
||||
|
||||
|
||||
|
||||
const
|
||||
ait_const2str : array[ait_const_32bit..ait_const_8bit] of string[8]=
|
||||
@ -818,7 +812,10 @@ var
|
||||
end.
|
||||
{
|
||||
$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.
|
||||
* V_LineInfo is a verbosity flag to include line info
|
||||
|
||||
|
@ -195,7 +195,7 @@ Implementation
|
||||
finput,
|
||||
gdb,
|
||||
{$endif GDB}
|
||||
cpubase,cpuinfo,aasmcpu
|
||||
cpubase,aasmcpu
|
||||
;
|
||||
|
||||
var
|
||||
@ -1614,7 +1614,10 @@ Implementation
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.49 2003/01/10 21:49:00 marco
|
||||
|
@ -502,7 +502,7 @@ unit cgobj;
|
||||
|
||||
uses
|
||||
globals,globtype,options,systems,cgbase,
|
||||
verbose,defutil,tgobj,paramgr,
|
||||
verbose,defutil,paramgr,
|
||||
rgobj,cutils;
|
||||
|
||||
const
|
||||
@ -1838,7 +1838,10 @@ finalization
|
||||
end.
|
||||
{
|
||||
$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 array passing
|
||||
* fixed left to right with high parameters
|
||||
|
@ -13,12 +13,12 @@
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
{$ifndef delphi}
|
||||
{$mode objfpc}
|
||||
{$endif}
|
||||
**********************************************************************
|
||||
}
|
||||
unit charset;
|
||||
|
||||
{$i fpcdefs.inc}
|
||||
|
||||
interface
|
||||
|
||||
type
|
||||
@ -267,7 +267,10 @@ finalization
|
||||
end.
|
||||
{
|
||||
$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
|
||||
(warning : Some features do not work under Delphi)
|
||||
|
||||
|
@ -29,9 +29,6 @@ Implementation
|
||||
|
||||
Const
|
||||
EntryMemUsed : longint = 0;
|
||||
SaveExit : pointer = nil;
|
||||
|
||||
|
||||
|
||||
Procedure CheckMemory(LostMemory : longint);
|
||||
var
|
||||
@ -54,7 +51,10 @@ end.
|
||||
|
||||
{
|
||||
$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
|
||||
|
||||
}
|
||||
|
@ -68,7 +68,6 @@ implementation
|
||||
|
||||
uses
|
||||
cutils,
|
||||
globals,
|
||||
{$ifdef DELPHI}
|
||||
sysutils;
|
||||
{$else DELPHI}
|
||||
@ -462,7 +461,10 @@ end;
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.5 2002/05/16 19:46:35 carl
|
||||
|
@ -92,8 +92,8 @@ interface
|
||||
end;
|
||||
|
||||
TSearchPathList = class(TStringList)
|
||||
procedure AddPath(s:string;addfirst:boolean);
|
||||
procedure AddPath(SrcPath,s:string;addfirst:boolean);
|
||||
procedure AddPath(s:string;addfirst:boolean);overload;
|
||||
procedure AddPath(SrcPath,s:string;addfirst:boolean);overload;
|
||||
procedure AddList(list:TSearchPathList;addfirst:boolean);
|
||||
function FindFile(const f : string;var foundfile:string):boolean;
|
||||
end;
|
||||
@ -1527,7 +1527,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.83 2003/01/30 21:45:53 peter
|
||||
|
@ -242,9 +242,9 @@ implementation
|
||||
{ SSE2 instructions }
|
||||
IF_SSE2 = $00020000;
|
||||
{ the mask for processor types }
|
||||
IF_PMASK = longint($FF000000);
|
||||
{IF_PMASK = longint($FF000000);}
|
||||
{ the mask for disassembly "prefer" }
|
||||
IF_PFMASK = longint($F001FF00);
|
||||
{IF_PFMASK = longint($F001FF00);}
|
||||
IF_8086 = $00000000; { 8086 instruction }
|
||||
IF_186 = $01000000; { 186+ instruction }
|
||||
IF_286 = $02000000; { 286+ instruction }
|
||||
@ -1959,7 +1959,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$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
|
||||
+ Scratch registers 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 }
|
||||
{ it's used by the register size conversions }
|
||||
{$packenum 1}
|
||||
Toldregister = (R_NO,
|
||||
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,
|
||||
@ -255,7 +254,6 @@ uses
|
||||
|
||||
Tsuperregister=byte;
|
||||
Tsubregister=byte;
|
||||
{$packenum normal}
|
||||
|
||||
{ A type to store register locations for 64 Bit values. }
|
||||
tregister64 = packed record
|
||||
@ -764,7 +762,7 @@ implementation
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
{$ifdef unused}
|
||||
function supreg_name(r:Tsuperregister):string;
|
||||
|
||||
var s:string[4];
|
||||
@ -783,6 +781,7 @@ implementation
|
||||
supreg_name:='reg'+s;
|
||||
end;
|
||||
end;
|
||||
{$endif unused}
|
||||
|
||||
function is_calljmp(o:tasmop):boolean;
|
||||
begin
|
||||
@ -816,7 +815,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$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
|
||||
+ Scratch registers unavailable when new register allocator used
|
||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||
|
@ -86,28 +86,31 @@ unit cpupara;
|
||||
recorddef :
|
||||
begin
|
||||
if (calloption=pocall_stdcall) and (def.size<=8) then
|
||||
begin
|
||||
begin
|
||||
result:=false;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
arraydef :
|
||||
begin
|
||||
if (tarraydef(def).highrange>=tarraydef(def).lowrange) and
|
||||
(calloption in [pocall_cdecl,pocall_cppdecl]) then
|
||||
begin
|
||||
begin
|
||||
result:=false;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
result:=inherited push_addr_param(def,calloption);
|
||||
end;
|
||||
|
||||
function ti386paramanager.getintparaloc(nr : longint) : tparalocation;
|
||||
begin
|
||||
getintparaloc.loc:=LOC_REFERENCE;
|
||||
getintparaloc.reference.index.enum:=R_EBP;
|
||||
getintparaloc.reference.offset:=4*nr;
|
||||
end;
|
||||
|
||||
procedure ti386paramanager.create_param_loc_info(p : tabstractprocdef);
|
||||
@ -130,7 +133,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.7 2002/12/24 15:56:50 peter
|
||||
|
@ -58,7 +58,7 @@ implementation
|
||||
cpubase,paramgr,
|
||||
aasmbase,aasmtai,aasmcpu,
|
||||
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.
|
||||
{
|
||||
$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
|
||||
+ Scratch registers unavailable when new register allocator used
|
||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||
|
@ -60,14 +60,13 @@ interface
|
||||
implementation
|
||||
|
||||
uses
|
||||
globtype,systems,
|
||||
cutils,verbose,globals,fmodule,
|
||||
symconst,symdef,defutil,
|
||||
aasmbase,aasmtai,aasmcpu,
|
||||
cginfo,cgbase,pass_1,pass_2,
|
||||
systems,
|
||||
cutils,verbose,
|
||||
aasmtai,
|
||||
cginfo,cgbase,pass_2,
|
||||
cpubase,paramgr,
|
||||
nbas,ncon,ncal,ncnv,nld,
|
||||
cga,tgobj,ncgutil,cgobj,cg64f32,rgobj,rgcpu;
|
||||
cga,tgobj,ncgutil,cgobj,rgobj,rgcpu;
|
||||
|
||||
|
||||
{*****************************************************************************
|
||||
@ -209,9 +208,9 @@ implementation
|
||||
end;
|
||||
|
||||
procedure ti386inlinenode.second_sqr_real;
|
||||
|
||||
|
||||
var r:Tregister;
|
||||
|
||||
|
||||
begin
|
||||
load_fpu_location;
|
||||
r.enum:=R_ST0;
|
||||
@ -347,7 +346,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$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
|
||||
+ Scratch registers unavailable when new register allocator used
|
||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||
|
@ -54,7 +54,7 @@ implementation
|
||||
uses
|
||||
globtype,systems,
|
||||
cutils,verbose,globals,
|
||||
symconst,symdef,aasmbase,aasmtai,aasmcpu,defutil,
|
||||
symconst,symdef,aasmbase,aasmtai,defutil,
|
||||
cginfo,cgbase,pass_1,pass_2,
|
||||
ncon,
|
||||
cpubase,cpuinfo,
|
||||
@ -1181,7 +1181,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$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
|
||||
+ Scratch registers unavailable when new register allocator used
|
||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||
|
@ -50,13 +50,13 @@ implementation
|
||||
{$ifdef delphi}
|
||||
sysutils,
|
||||
{$endif}
|
||||
globtype,systems,
|
||||
cutils,verbose,globals,
|
||||
symconst,symtype,symdef,symsym,symtable,defutil,paramgr,
|
||||
aasmbase,aasmtai,aasmcpu,
|
||||
cginfo,cgbase,pass_2,
|
||||
pass_1,nld,ncon,nadd,
|
||||
cgobj,cga,tgobj,rgobj,ncgutil;
|
||||
systems,
|
||||
cutils,verbose,
|
||||
symdef,paramgr,
|
||||
aasmtai,
|
||||
cginfo,
|
||||
nld,ncon,nadd,
|
||||
cgobj,tgobj,rgobj;
|
||||
|
||||
{*****************************************************************************
|
||||
TI386ADDRNODE
|
||||
@ -154,7 +154,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$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
|
||||
* remove fixed self register
|
||||
* esi added as address register for i386
|
||||
|
@ -32,7 +32,7 @@ implementation
|
||||
uses
|
||||
systems,
|
||||
verbose,globals,globtype,
|
||||
aasmbase,aasmtai,aasmcpu,
|
||||
aasmbase,aasmtai,
|
||||
symconst,symtype,symdef,symsym,
|
||||
fmodule,
|
||||
nobj,
|
||||
@ -247,7 +247,10 @@ initialization
|
||||
end.
|
||||
{
|
||||
$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;
|
||||
internalerror bug fixed.
|
||||
|
||||
|
@ -44,7 +44,7 @@ implementation
|
||||
uses
|
||||
pass_1,defutil,htypechk,
|
||||
symdef,paramgr,
|
||||
aasmbase,aasmtai,aasmcpu,
|
||||
aasmbase,aasmtai,
|
||||
ncnv, ncon, pass_2,
|
||||
cginfo, cgbase, cpubase,
|
||||
tgobj, rgobj, cgobj, ncgutil;
|
||||
@ -249,7 +249,10 @@ end.
|
||||
|
||||
{
|
||||
$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
|
||||
* remove fixed self register
|
||||
* esi added as address register for i386
|
||||
|
@ -54,7 +54,7 @@ implementation
|
||||
cginfo,cgbase,pass_2,
|
||||
ncon,
|
||||
cpubase,cpuinfo,
|
||||
cga,cgx86,cgobj,tgobj,ncgutil,regvars,rgobj;
|
||||
cga,cgx86,cgobj,tgobj,ncgutil,rgobj;
|
||||
|
||||
|
||||
{*****************************************************************************
|
||||
@ -724,7 +724,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$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
|
||||
+ Scratch registers 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;
|
||||
var st : tsymtable;
|
||||
oldprocdef : tprocdef;
|
||||
savedstackoffset,ps, i : longint;
|
||||
ps, i : longint;
|
||||
oldprocinfo : tprocinfo;
|
||||
oldinlining_procedure,
|
||||
nostackframe,make_global : boolean;
|
||||
@ -1476,7 +1476,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$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 array passing
|
||||
* fixed left to right with high parameters
|
||||
|
@ -166,7 +166,6 @@ implementation
|
||||
ranges : boolean;
|
||||
hr,hr2,hr3,
|
||||
pleftreg : tregister;
|
||||
href : treference;
|
||||
opsize : tcgsize;
|
||||
setparts : array[1..8] of Tsetpart;
|
||||
i,numparts : byte;
|
||||
@ -1114,7 +1113,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$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
|
||||
+ added debug code to check if all scratch registers are released
|
||||
|
||||
|
@ -1165,37 +1165,29 @@ implementation
|
||||
CGMessage(sym_w_function_result_not_set);
|
||||
reference_reset_base(href,procinfo.framepointer,procinfo.return_offset);
|
||||
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
|
||||
orddef,
|
||||
enumdef :
|
||||
begin
|
||||
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.number:=NR_RETURN_RESULT_REG;
|
||||
cg.a_reg_alloc(list,r);
|
||||
r.enum:=R_INTREGISTER;
|
||||
r.number:=NR_RETURN_RESULT_REG;
|
||||
cg.a_reg_alloc(list,r);
|
||||
{$ifndef cpu64bit}
|
||||
if cgsize in [OS_64,OS_S64] then
|
||||
begin
|
||||
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.number:=NR_ACCUMULATORHIGH;
|
||||
cg.a_reg_alloc(list,r2);
|
||||
cg64.a_load64_ref_reg(list,href,joinreg64(r,r2));
|
||||
end
|
||||
else
|
||||
{$endif cpu64bit}
|
||||
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.number:=RS_RETURN_RESULT_REG shl 8 or cgsize2subreg(cgsize);
|
||||
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
|
||||
begin
|
||||
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.number:=NR_ACCUMULATORHIGH;
|
||||
cg.a_reg_alloc(list,r2);
|
||||
cg64.a_load64_ref_reg(list,href,joinreg64(r,r2));
|
||||
end
|
||||
else
|
||||
{$endif cpu64bit}
|
||||
r.enum:=R_INTREGISTER;
|
||||
r.number:=NR_ACCUMULATOR;
|
||||
cg.a_load_ref_reg(list,cgsize,href,r);
|
||||
begin
|
||||
hreg.enum:=R_INTREGISTER;
|
||||
hreg.number:=RS_RETURN_RESULT_REG shl 8 or cgsize2subreg(cgsize);
|
||||
cg.a_load_ref_reg(list,cgsize,href,hreg);
|
||||
end;
|
||||
end
|
||||
end;
|
||||
end;
|
||||
@ -2048,7 +2039,10 @@ function returns in a register and the caller receives it in an other one}
|
||||
end.
|
||||
{
|
||||
$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 array passing
|
||||
* fixed left to right with high parameters
|
||||
|
@ -295,7 +295,6 @@ implementation
|
||||
s : TAsmSection;
|
||||
alignedpos : longint;
|
||||
objdata : TAsmObjectData;
|
||||
hsym : tasmsymbol;
|
||||
begin
|
||||
{ calculate offsets of each objdata }
|
||||
for sec:=low(TSection) to high(TSection) do
|
||||
@ -624,7 +623,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$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
|
||||
* reorganized aasm layer
|
||||
|
||||
|
@ -706,7 +706,7 @@ const go32v2stub : array[0..2047] of byte=(
|
||||
procedure tcoffobjectdata.fixuprelocs;
|
||||
var
|
||||
r : TAsmRelocation;
|
||||
address,i,
|
||||
address,
|
||||
relocval : longint;
|
||||
sec : TSection;
|
||||
begin
|
||||
@ -804,10 +804,9 @@ const go32v2stub : array[0..2047] of byte=(
|
||||
filename : string[18];
|
||||
sec : TSection;
|
||||
namestr : string[8];
|
||||
nameidx,
|
||||
nameidx : longint;
|
||||
value,
|
||||
sectionval,
|
||||
i : longint;
|
||||
globalval : byte;
|
||||
secrec : coffsectionrec;
|
||||
p : tasmsymbol;
|
||||
@ -924,11 +923,6 @@ const go32v2stub : array[0..2047] of byte=(
|
||||
sympos,i : longint;
|
||||
hstab : coffstab;
|
||||
gotreloc : boolean;
|
||||
namestr : string[8];
|
||||
nameidx,
|
||||
value,
|
||||
sectionval : longint;
|
||||
globalval : byte;
|
||||
sec : TSection;
|
||||
header : coffheader;
|
||||
sechdr : coffsechdr;
|
||||
@ -1097,15 +1091,11 @@ const go32v2stub : array[0..2047] of byte=(
|
||||
|
||||
procedure tcoffexeoutput.write_symbols;
|
||||
var
|
||||
filename : string[18];
|
||||
sec : TSection;
|
||||
namestr : string[8];
|
||||
nameidx,
|
||||
nameidx : longint;
|
||||
value,
|
||||
sectionval,
|
||||
i : longint;
|
||||
globalval : byte;
|
||||
secrec : coffsectionrec;
|
||||
objdata : TAsmObjectData;
|
||||
p : tasmsymbol;
|
||||
s : string;
|
||||
@ -1162,8 +1152,6 @@ const go32v2stub : array[0..2047] of byte=(
|
||||
mempos,
|
||||
datapos : longint;
|
||||
sec : TSection;
|
||||
sym : tasmsymbol;
|
||||
s : TAsmSection;
|
||||
begin
|
||||
{ retrieve amount of sections }
|
||||
nsects:=0;
|
||||
@ -1206,16 +1194,11 @@ const go32v2stub : array[0..2047] of byte=(
|
||||
|
||||
function tcoffexeoutput.writedata:boolean;
|
||||
var
|
||||
datapos,
|
||||
secsymidx,
|
||||
i : longint;
|
||||
hstab : coffstab;
|
||||
gotreloc : boolean;
|
||||
sec : TSection;
|
||||
header : coffheader;
|
||||
optheader : coffoptheader;
|
||||
sechdr : coffsechdr;
|
||||
empty : array[0..15] of byte;
|
||||
hp : pdynamicblock;
|
||||
objdata : TAsmObjectData;
|
||||
hsym : tasmsymbol;
|
||||
@ -1734,7 +1717,10 @@ initialization
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.24 2002/08/12 15:08:39 carl
|
||||
|
@ -517,8 +517,7 @@ implementation
|
||||
var
|
||||
elfsym : telf32symbol;
|
||||
sec : TSection;
|
||||
locals,
|
||||
i : longint;
|
||||
locals : longint;
|
||||
sym : tasmsymbol;
|
||||
begin
|
||||
with elf32data do
|
||||
@ -852,7 +851,10 @@ initialization
|
||||
end.
|
||||
{
|
||||
$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)
|
||||
+ tprocessor enumeration moved to cpuinfo
|
||||
+ linker in target_info is now a class
|
||||
|
@ -56,7 +56,7 @@ interface
|
||||
implementation
|
||||
|
||||
uses
|
||||
cutils,globtype,globals,verbose,fmodule;
|
||||
cutils,globals,verbose;
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
@ -138,7 +138,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$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
|
||||
* reorganized aasm layer
|
||||
|
||||
|
@ -31,7 +31,7 @@ program pp;
|
||||
M68K generate a compiler for the M68000
|
||||
SPARC generate a compiler for SPARC
|
||||
POWERPC generate a compiler for the PowerPC
|
||||
VIS generate a compile for the VIS
|
||||
VIS generate a compile for the VIS
|
||||
DEBUG version with debug code is generated
|
||||
EXTDEBUG some extra debug code is executed
|
||||
SUPPORT_MMX only i386: releases the compiler switch
|
||||
@ -49,7 +49,7 @@ program pp;
|
||||
cpuflags The target processor has status flags (on by default)
|
||||
cpufpemu The target compiler will also support emitting software
|
||||
floating point operations
|
||||
cpu64bit The target is a 64-bit processor
|
||||
cpu64bit The target is a 64-bit processor
|
||||
-----------------------------------------------------------------
|
||||
|
||||
Required switches for a i386 compiler be compiled by Free Pascal Compiler:
|
||||
@ -190,7 +190,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.20 2003/02/02 19:25:54 carl
|
||||
|
@ -226,8 +226,6 @@ implementation
|
||||
code:tnode;
|
||||
{ true when no stackframe is required }
|
||||
nostackframe:boolean;
|
||||
{ offset where the stackpointer is saved, -1 when not saved }
|
||||
savedstackoffset:longint;
|
||||
{ number of bytes which have to be cleared by RET }
|
||||
parasize:longint;
|
||||
{ filepositions }
|
||||
@ -886,7 +884,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$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 array passing
|
||||
* fixed left to right with high parameters
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
****************************************************************************
|
||||
}
|
||||
unit Script;
|
||||
unit script;
|
||||
|
||||
{$i fpcdefs.inc}
|
||||
|
||||
@ -419,7 +419,10 @@ end;
|
||||
end.
|
||||
{
|
||||
$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
|
||||
|
||||
Revision 1.19 2003/01/10 21:49:00 marco
|
||||
|
@ -691,13 +691,18 @@ var
|
||||
DoneRedirectFile;
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
finalization
|
||||
{ Be sure to close the redirect files to flush all data }
|
||||
DoneRedirectFile;
|
||||
end.
|
||||
{
|
||||
$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.
|
||||
* V_LineInfo is a verbosity flag to include line info
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user