mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-10 05:25:58 +02:00
* Florian's culmutative nr. 1; contains:
- invalid calling conventions for a certain cpu are rejected - arm softfloat calling conventions - -Sp for cpu dependend code generation - several arm fixes - remaining code for value open array paras on heap
This commit is contained in:
parent
15eef9c65a
commit
bbf7300a0c
@ -144,7 +144,11 @@ interface
|
|||||||
|
|
||||||
type
|
type
|
||||||
{ Types of operand }
|
{ Types of operand }
|
||||||
toptype=(top_none,top_reg,top_ref,top_const,top_symbol,top_bool,top_local);
|
toptype=(top_none,top_reg,top_ref,top_const,top_symbol,top_bool,top_local,
|
||||||
|
{ ARM only }
|
||||||
|
top_regset,
|
||||||
|
{ ARM only }
|
||||||
|
top_shifterop);
|
||||||
|
|
||||||
toper=record
|
toper=record
|
||||||
ot : longint;
|
ot : longint;
|
||||||
@ -158,6 +162,10 @@ interface
|
|||||||
{ local varsym that will be inserted in pass_2 }
|
{ local varsym that will be inserted in pass_2 }
|
||||||
top_local : (localsym:pointer;localsymderef:tderef;localsymofs:longint;localindexreg:tregister;
|
top_local : (localsym:pointer;localsymderef:tderef;localsymofs:longint;localindexreg:tregister;
|
||||||
localscale:byte;localgetoffset:boolean);
|
localscale:byte;localgetoffset:boolean);
|
||||||
|
{$ifdef arm}
|
||||||
|
top_regset : (regset:^tcpuregisterset);
|
||||||
|
top_shifterop : (shifterop : pshifterop);
|
||||||
|
{$endif arm}
|
||||||
end;
|
end;
|
||||||
poper=^toper;
|
poper=^toper;
|
||||||
|
|
||||||
@ -1678,13 +1686,18 @@ implementation
|
|||||||
procedure taicpu_abstract.clearop(opidx:longint);
|
procedure taicpu_abstract.clearop(opidx:longint);
|
||||||
begin
|
begin
|
||||||
with oper[opidx]^ do
|
with oper[opidx]^ do
|
||||||
case typ of
|
begin
|
||||||
top_ref:
|
case typ of
|
||||||
dispose(ref);
|
top_ref:
|
||||||
|
dispose(ref);
|
||||||
{$ifdef ARM}
|
{$ifdef ARM}
|
||||||
top_shifterop:
|
top_shifterop:
|
||||||
dispose(shifterop);
|
dispose(shifterop);
|
||||||
|
top_regset:
|
||||||
|
dispose(regset);
|
||||||
{$endif ARM}
|
{$endif ARM}
|
||||||
|
end;
|
||||||
|
typ:=top_none;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2140,7 +2153,15 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.53 2003-10-30 19:59:00 peter
|
Revision 1.54 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.53 2003/10/30 19:59:00 peter
|
||||||
* support scalefactor for opr_local
|
* support scalefactor for opr_local
|
||||||
* support reference with opr_local set, fixes tw2631
|
* support reference with opr_local set, fixes tw2631
|
||||||
|
|
||||||
|
@ -51,7 +51,8 @@ unit agarmgas;
|
|||||||
systems,
|
systems,
|
||||||
assemble,
|
assemble,
|
||||||
aasmcpu,
|
aasmcpu,
|
||||||
itarmgas;
|
itarmgas,
|
||||||
|
cgbase;
|
||||||
|
|
||||||
const
|
const
|
||||||
as_arm_gas_info : tasminfo =
|
as_arm_gas_info : tasminfo =
|
||||||
@ -140,7 +141,7 @@ unit agarmgas;
|
|||||||
var
|
var
|
||||||
hs : string;
|
hs : string;
|
||||||
first : boolean;
|
first : boolean;
|
||||||
r : tregister;
|
r : tsuperregister;
|
||||||
begin
|
begin
|
||||||
case o.typ of
|
case o.typ of
|
||||||
top_reg:
|
top_reg:
|
||||||
@ -206,12 +207,12 @@ unit agarmgas;
|
|||||||
{ LDM and STM use references as first operand but they are written like a register }
|
{ LDM and STM use references as first operand but they are written like a register }
|
||||||
if (i=0) and (op in [A_LDM,A_STM]) then
|
if (i=0) and (op in [A_LDM,A_STM]) then
|
||||||
begin
|
begin
|
||||||
s:=s+sep+gas_regname(taicpu(hp).oper[0].ref^.index);
|
s:=s+sep+gas_regname(taicpu(hp).oper[0]^.ref^.index);
|
||||||
if taicpu(hp).oper[0].ref^.addressmode=AM_PREINDEXED then
|
if taicpu(hp).oper[0]^.ref^.addressmode=AM_PREINDEXED then
|
||||||
s:=s+'!';
|
s:=s+'!';
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
s:=s+sep+getopstr(taicpu(hp).oper[i]);
|
s:=s+sep+getopstr(taicpu(hp).oper[i]^);
|
||||||
|
|
||||||
sep:=',';
|
sep:=',';
|
||||||
end;
|
end;
|
||||||
@ -225,7 +226,15 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.12 2003-11-02 14:30:03 florian
|
Revision 1.13 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.12 2003/11/02 14:30:03 florian
|
||||||
* fixed ARM for new reg. allocation scheme
|
* fixed ARM for new reg. allocation scheme
|
||||||
|
|
||||||
Revision 1.11 2003/09/06 11:21:49 florian
|
Revision 1.11 2003/09/06 11:21:49 florian
|
||||||
|
@ -89,7 +89,7 @@ unit cgcpu;
|
|||||||
|
|
||||||
procedure g_flags2reg(list: taasmoutput; size: TCgSize; const f: TResFlags; reg: TRegister); override;
|
procedure g_flags2reg(list: taasmoutput; size: TCgSize; const f: TResFlags; reg: TRegister); override;
|
||||||
|
|
||||||
procedure g_copyvaluepara_openarray(list : taasmoutput;const ref, lenref:treference;elesize:integer);override;
|
procedure g_copyvaluepara_openarray(list : taasmoutput;const ref, lenref:treference;elesize:aword);override;
|
||||||
procedure g_stackframe_entry(list : taasmoutput;localsize : longint);override;
|
procedure g_stackframe_entry(list : taasmoutput;localsize : longint);override;
|
||||||
procedure g_return_from_proc(list : taasmoutput;parasize : aword); override;
|
procedure g_return_from_proc(list : taasmoutput;parasize : aword); override;
|
||||||
procedure g_restore_frame_pointer(list : taasmoutput);override;
|
procedure g_restore_frame_pointer(list : taasmoutput);override;
|
||||||
@ -141,7 +141,7 @@ unit cgcpu;
|
|||||||
rgfpu:=trgcpu.create(R_FPUREGISTER,R_SUBNONE,
|
rgfpu:=trgcpu.create(R_FPUREGISTER,R_SUBNONE,
|
||||||
[RS_F0,RS_F1,RS_F2,RS_F3,RS_F4,RS_F5,RS_F6,RS_F7],first_fpu_imreg,[]);
|
[RS_F0,RS_F1,RS_F2,RS_F3,RS_F4,RS_F5,RS_F6,RS_F7],first_fpu_imreg,[]);
|
||||||
rgmm:=trgcpu.create(R_MMREGISTER,R_SUBNONE,
|
rgmm:=trgcpu.create(R_MMREGISTER,R_SUBNONE,
|
||||||
[RS_S0..RS_S31],first_mm_imreg,[]);
|
[RS_S0,RS_S1,RS_R2,RS_R3,RS_R4,RS_S31],first_mm_imreg,[]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -866,7 +866,7 @@ unit cgcpu;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcgarm.g_copyvaluepara_openarray(list : taasmoutput;const ref, lenref:treference;elesize:integer);
|
procedure tcgarm.g_copyvaluepara_openarray(list : taasmoutput;const ref, lenref:treference;elesize:aword);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1282,7 +1282,15 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.21 2003-11-02 14:30:03 florian
|
Revision 1.22 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.21 2003/11/02 14:30:03 florian
|
||||||
* fixed ARM for new reg. allocation scheme
|
* fixed ARM for new reg. allocation scheme
|
||||||
|
|
||||||
Revision 1.20 2003/10/11 16:06:42 florian
|
Revision 1.20 2003/10/11 16:06:42 florian
|
||||||
|
@ -17,6 +17,9 @@ Unit CPUInfo;
|
|||||||
|
|
||||||
Interface
|
Interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
globtype;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
{ Architecture word - Native unsigned type }
|
{ Architecture word - Native unsigned type }
|
||||||
AWord = Longword;
|
AWord = Longword;
|
||||||
@ -42,12 +45,15 @@ Type
|
|||||||
{ possible supported processors for this target }
|
{ possible supported processors for this target }
|
||||||
tprocessors =
|
tprocessors =
|
||||||
(no_processor,
|
(no_processor,
|
||||||
armv4
|
armv3,
|
||||||
|
armv4,
|
||||||
|
armv5
|
||||||
);
|
);
|
||||||
|
|
||||||
tfputype =
|
tfputype =
|
||||||
(no_fpuprocessor,
|
(no_fpuprocessor,
|
||||||
fpu_soft,
|
fpu_soft,
|
||||||
|
fpu_libgcc,
|
||||||
fpu_fpa,
|
fpu_fpa,
|
||||||
fpu_fpa10,
|
fpu_fpa10,
|
||||||
fpu_fpa11,
|
fpu_fpa11,
|
||||||
@ -70,12 +76,50 @@ Const
|
|||||||
{ for linux: }
|
{ for linux: }
|
||||||
jmp_buf_size = 220; { according to sizeof(jmp_buf) on my Zaurus (FK) }
|
jmp_buf_size = 220; { according to sizeof(jmp_buf) on my Zaurus (FK) }
|
||||||
|
|
||||||
|
{ calling conventions supported by the code generator }
|
||||||
|
supported_calling_conventions = [
|
||||||
|
pocall_internproc,
|
||||||
|
pocall_compilerproc,
|
||||||
|
pocall_inline,
|
||||||
|
pocall_stdcall,
|
||||||
|
{ same as stdcall only different name mangling }
|
||||||
|
pocall_cdecl,
|
||||||
|
{ same as stdcall only different name mangling }
|
||||||
|
pocall_cppdecl,
|
||||||
|
{ same as stdcall but floating point numbers are handled like equal sized integers }
|
||||||
|
pocall_softfloat
|
||||||
|
];
|
||||||
|
|
||||||
|
processorsstr : array[tprocessors] of string[5] = ('',
|
||||||
|
'ARMV3',
|
||||||
|
'ARMV4',
|
||||||
|
'ARMV5'
|
||||||
|
);
|
||||||
|
|
||||||
|
fputypestr : array[tfputype] of string[6] = ('',
|
||||||
|
'SOFT',
|
||||||
|
'LIBGCC',
|
||||||
|
'FPA',
|
||||||
|
'FPA10',
|
||||||
|
'FPA11',
|
||||||
|
'VFP'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
Implementation
|
Implementation
|
||||||
|
|
||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.2 2003-08-25 23:20:38 florian
|
Revision 1.3 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.2 2003/08/25 23:20:38 florian
|
||||||
+ started to implement FPU support for the ARM
|
+ started to implement FPU support for the ARM
|
||||||
* fixed a lot of other things
|
* fixed a lot of other things
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ unit cpupara;
|
|||||||
end;
|
end;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getparaloc(p : tdef) : tcgloc;
|
function getparaloc(calloption : tproccalloption; p : tdef) : tcgloc;
|
||||||
begin
|
begin
|
||||||
{ Later, the LOC_REFERENCE is in most cases changed into LOC_REGISTER
|
{ Later, the LOC_REFERENCE is in most cases changed into LOC_REGISTER
|
||||||
if push_addr_param for the def is true
|
if push_addr_param for the def is true
|
||||||
@ -95,7 +95,10 @@ unit cpupara;
|
|||||||
orddef:
|
orddef:
|
||||||
getparaloc:=LOC_REGISTER;
|
getparaloc:=LOC_REGISTER;
|
||||||
floatdef:
|
floatdef:
|
||||||
getparaloc:=LOC_FPUREGISTER;
|
if calloption=pocall_softfloat then
|
||||||
|
getparaloc:=LOC_REGISTER
|
||||||
|
else
|
||||||
|
getparaloc:=LOC_FPUREGISTER;
|
||||||
enumdef:
|
enumdef:
|
||||||
getparaloc:=LOC_REGISTER;
|
getparaloc:=LOC_REGISTER;
|
||||||
pointerdef:
|
pointerdef:
|
||||||
@ -207,10 +210,6 @@ unit cpupara;
|
|||||||
nextmmreg:=RS_D0;
|
nextmmreg:=RS_D0;
|
||||||
stack_offset:=0;
|
stack_offset:=0;
|
||||||
|
|
||||||
{ frame pointer for nested procedures? }
|
|
||||||
{ inc(nextintreg); }
|
|
||||||
{ constructor? }
|
|
||||||
{ destructor? }
|
|
||||||
hp:=tparaitem(p.para.first);
|
hp:=tparaitem(p.para.first);
|
||||||
while assigned(hp) do
|
while assigned(hp) do
|
||||||
begin
|
begin
|
||||||
@ -222,7 +221,7 @@ unit cpupara;
|
|||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
paradef := hp.paratype.def;
|
paradef := hp.paratype.def;
|
||||||
loc:=getparaloc(paradef);
|
loc:=getparaloc(p.proccalloption,paradef);
|
||||||
end;
|
end;
|
||||||
{ make sure all alignment bytes are 0 as well }
|
{ make sure all alignment bytes are 0 as well }
|
||||||
fillchar(paraloc,sizeof(paraloc),0);
|
fillchar(paraloc,sizeof(paraloc),0);
|
||||||
@ -233,16 +232,17 @@ unit cpupara;
|
|||||||
{ for things like formaldef }
|
{ for things like formaldef }
|
||||||
if paraloc.size = OS_NO then
|
if paraloc.size = OS_NO then
|
||||||
paraloc.size := OS_ADDR;
|
paraloc.size := OS_ADDR;
|
||||||
is_64bit := paraloc.size in [OS_64,OS_S64];
|
is_64bit := paraloc.size in [OS_64,OS_S64,OS_F64];
|
||||||
if nextintreg<=(RS_R3-ord(is_64bit)) then
|
if nextintreg<=(RS_R3-ord(is_64bit)) then
|
||||||
begin
|
begin
|
||||||
paraloc.loc:=LOC_REGISTER;
|
paraloc.loc:=LOC_REGISTER;
|
||||||
if is_64bit then
|
{ big endian }
|
||||||
|
if is_64bit then
|
||||||
begin
|
begin
|
||||||
paraloc.registerhigh:=newreg(R_INTREGISTER,nextintreg,R_SUBWHOLE);;
|
paraloc.registerhigh:=newreg(R_INTREGISTER,nextintreg,R_SUBWHOLE);
|
||||||
inc(nextintreg);
|
inc(nextintreg);
|
||||||
end;
|
end;
|
||||||
paraloc.registerlow:=newreg(R_INTREGISTER,nextintreg,R_SUBWHOLE);;
|
paraloc.registerlow:=newreg(R_INTREGISTER,nextintreg,R_SUBWHOLE);
|
||||||
inc(nextintreg);
|
inc(nextintreg);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -336,7 +336,15 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.8 2003-11-02 14:30:03 florian
|
Revision 1.9 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.8 2003/11/02 14:30:03 florian
|
||||||
* fixed ARM for new reg. allocation scheme
|
* fixed ARM for new reg. allocation scheme
|
||||||
|
|
||||||
Revision 1.7 2003/09/11 11:55:00 florian
|
Revision 1.7 2003/09/11 11:55:00 florian
|
||||||
|
@ -307,6 +307,8 @@ interface
|
|||||||
|
|
||||||
Function SetCompileMode(const s:string; changeInit: boolean):boolean;
|
Function SetCompileMode(const s:string; changeInit: boolean):boolean;
|
||||||
function SetAktProcCall(const s:string; changeInit: boolean):boolean;
|
function SetAktProcCall(const s:string; changeInit: boolean):boolean;
|
||||||
|
function SetProcessor(const s:string; changeInit: boolean):boolean;
|
||||||
|
function SetFpuType(const s:string; changeInit: boolean):boolean;
|
||||||
|
|
||||||
procedure InitGlobals;
|
procedure InitGlobals;
|
||||||
procedure DoneGlobals;
|
procedure DoneGlobals;
|
||||||
@ -1376,7 +1378,8 @@ implementation
|
|||||||
'PASCAL',
|
'PASCAL',
|
||||||
'REGISTER',
|
'REGISTER',
|
||||||
'SAFECALL',
|
'SAFECALL',
|
||||||
'STDCALL'
|
'STDCALL',
|
||||||
|
'SOFTFLOAT'
|
||||||
);
|
);
|
||||||
var
|
var
|
||||||
t : tproccalloption;
|
t : tproccalloption;
|
||||||
@ -1394,6 +1397,39 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function SetProcessor(const s:string; changeInit: boolean):boolean;
|
||||||
|
var
|
||||||
|
t : tprocessors;
|
||||||
|
begin
|
||||||
|
SetProcessor:=false;
|
||||||
|
for t:=low(tprocessors) to high(tprocessors) do
|
||||||
|
if processorsstr[t]=s then
|
||||||
|
begin
|
||||||
|
aktspecificoptprocessor:=t;
|
||||||
|
SetProcessor:=true;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
if changeinit then
|
||||||
|
initspecificoptprocessor:=aktspecificoptprocessor;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function SetFpuType(const s:string; changeInit: boolean):boolean;
|
||||||
|
var
|
||||||
|
t : tfputype;
|
||||||
|
begin
|
||||||
|
SetFpuType:=false;
|
||||||
|
for t:=low(tfputype) to high(tfputype) do
|
||||||
|
if fputypestr[t]=s then
|
||||||
|
begin
|
||||||
|
aktfputype:=t;
|
||||||
|
SetFpuType:=true;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
if changeinit then
|
||||||
|
initfputype:=aktfputype;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ '('D1:'00000000-'D2:'0000-'D3:'0000-'D4:'0000-000000000000)' }
|
{ '('D1:'00000000-'D2:'0000-'D3:'0000-'D4:'0000-000000000000)' }
|
||||||
function string2guid(const s: string; var GUID: TGUID): boolean;
|
function string2guid(const s: string; var GUID: TGUID): boolean;
|
||||||
@ -1713,7 +1749,15 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.112 2003-10-23 17:18:56 peter
|
Revision 1.113 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.112 2003/10/23 17:18:56 peter
|
||||||
* delphi mode uses packenum 1
|
* delphi mode uses packenum 1
|
||||||
|
|
||||||
Revision 1.111 2003/10/22 15:40:44 marco
|
Revision 1.111 2003/10/22 15:40:44 marco
|
||||||
|
@ -123,23 +123,42 @@ interface
|
|||||||
|
|
||||||
{ currently parsed block type }
|
{ currently parsed block type }
|
||||||
tblock_type = (bt_none,
|
tblock_type = (bt_none,
|
||||||
bt_general,bt_type,bt_const,bt_except
|
bt_general,bt_type,bt_const,bt_except,bt_body
|
||||||
);
|
);
|
||||||
|
|
||||||
{ calling convention for tprocdef and tprocvardef }
|
{ calling convention for tprocdef and tprocvardef }
|
||||||
tproccalloption=(pocall_none,
|
tproccalloption=(pocall_none,
|
||||||
pocall_cdecl, { procedure uses C styled calling }
|
{ procedure uses C styled calling }
|
||||||
pocall_cppdecl, { C++ calling conventions }
|
pocall_cdecl,
|
||||||
pocall_compilerproc, { Procedure is used for internal compiler calls }
|
{ C++ calling conventions }
|
||||||
pocall_far16, { Far16 for OS/2 }
|
pocall_cppdecl,
|
||||||
pocall_oldfpccall, { Old style FPC default calling }
|
{ Procedure is used for internal compiler calls }
|
||||||
pocall_inline, { Procedure is an assembler macro }
|
pocall_compilerproc,
|
||||||
pocall_internproc, { Procedure has compiler magic}
|
{ Far16 for OS/2 }
|
||||||
pocall_palmossyscall, { procedure is a PalmOS system call }
|
pocall_far16,
|
||||||
pocall_pascal, { pascal standard left to right }
|
{ Old style FPC default calling }
|
||||||
pocall_register, { procedure uses register (fastcall) calling }
|
pocall_oldfpccall,
|
||||||
pocall_safecall, { safe call calling conventions }
|
{ Procedure is an assembler macro }
|
||||||
pocall_stdcall { procedure uses stdcall call }
|
pocall_inline,
|
||||||
|
{ Procedure has compiler magic}
|
||||||
|
pocall_internproc,
|
||||||
|
{ procedure is a PalmOS system call }
|
||||||
|
pocall_palmossyscall,
|
||||||
|
{ pascal standard left to right }
|
||||||
|
pocall_pascal,
|
||||||
|
{ procedure uses register (fastcall) calling }
|
||||||
|
pocall_register,
|
||||||
|
{ safe call calling conventions }
|
||||||
|
pocall_safecall,
|
||||||
|
{ procedure uses stdcall call }
|
||||||
|
pocall_stdcall,
|
||||||
|
{ Special calling convention for cpus without a floating point
|
||||||
|
unit. Floating point numbers are passed in integer registers
|
||||||
|
instead of floating point registers. Depending on the other
|
||||||
|
available calling conventions available for the cpu
|
||||||
|
this replaces either pocall_fastcall or pocall_stdcall.
|
||||||
|
}
|
||||||
|
pocall_softfloat
|
||||||
);
|
);
|
||||||
tproccalloptions = set of tproccalloption;
|
tproccalloptions = set of tproccalloption;
|
||||||
|
|
||||||
@ -157,7 +176,8 @@ interface
|
|||||||
'Pascal',
|
'Pascal',
|
||||||
'Register',
|
'Register',
|
||||||
'SafeCall',
|
'SafeCall',
|
||||||
'StdCall'
|
'StdCall',
|
||||||
|
'SoftFloat'
|
||||||
);
|
);
|
||||||
|
|
||||||
{ Default calling convention }
|
{ Default calling convention }
|
||||||
@ -210,7 +230,15 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.43 2003-09-28 13:39:58 peter
|
Revision 1.44 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.43 2003/09/28 13:39:58 peter
|
||||||
* default calling convention changed to stdcall
|
* default calling convention changed to stdcall
|
||||||
|
|
||||||
Revision 1.42 2003/09/07 22:09:35 peter
|
Revision 1.42 2003/09/07 22:09:35 peter
|
||||||
|
@ -26,6 +26,9 @@ Unit cpuinfo;
|
|||||||
|
|
||||||
Interface
|
Interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
globtype;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
{ Natural integer register type and size for the target machine }
|
{ Natural integer register type and size for the target machine }
|
||||||
AWord = longword;
|
AWord = longword;
|
||||||
@ -50,8 +53,10 @@ Type
|
|||||||
tprocessors =
|
tprocessors =
|
||||||
(no_processor,
|
(no_processor,
|
||||||
Class386,
|
Class386,
|
||||||
ClassP5,
|
ClassPentium,
|
||||||
ClassP6
|
ClassPentium2,
|
||||||
|
ClassPentium3,
|
||||||
|
ClassPentium4
|
||||||
);
|
);
|
||||||
|
|
||||||
tfputype =
|
tfputype =
|
||||||
@ -79,13 +84,50 @@ Const
|
|||||||
}
|
}
|
||||||
jmp_buf_size = 24;
|
jmp_buf_size = 24;
|
||||||
|
|
||||||
|
{ calling conventions supported by the code generator }
|
||||||
|
supported_calling_conventions = [
|
||||||
|
pocall_internproc,
|
||||||
|
pocall_compilerproc,
|
||||||
|
pocall_inline,
|
||||||
|
pocall_register,
|
||||||
|
pocall_safecall,
|
||||||
|
pocall_stdcall,
|
||||||
|
pocall_cdecl,
|
||||||
|
pocall_cppdecl,
|
||||||
|
pocall_far16,
|
||||||
|
pocall_pascal,
|
||||||
|
pocall_oldfpccall
|
||||||
|
];
|
||||||
|
|
||||||
|
processorsstr : array[tprocessors] of string[10] = ('',
|
||||||
|
'386',
|
||||||
|
'PENTIUM',
|
||||||
|
'PENTIUM2',
|
||||||
|
'PENTIUM3',
|
||||||
|
'PENTIUM4'
|
||||||
|
);
|
||||||
|
|
||||||
|
fputypestr : array[tfputype] of string[6] = ('',
|
||||||
|
'SOFT',
|
||||||
|
'X87',
|
||||||
|
'SSE',
|
||||||
|
'SSE2'
|
||||||
|
);
|
||||||
|
|
||||||
Implementation
|
Implementation
|
||||||
|
|
||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.17 2003-09-03 11:18:37 florian
|
Revision 1.18 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.17 2003/09/03 11:18:37 florian
|
||||||
* fixed arm concatcopy
|
* fixed arm concatcopy
|
||||||
+ arm support in the common compiler sources added
|
+ arm support in the common compiler sources added
|
||||||
* moved some generic cg code around
|
* moved some generic cg code around
|
||||||
|
@ -79,28 +79,15 @@ begin
|
|||||||
Begin
|
Begin
|
||||||
Case opt[j+1] Of
|
Case opt[j+1] Of
|
||||||
'1': initoptprocessor := Class386;
|
'1': initoptprocessor := Class386;
|
||||||
'2': initoptprocessor := ClassP5;
|
'2': initoptprocessor := ClassPentium;
|
||||||
'3': initoptprocessor := ClassP6
|
'3': initoptprocessor := ClassPentium2;
|
||||||
|
'4': initoptprocessor := ClassPentium4;
|
||||||
Else IllegalPara(Opt)
|
Else IllegalPara(Opt)
|
||||||
End;
|
End;
|
||||||
Inc(j);
|
Inc(j);
|
||||||
End
|
End
|
||||||
Else IllegalPara(opt)
|
Else IllegalPara(opt)
|
||||||
End;
|
End;
|
||||||
{$ifdef USECMOV}
|
|
||||||
's' :
|
|
||||||
Begin
|
|
||||||
If j < Length(Opt) Then
|
|
||||||
Begin
|
|
||||||
Case opt[j+1] Of
|
|
||||||
'3': initspecificoptprocessor:=ClassP6
|
|
||||||
Else IllegalPara(Opt)
|
|
||||||
End;
|
|
||||||
Inc(j);
|
|
||||||
End
|
|
||||||
Else IllegalPara(opt)
|
|
||||||
End
|
|
||||||
{$endif USECMOV}
|
|
||||||
else IllegalPara(opt);
|
else IllegalPara(opt);
|
||||||
End;
|
End;
|
||||||
Inc(j)
|
Inc(j)
|
||||||
@ -129,7 +116,15 @@ initialization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.10 2003-08-09 18:56:54 daniel
|
Revision 1.11 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.10 2003/08/09 18:56:54 daniel
|
||||||
* cs_regalloc renamed to cs_regvars to avoid confusion with register
|
* cs_regalloc renamed to cs_regvars to avoid confusion with register
|
||||||
allocator
|
allocator
|
||||||
* Some preventive changes to i386 spillinh code
|
* Some preventive changes to i386 spillinh code
|
||||||
|
@ -139,7 +139,7 @@ implementation
|
|||||||
else
|
else
|
||||||
if (pop_size=8) and
|
if (pop_size=8) and
|
||||||
not(cs_littlesize in aktglobalswitches) and
|
not(cs_littlesize in aktglobalswitches) and
|
||||||
(aktoptprocessor=ClassP5) then
|
(aktoptprocessor=ClassPentium) then
|
||||||
begin
|
begin
|
||||||
hreg:=cg.getintregister(exprasmlist,OS_INT);
|
hreg:=cg.getintregister(exprasmlist,OS_INT);
|
||||||
exprasmlist.concat(taicpu.op_reg(A_POP,S_L,hreg));
|
exprasmlist.concat(taicpu.op_reg(A_POP,S_L,hreg));
|
||||||
@ -164,7 +164,15 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.98 2003-10-10 17:48:14 peter
|
Revision 1.99 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.98 2003/10/10 17:48:14 peter
|
||||||
* old trgobj moved to x86/rgcpu and renamed to trgx86fpu
|
* old trgobj moved to x86/rgcpu and renamed to trgx86fpu
|
||||||
* tregisteralloctor renamed to trgobj
|
* tregisteralloctor renamed to trgobj
|
||||||
* removed rgobj from a lot of units
|
* removed rgobj from a lot of units
|
||||||
|
@ -508,10 +508,12 @@ implementation
|
|||||||
{ a jump table crashes the pipeline! }
|
{ a jump table crashes the pipeline! }
|
||||||
if aktoptprocessor=Class386 then
|
if aktoptprocessor=Class386 then
|
||||||
inc(max_linear_list,3)
|
inc(max_linear_list,3)
|
||||||
else if aktoptprocessor=ClassP5 then
|
else if aktoptprocessor=ClassPentium then
|
||||||
inc(max_linear_list,6)
|
inc(max_linear_list,6)
|
||||||
else if aktoptprocessor>=ClassP6 then
|
else if aktoptprocessor in [ClassPentium2,ClassPentium3] then
|
||||||
inc(max_linear_list,9);
|
inc(max_linear_list,9)
|
||||||
|
else if aktoptprocessor=ClassPentium4 then
|
||||||
|
inc(max_linear_list,14);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -672,7 +674,15 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.69 2003-10-10 17:48:14 peter
|
Revision 1.70 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.69 2003/10/10 17:48:14 peter
|
||||||
* old trgobj moved to x86/rgcpu and renamed to trgx86fpu
|
* old trgobj moved to x86/rgcpu and renamed to trgx86fpu
|
||||||
* tregisteralloctor renamed to trgobj
|
* tregisteralloctor renamed to trgobj
|
||||||
* removed rgobj from a lot of units
|
* removed rgobj from a lot of units
|
||||||
|
@ -1672,9 +1672,7 @@ end;
|
|||||||
|
|
||||||
Procedure PeepHoleOptPass2(AsmL: TAAsmOutput; BlockStart, BlockEnd: Tai);
|
Procedure PeepHoleOptPass2(AsmL: TAAsmOutput; BlockStart, BlockEnd: Tai);
|
||||||
|
|
||||||
{$ifdef USECMOV}
|
|
||||||
function CanBeCMOV(p : Tai) : boolean;
|
function CanBeCMOV(p : Tai) : boolean;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
CanBeCMOV:=assigned(p) and (p.typ=ait_instruction) and
|
CanBeCMOV:=assigned(p) and (p.typ=ait_instruction) and
|
||||||
(Taicpu(p).opcode=A_MOV) and
|
(Taicpu(p).opcode=A_MOV) and
|
||||||
@ -1682,7 +1680,6 @@ Procedure PeepHoleOptPass2(AsmL: TAAsmOutput; BlockStart, BlockEnd: Tai);
|
|||||||
(Taicpu(p).oper[0].typ in [top_reg,top_ref]) and
|
(Taicpu(p).oper[0].typ in [top_reg,top_ref]) and
|
||||||
(Taicpu(p).oper[1].typ in [top_reg]);
|
(Taicpu(p).oper[1].typ in [top_reg]);
|
||||||
end;
|
end;
|
||||||
{$endif USECMOV}
|
|
||||||
|
|
||||||
var
|
var
|
||||||
p,hp1,hp2: Tai;
|
p,hp1,hp2: Tai;
|
||||||
@ -1705,7 +1702,7 @@ Begin
|
|||||||
Case Taicpu(p).opcode Of
|
Case Taicpu(p).opcode Of
|
||||||
{$ifdef USECMOV}
|
{$ifdef USECMOV}
|
||||||
A_Jcc:
|
A_Jcc:
|
||||||
if (aktspecificoptprocessor=ClassP6) then
|
if (aktspecificoptprocessor>=ClassPentium2) then
|
||||||
begin
|
begin
|
||||||
{ check for
|
{ check for
|
||||||
jCC xxx
|
jCC xxx
|
||||||
@ -2058,7 +2055,15 @@ End.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.48 2003-08-09 18:56:54 daniel
|
Revision 1.49 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.48 2003/08/09 18:56:54 daniel
|
||||||
* cs_regalloc renamed to cs_regvars to avoid confusion with register
|
* cs_regalloc renamed to cs_regvars to avoid confusion with register
|
||||||
allocator
|
allocator
|
||||||
* Some preventive changes to i386 spillinh code
|
* Some preventive changes to i386 spillinh code
|
||||||
|
@ -62,12 +62,34 @@ Const
|
|||||||
{ target cpu string (used by compiler options) }
|
{ target cpu string (used by compiler options) }
|
||||||
target_cpu_string = 'm68k';
|
target_cpu_string = 'm68k';
|
||||||
|
|
||||||
|
{ calling conventions supported by the code generator }
|
||||||
|
supported_calling_conventions = [
|
||||||
|
pocall_internproc,
|
||||||
|
pocall_compilerproc,
|
||||||
|
pocall_inline,
|
||||||
|
pocall_stdcall,
|
||||||
|
{ the difference to stdcall is only the name mangling }
|
||||||
|
pocall_cdecl,
|
||||||
|
{ the difference to stdcall is only the name mangling }
|
||||||
|
pocall_cppdecl,
|
||||||
|
{ this used by the PalmOS port only }
|
||||||
|
pocall_syscall
|
||||||
|
];
|
||||||
|
|
||||||
Implementation
|
Implementation
|
||||||
|
|
||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.6 2002-12-14 15:02:03 carl
|
Revision 1.7 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.6 2002/12/14 15:02:03 carl
|
||||||
* maxoperands -> max_operands (for portability in rautils.pas)
|
* maxoperands -> max_operands (for portability in rautils.pas)
|
||||||
* fix some range-check errors with loadconst
|
* fix some range-check errors with loadconst
|
||||||
+ add ncgadd unit to m68k
|
+ add ncgadd unit to m68k
|
||||||
|
@ -909,6 +909,9 @@ parser_e_msg_only_for_classes=03193_E_Message directive is only allowed in Class
|
|||||||
% The message directive is only supported for Class types.
|
% The message directive is only supported for Class types.
|
||||||
parser_e_procedure_or_function_expected=03194_E_Procedure or Function expected
|
parser_e_procedure_or_function_expected=03194_E_Procedure or Function expected
|
||||||
% A class method can only be specified for procedures and functions.
|
% A class method can only be specified for procedures and functions.
|
||||||
|
parser_e_illegal_calling_convention=03195_E_This calling convention isn't supported by the current CPU target: "$1"
|
||||||
|
% Some calling conventions are supported only by certain CPUs. I.e. most non-i386 ports support
|
||||||
|
% only the standard ABI calling convention of the CPU.
|
||||||
% \end{description}
|
% \end{description}
|
||||||
#
|
#
|
||||||
# Type Checking
|
# Type Checking
|
||||||
|
@ -253,6 +253,7 @@ const
|
|||||||
parser_e_initialized_not_for_threadvar=03192;
|
parser_e_initialized_not_for_threadvar=03192;
|
||||||
parser_e_msg_only_for_classes=03193;
|
parser_e_msg_only_for_classes=03193;
|
||||||
parser_e_procedure_or_function_expected=03194;
|
parser_e_procedure_or_function_expected=03194;
|
||||||
|
parser_e_illegal_calling_convention=03195;
|
||||||
type_e_mismatch=04000;
|
type_e_mismatch=04000;
|
||||||
type_e_incompatible_types=04001;
|
type_e_incompatible_types=04001;
|
||||||
type_e_not_equal_types=04002;
|
type_e_not_equal_types=04002;
|
||||||
@ -630,9 +631,9 @@ const
|
|||||||
option_info=11024;
|
option_info=11024;
|
||||||
option_help_pages=11025;
|
option_help_pages=11025;
|
||||||
|
|
||||||
MsgTxtSize = 35734;
|
MsgTxtSize = 35814;
|
||||||
|
|
||||||
MsgIdxMax : array[1..20] of longint=(
|
MsgIdxMax : array[1..20] of longint=(
|
||||||
17,63,195,53,57,44,98,20,35,60,
|
17,63,196,53,57,44,98,20,35,60,
|
||||||
40,1,1,1,1,1,1,1,1,1
|
40,1,1,1,1,1,1,1,1,1
|
||||||
);
|
);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{$ifdef Delphi}
|
{$ifdef Delphi}
|
||||||
const msgtxt : array[0..000148] of string[240]=(
|
const msgtxt : array[0..000149] of string[240]=(
|
||||||
{$else Delphi}
|
{$else Delphi}
|
||||||
const msgtxt : array[0..000148,1..240] of char=(
|
const msgtxt : array[0..000149,1..240] of char=(
|
||||||
{$endif Delphi}
|
{$endif Delphi}
|
||||||
'01000_T_Compiler: $1'#000+
|
'01000_T_Compiler: $1'#000+
|
||||||
'01001_D_Compiler OS: $1'#000+
|
'01001_D_Compiler OS: $1'#000+
|
||||||
@ -285,587 +285,589 @@ const msgtxt : array[0..000148,1..240] of char=(
|
|||||||
'03192_E_Cannot initialize variables declared as threadvar'#000+
|
'03192_E_Cannot initialize variables declared as threadvar'#000+
|
||||||
'03193_E_Message directive is only allowed in Cla','sses'#000+
|
'03193_E_Message directive is only allowed in Cla','sses'#000+
|
||||||
'03194_E_Procedure or Function expected'#000+
|
'03194_E_Procedure or Function expected'#000+
|
||||||
|
'03195_E_This calling convention isn'#039't supported by the current CPU'+
|
||||||
|
' target: "$1"'#000+
|
||||||
'04000_E_Type mismatch'#000+
|
'04000_E_Type mismatch'#000+
|
||||||
'04001_E_Incompatible types: got "$1" expected "$2"'#000+
|
'04001_E_Incompatible types: got "$1" expected "$2"'#000+
|
||||||
'04002_E_Type mismatch between "$1" and "$2"'#000+
|
'04002_E_Type mismatch between "$1" and "$2"',#000+
|
||||||
'04003_E_Type identifier expected'#000+
|
'04003_E_Type identifier expected'#000+
|
||||||
'04004_E_Variable identifier expected'#000+
|
'04004_E_Variable identifier expected'#000+
|
||||||
'04005_E_I','nteger expression expected, but got "$1"'#000+
|
'04005_E_Integer expression expected, but got "$1"'#000+
|
||||||
'04006_E_Boolean expression expected, but got "$1"'#000+
|
'04006_E_Boolean expression expected, but got "$1"'#000+
|
||||||
'04007_E_Ordinal expression expected'#000+
|
'04007_E_Ordinal expression expected'#000+
|
||||||
'04008_E_pointer type expected, but got "$1"'#000+
|
'04008_E_pointer type expected, bu','t got "$1"'#000+
|
||||||
'04009_E_class type expected, but got "$1"'#000+
|
'04009_E_class type expected, but got "$1"'#000+
|
||||||
'04011_E_Can'#039't evaluate cons','tant expression'#000+
|
'04011_E_Can'#039't evaluate constant expression'#000+
|
||||||
'04012_E_Set elements are not compatible'#000+
|
'04012_E_Set elements are not compatible'#000+
|
||||||
'04013_E_Operation not implemented for sets'#000+
|
'04013_E_Operation not implemented for sets'#000+
|
||||||
'04014_W_Automatic type conversion from floating type to COMP which is '+
|
'04014_W_Automatic type conversion from floating type to COMP ','which i'+
|
||||||
'an integer type'#000+
|
's an integer type'#000+
|
||||||
'04015_H_use DIV instead to get an integer result'#000+
|
'04015_H_use DIV instead to get an integer result'#000+
|
||||||
'04016_','E_string types doesn'#039't match, because of $V+ mode'#000+
|
'04016_E_string types doesn'#039't match, because of $V+ mode'#000+
|
||||||
'04017_E_succ or pred on enums with assignments not possible'#000+
|
'04017_E_succ or pred on enums with assignments not possible'#000+
|
||||||
'04018_E_Can'#039't read or write variables of this type'#000+
|
'04018_E_Can'#039't read or write variables of this type',#000+
|
||||||
'04019_E_Can'#039't use readln or writeln on typed file'#000+
|
'04019_E_Can'#039't use readln or writeln on typed file'#000+
|
||||||
'04020_E_Can'#039't use read or wri','te on untyped file.'#000+
|
'04020_E_Can'#039't use read or write on untyped file.'#000+
|
||||||
'04021_E_Type conflict between set elements'#000+
|
'04021_E_Type conflict between set elements'#000+
|
||||||
'04022_W_lo/hi(dword/qword) returns the upper/lower word/dword'#000+
|
'04022_W_lo/hi(dword/qword) returns the upper/lower word/dword'#000+
|
||||||
'04023_E_Integer or real expression expected'#000+
|
'04023_E_Integer or real expression ','expected'#000+
|
||||||
'04024_E_Wrong type "$1" in array constructor'#000+
|
'04024_E_Wrong type "$1" in array constructor'#000+
|
||||||
'04025_E_Incompatible type ','for arg no. $1: Got "$2", expected "$3"'#000+
|
'04025_E_Incompatible type for arg no. $1: Got "$2", expected "$3"'#000+
|
||||||
'04026_E_Method (variable) and Procedure (variable) are not compatible'#000+
|
'04026_E_Method (variable) and Procedure (variable) are not compatible'#000+
|
||||||
'04027_E_Illegal constant passed to internal math function'#000+
|
'04027_E_Illegal constant passed to internal math f','unction'#000+
|
||||||
'04028_E_Can'#039't get the address of constants'#000+
|
'04028_E_Can'#039't get the address of constants'#000+
|
||||||
'04029_E_Argument can'#039't be ass','igned to'#000+
|
'04029_E_Argument can'#039't be assigned to'#000+
|
||||||
'04030_E_Can'#039't assign local procedure/function to procedure variabl'+
|
'04030_E_Can'#039't assign local procedure/function to procedure variabl'+
|
||||||
'e'#000+
|
'e'#000+
|
||||||
'04031_E_Can'#039't assign values to an address'#000+
|
'04031_E_Can'#039't assign values to an address'#000+
|
||||||
'04032_E_Can'#039't assign values to const variable'#000+
|
'04032_E_Can'#039't assign values to const vari','able'#000+
|
||||||
'04033_E_Array type required'#000+
|
'04033_E_Array type required'#000+
|
||||||
'04034_E_interface type expected, but got "$1"'#000+
|
'04034_E_interface type expected, but got "$1"'#000+
|
||||||
'0','4035_W_Mixing signed expressions and longwords gives a 64bit result'+
|
'04035_W_Mixing signed expressions and longwords gives a 64bit result'#000+
|
||||||
#000+
|
|
||||||
'04036_W_Mixing signed expressions and cardinals here may cause a range'+
|
'04036_W_Mixing signed expressions and cardinals here may cause a range'+
|
||||||
' check error'#000+
|
' check error'#000+
|
||||||
'04037_E_Typecast has different size ($1 -> $2) in assignment'#000+
|
'04037_E_T','ypecast has different size ($1 -> $2) in assignment'#000+
|
||||||
'04038_E_enums with assignmen','ts can'#039't be used as array index'#000+
|
'04038_E_enums with assignments can'#039't be used as array index'#000+
|
||||||
'04039_E_Class or Object types "$1" and "$2" are not related'#000+
|
'04039_E_Class or Object types "$1" and "$2" are not related'#000+
|
||||||
'04040_W_Class types "$1" and "$2" are not related'#000+
|
'04040_W_Class types "$1" and "$2" are not related'#000+
|
||||||
'04041_E_Class or interface type expected, but got "$1"'#000+
|
'04041_E_Class or i','nterface type expected, but got "$1"'#000+
|
||||||
'04042_E_Type "$1" is not completely defined',#000+
|
'04042_E_Type "$1" is not completely defined'#000+
|
||||||
'04043_W_String literal has more characters than short string length'#000+
|
'04043_W_String literal has more characters than short string length'#000+
|
||||||
'04044_W_Comparison is always false due to range of values'#000+
|
'04044_W_Comparison is always false due to range of values'#000+
|
||||||
'04045_W_Comparison is always true due to range of values'#000+
|
'04045_W_Comparison is always true',' due to range of values'#000+
|
||||||
'04046_W_Constructing a class "$1" with abstract methods'#000,
|
'04046_W_Constructing a class "$1" with abstract methods'#000+
|
||||||
'04047_H_The left operand of the IN operator should be byte sized'#000+
|
'04047_H_The left operand of the IN operator should be byte sized'#000+
|
||||||
'04048_W_Type size mismatch, possible loss of data / range check error'#000+
|
'04048_W_Type size mismatch, possible loss of data / range check error'#000+
|
||||||
'04049_H_Type size mismatch, possible loss of data / range check error'#000+
|
'04049_H_Type size mismatc','h, possible loss of data / range check erro'+
|
||||||
'04050_E_The address of an abstract ','method can'#039't be taken'#000+
|
'r'#000+
|
||||||
|
'04050_E_The address of an abstract method can'#039't be taken'#000+
|
||||||
'04051_E_The operator is not applicable for the operand type'#000+
|
'04051_E_The operator is not applicable for the operand type'#000+
|
||||||
'04052_E_Constant Expression expected'#000+
|
'04052_E_Constant Expression expected'#000+
|
||||||
'05000_E_Identifier not found "$1"'#000+
|
'05000_E_Identifier not found "$1"'#000+
|
||||||
'05001_F_Internal Error in SymTableStack()'#000+
|
'05001_F','_Internal Error in SymTableStack()'#000+
|
||||||
'05002_E_Duplicate identifier "$1"'#000+
|
'05002_E_Duplicate identifier "$1"'#000+
|
||||||
'05003_H_Ide','ntifier already defined in $1 at line $2'#000+
|
'05003_H_Identifier already defined in $1 at line $2'#000+
|
||||||
'05004_E_Unknown identifier "$1"'#000+
|
'05004_E_Unknown identifier "$1"'#000+
|
||||||
'05005_E_Forward declaration not solved "$1"'#000+
|
'05005_E_Forward declaration not solved "$1"'#000+
|
||||||
'05007_E_Error in type definition'#000+
|
'05007_E_Error in type definition'#000+
|
||||||
'05009_E_Forward type not resolved "$1"'#000+
|
'05009_E_Fo','rward type not resolved "$1"'#000+
|
||||||
'05010_E_Only static variables can be used in static',' methods or outsi'+
|
'05010_E_Only static variables can be used in static methods or outside'+
|
||||||
'de methods'#000+
|
' methods'#000+
|
||||||
'05012_F_record or class type expected'#000+
|
'05012_F_record or class type expected'#000+
|
||||||
'05013_E_Instances of classes or objects with an abstract method are no'+
|
'05013_E_Instances of classes or objects with an abstract method are no'+
|
||||||
't allowed'#000+
|
't allowed'#000+
|
||||||
'05014_W_Label not defined "$1"'#000+
|
'05014_W_Label ','not defined "$1"'#000+
|
||||||
'05015_E_Label used but not defined "$1"'#000+
|
'05015_E_Label used but not defined "$1"'#000+
|
||||||
'05016_E_Illegal label d','eclaration'#000+
|
'05016_E_Illegal label declaration'#000+
|
||||||
'05017_E_GOTO and LABEL are not supported (use switch -Sg)'#000+
|
'05017_E_GOTO and LABEL are not supported (use switch -Sg)'#000+
|
||||||
'05018_E_Label not found'#000+
|
'05018_E_Label not found'#000+
|
||||||
'05019_E_identifier isn'#039't a label'#000+
|
'05019_E_identifier isn'#039't a label'#000+
|
||||||
'05020_E_label already defined'#000+
|
'05020_E_label already defined'#000+
|
||||||
'05021_E_illegal type declaration of set elements'#000+
|
'0502','1_E_illegal type declaration of set elements'#000+
|
||||||
'05022_E_Forward class definition no','t resolved "$1"'#000+
|
'05022_E_Forward class definition not resolved "$1"'#000+
|
||||||
'05023_H_Unit "$1" not used in $2'#000+
|
'05023_H_Unit "$1" not used in $2'#000+
|
||||||
'05024_H_Parameter "$1" not used'#000+
|
'05024_H_Parameter "$1" not used'#000+
|
||||||
'05025_N_Local variable "$1" not used'#000+
|
'05025_N_Local variable "$1" not used'#000+
|
||||||
'05026_H_Value parameter "$1" is assigned but never used'#000+
|
'05026_H_Value parameter "$1" is assigned b','ut never used'#000+
|
||||||
'05027_N_Local variable "$1" is assigned but never used'#000+
|
'05027_N_Local variable "$1" is assigned but never used'#000+
|
||||||
'05028_H_Loc','al $1 "$2" is not used'#000+
|
'05028_H_Local $1 "$2" is not used'#000+
|
||||||
'05029_N_Private field "$1.$2" is never used'#000+
|
'05029_N_Private field "$1.$2" is never used'#000+
|
||||||
'05030_N_Private field "$1.$2" is assigned but never used'#000+
|
'05030_N_Private field "$1.$2" is assigned but never used'#000+
|
||||||
'05031_N_Private method "$1.$2" never used'#000+
|
'05031_N_Private method "$1.$2" never',' used'#000+
|
||||||
'05032_E_Set type expected'#000+
|
'05032_E_Set type expected'#000+
|
||||||
'05033_W_Function result does not seem to be set'#000,
|
'05033_W_Function result does not seem to be set'#000+
|
||||||
'05034_W_Type "$1" is not aligned correctly in current record for C'#000+
|
'05034_W_Type "$1" is not aligned correctly in current record for C'#000+
|
||||||
'05035_E_Unknown record field identifier "$1"'#000+
|
'05035_E_Unknown record field identifier "$1"'#000+
|
||||||
'05036_W_Local variable "$1" does not seem to be initialized'#000+
|
'05036_W_Local variable "$1" does not seem to be ','initialized'#000+
|
||||||
'05037_W_Variable "$1" does not seem to be initialized'#000+
|
'05037_W_Variable "$1" does not seem to be initialized'#000+
|
||||||
'05038_E_identi','fier idents no member "$1"'#000+
|
'05038_E_identifier idents no member "$1"'#000+
|
||||||
'05039_H_Found declaration: $1'#000+
|
'05039_H_Found declaration: $1'#000+
|
||||||
'05040_E_Data element too large'#000+
|
'05040_E_Data element too large'#000+
|
||||||
'05042_E_No matching implementation for interface method "$1" found'#000+
|
'05042_E_No matching implementation for interface method "$1" found'#000+
|
||||||
'05043_W_Symbol "$1" is deprecated'#000+
|
'05043','_W_Symbol "$1" is deprecated'#000+
|
||||||
'05044_W_Symbol "$1" is not portable'#000+
|
'05044_W_Symbol "$1" is not portable'#000+
|
||||||
'05055_W_Symbol ','"$1" is not implemented'#000+
|
'05055_W_Symbol "$1" is not implemented'#000+
|
||||||
'05056_E_Can'#039't create unique type from this type'#000+
|
'05056_E_Can'#039't create unique type from this type'#000+
|
||||||
'06000_E_BREAK not allowed'#000+
|
'06000_E_BREAK not allowed'#000+
|
||||||
'06001_E_CONTINUE not allowed'#000+
|
'06001_E_CONTINUE not allowed'#000+
|
||||||
'06002_E_Expression too complicated - FPU stack overflow'#000+
|
'06002_E_Expression too complicate','d - FPU stack overflow'#000+
|
||||||
'06003_E_Illegal expression'#000+
|
'06003_E_Illegal expression'#000+
|
||||||
'06004_E_Invalid integer expres','sion'#000+
|
'06004_E_Invalid integer expression'#000+
|
||||||
'06005_E_Illegal qualifier'#000+
|
'06005_E_Illegal qualifier'#000+
|
||||||
'06006_E_High range limit < low range limit'#000+
|
'06006_E_High range limit < low range limit'#000+
|
||||||
'06007_E_Illegal counter variable'#000+
|
'06007_E_Illegal counter variable'#000+
|
||||||
'06008_E_Can'#039't determine which overloaded function to call'#000+
|
'06008_E_Can'#039't determine which overloaded function to ','call'#000+
|
||||||
'06009_E_Parameter list size exceeds 65535 bytes'#000+
|
'06009_E_Parameter list size exceeds 65535 bytes'#000+
|
||||||
'06010_E_Illegal type conver','sion'#000+
|
'06010_E_Illegal type conversion'#000+
|
||||||
'06011_H_Conversion between ordinals and pointers are not portable'#000+
|
'06011_H_Conversion between ordinals and pointers are not portable'#000+
|
||||||
'06012_E_File types must be var parameters'#000+
|
'06012_E_File types must be var parameters'#000+
|
||||||
'06013_E_The use of a far pointer isn'#039't allowed there'#000+
|
'06013_E_The use of a far pointer isn'#039't allowed ','there'#000+
|
||||||
'06014_E_illegal call by reference parameters'#000+
|
'06014_E_illegal call by reference parameters'#000+
|
||||||
'06015_E_EXPORT declared funct','ions can'#039't be called'#000+
|
'06015_E_EXPORT declared functions can'#039't be called'#000+
|
||||||
'06016_W_Possible illegal call of constructor or destructor'#000+
|
'06016_W_Possible illegal call of constructor or destructor'#000+
|
||||||
'06017_N_Inefficient code'#000+
|
'06017_N_Inefficient code'#000+
|
||||||
'06018_W_unreachable code'#000+
|
'06018_W_unreachable code'#000+
|
||||||
'06020_E_Abstract methods can'#039't be called directly'#000+
|
'06020_E_Abstract methods can'#039't',' be called directly'#000+
|
||||||
'06027_DL_Register $1 weight $2 $3'#000+
|
'06027_DL_Register $1 weight $2 $3'#000+
|
||||||
'06029_DL_Stack frame is om','itted'#000+
|
'06029_DL_Stack frame is omitted'#000+
|
||||||
'06031_E_Object or class methods can'#039't be inline.'#000+
|
'06031_E_Object or class methods can'#039't be inline.'#000+
|
||||||
'06032_E_Procvar calls cannot be inline.'#000+
|
'06032_E_Procvar calls cannot be inline.'#000+
|
||||||
'06033_E_No code for inline procedure stored'#000+
|
'06033_E_No code for inline procedure stored'#000+
|
||||||
'06035_E_Element zero of an ansi/wide- or longstring can'#039't be acces'+
|
'06035_E_Element zero ','of an ansi/wide- or longstring can'#039't be acc'+
|
||||||
'sed, use (set)length instead'#000+
|
'essed, use (set)length instead'#000+
|
||||||
'06037_','E_Constructors or destructors can not be called inside a '#039'w'+
|
'06037_E_Constructors or destructors can not be called inside a '#039'wi'+
|
||||||
'ith'#039' clause'#000+
|
'th'#039' clause'#000+
|
||||||
'06038_E_Cannot call message handler methods directly'#000+
|
'06038_E_Cannot call message handler methods directly'#000+
|
||||||
'06039_E_Jump in or outside of an exception block'#000+
|
'06039_E_Jump in or outside of an exc','eption block'#000+
|
||||||
'06040_E_Control flow statements aren'#039't allowed in a finally block'#000+
|
'06040_E_Control flow statements aren'#039't allowed in a finally block'#000+
|
||||||
'0','6041_W_Parameters size exceeds limit for certain cpu'#039's'#000+
|
'06041_W_Parameters size exceeds limit for certain cpu'#039's'#000+
|
||||||
'06042_W_Local variable size exceed limit for certain cpu'#039's'#000+
|
'06042_W_Local variable size exceed limit for certain cpu'#039's'#000+
|
||||||
'06043_E_Local variables size exceeds supported limit'#000+
|
'06043_E_Local variables size exceeds supported',' limit'#000+
|
||||||
'07000_DL_Starting $1 styled assembler parsing'#000+
|
'07000_DL_Starting $1 styled assembler parsing'#000+
|
||||||
'07001_DL_Finished $1 styled',' assembler parsing'#000+
|
'07001_DL_Finished $1 styled assembler parsing'#000+
|
||||||
'07002_E_Non-label pattern contains @'#000+
|
'07002_E_Non-label pattern contains @'#000+
|
||||||
'07004_E_Error building record offset'#000+
|
'07004_E_Error building record offset'#000+
|
||||||
'07005_E_OFFSET used without identifier'#000+
|
'07005_E_OFFSET used without identifier'#000+
|
||||||
'07006_E_TYPE used without identifier'#000+
|
'07006_E_TYPE used without id','entifier'#000+
|
||||||
'07007_E_Cannot use local variable or parameters here'#000+
|
'07007_E_Cannot use local variable or parameters here'#000+
|
||||||
'07008_E_need to us','e OFFSET here'#000+
|
'07008_E_need to use OFFSET here'#000+
|
||||||
'07009_E_need to use $ here'#000+
|
'07009_E_need to use $ here'#000+
|
||||||
'07010_E_Cannot use multiple relocatable symbols'#000+
|
'07010_E_Cannot use multiple relocatable symbols'#000+
|
||||||
'07011_E_Relocatable symbol can only be added'#000+
|
'07011_E_Relocatable symbol can only be added'#000+
|
||||||
'07012_E_Invalid constant expression'#000+
|
'07012_E_Invalid constant e','xpression'#000+
|
||||||
'07013_E_Relocatable symbol is not allowed'#000+
|
'07013_E_Relocatable symbol is not allowed'#000+
|
||||||
'07014_E_Invalid reference sy','ntax'#000+
|
'07014_E_Invalid reference syntax'#000+
|
||||||
'07015_E_You can not reach $1 from that code'#000+
|
'07015_E_You can not reach $1 from that code'#000+
|
||||||
'07016_E_Local symbols/labels aren'#039't allowed as references'#000+
|
'07016_E_Local symbols/labels aren'#039't allowed as references'#000+
|
||||||
'07017_E_Invalid base and index register usage'#000+
|
'07017_E_Invalid base and index register usage'#000+
|
||||||
'07018_W_Possible error in object field handling'#000+
|
'07018_W','_Possible error in object field handling'#000+
|
||||||
'07019_E_Wrong scale factor specified'#000+
|
'07019_E_Wrong scale factor specified'#000+
|
||||||
'07','020_E_Multiple index register usage'#000+
|
'07020_E_Multiple index register usage'#000+
|
||||||
'07021_E_Invalid operand type'#000+
|
'07021_E_Invalid operand type'#000+
|
||||||
'07022_E_Invalid string as opcode operand: $1'#000+
|
'07022_E_Invalid string as opcode operand: $1'#000+
|
||||||
'07023_W_@CODE and @DATA not supported'#000+
|
'07023_W_@CODE and @DATA not supported'#000+
|
||||||
'07024_E_Null label references are not allowed'#000+
|
'07024_E_Null',' label references are not allowed'#000+
|
||||||
'07025_E_Divide by zero in asm evaluator'#000+
|
'07025_E_Divide by zero in asm evaluator'#000+
|
||||||
'07026_','E_Illegal expression'#000+
|
'07026_E_Illegal expression'#000+
|
||||||
'07027_E_escape sequence ignored: $1'#000+
|
'07027_E_escape sequence ignored: $1'#000+
|
||||||
'07028_E_Invalid symbol reference'#000+
|
'07028_E_Invalid symbol reference'#000+
|
||||||
'07029_W_Fwait can cause emulation problems with emu387'#000+
|
'07029_W_Fwait can cause emulation problems with emu387'#000+
|
||||||
'07030_W_$1 without operand translated into $1P'#000+
|
'07030_W_$1 with','out operand translated into $1P'#000+
|
||||||
'07031_W_ENTER instruction is not supported by Li','nux kernel'#000+
|
'07031_W_ENTER instruction is not supported by Linux kernel'#000+
|
||||||
'07032_W_Calling an overload function in assembler'#000+
|
'07032_W_Calling an overload function in assembler'#000+
|
||||||
'07033_E_Unsupported symbol type for operand'#000+
|
'07033_E_Unsupported symbol type for operand'#000+
|
||||||
'07034_E_Constant value out of bounds'#000+
|
'07034_E_Constant value out of bounds'#000+
|
||||||
'07035_E_Error converting decimal $1'#000+
|
'07035_E_Error conv','erting decimal $1'#000+
|
||||||
'07036_E_Error converting octal $1'#000+
|
'07036_E_Error converting octal $1'#000+
|
||||||
'07037_E_Error converting bin','ary $1'#000+
|
'07037_E_Error converting binary $1'#000+
|
||||||
'07038_E_Error converting hexadecimal $1'#000+
|
'07038_E_Error converting hexadecimal $1'#000+
|
||||||
'07039_H_$1 translated to $2'#000+
|
'07039_H_$1 translated to $2'#000+
|
||||||
'07040_W_$1 is associated to an overloaded function'#000+
|
'07040_W_$1 is associated to an overloaded function'#000+
|
||||||
'07041_E_Cannot use SELF outside a method'#000+
|
'07041_E_Cannot use SELF outside a ','method'#000+
|
||||||
'07042_E_Cannot use OLDEBP outside a nested procedure'#000+
|
'07042_E_Cannot use OLDEBP outside a nested procedure'#000+
|
||||||
'07043_W_Procedures c','an'#039't return any value in asm code'#000+
|
'07043_W_Procedures can'#039't return any value in asm code'#000+
|
||||||
'07044_E_SEG not supported'#000+
|
'07044_E_SEG not supported'#000+
|
||||||
'07045_E_Size suffix and destination or source size do not match'#000+
|
'07045_E_Size suffix and destination or source size do not match'#000+
|
||||||
'07046_W_Size suffix and destination or source size do not match'#000+
|
'07046_W_Size suffix and destination ','or source size do not match'#000+
|
||||||
'07047_E_Assembler syntax error'#000+
|
'07047_E_Assembler syntax error'#000+
|
||||||
'07048_E_Invalid combi','nation of opcode and operands'#000+
|
'07048_E_Invalid combination of opcode and operands'#000+
|
||||||
'07049_E_Assembler syntax error in operand'#000+
|
'07049_E_Assembler syntax error in operand'#000+
|
||||||
'07050_E_Assembler syntax error in constant'#000+
|
'07050_E_Assembler syntax error in constant'#000+
|
||||||
'07051_E_Invalid String expression'#000+
|
'07051_E_Invalid String expression'#000+
|
||||||
'07052_W_constant with symbol $1 for address which is not on a pointer'#000+
|
'07052_W_con','stant with symbol $1 for address which is not on a pointe'+
|
||||||
'07053_E_Unrecognized ','opcode $1'#000+
|
'r'#000+
|
||||||
|
'07053_E_Unrecognized opcode $1'#000+
|
||||||
'07054_E_Invalid or missing opcode'#000+
|
'07054_E_Invalid or missing opcode'#000+
|
||||||
'07055_E_Invalid combination of prefix and opcode: $1'#000+
|
'07055_E_Invalid combination of prefix and opcode: $1'#000+
|
||||||
'07056_E_Invalid combination of override and opcode: $1'#000+
|
'07056_E_Invalid combination of override and opcode: $1'#000+
|
||||||
'07057_E_Too many operands on line'#000+
|
'07057_E_','Too many operands on line'#000+
|
||||||
'07058_W_NEAR ignored'#000+
|
'07058_W_NEAR ignored'#000+
|
||||||
'07059_W_FAR ignored'#000+
|
'07059_W_FAR ignored'#000+
|
||||||
'07060_E_Dupli','cate local symbol $1'#000+
|
'07060_E_Duplicate local symbol $1'#000+
|
||||||
'07061_E_Undefined local symbol $1'#000+
|
'07061_E_Undefined local symbol $1'#000+
|
||||||
'07062_E_Unknown label identifier $1'#000+
|
'07062_E_Unknown label identifier $1'#000+
|
||||||
'07063_E_Invalid register name'#000+
|
'07063_E_Invalid register name'#000+
|
||||||
'07064_E_Invalid floating point register name'#000+
|
'07064_E_Invalid floating point register',' name'#000+
|
||||||
'07066_W_Modulo not supported'#000+
|
'07066_W_Modulo not supported'#000+
|
||||||
'07067_E_Invalid floating point constant $1'#000+
|
'07067_E_Invalid floating point constant $1'#000+
|
||||||
'07','068_E_Invalid floating point expression'#000+
|
'07068_E_Invalid floating point expression'#000+
|
||||||
'07069_E_Wrong symbol type'#000+
|
'07069_E_Wrong symbol type'#000+
|
||||||
'07070_E_Cannot index a local var or parameter with a register'#000+
|
'07070_E_Cannot index a local var or parameter with a register'#000+
|
||||||
'07071_E_Invalid segment override expression'#000+
|
'07071_E_Invalid segment override',' expression'#000+
|
||||||
'07072_W_Identifier $1 supposed external'#000+
|
'07072_W_Identifier $1 supposed external'#000+
|
||||||
'07073_E_Strings not allowed ','as constants'#000+
|
'07073_E_Strings not allowed as constants'#000+
|
||||||
'07074_No type of variable specified'#000+
|
'07074_No type of variable specified'#000+
|
||||||
'07075_E_assembler code not returned to text section'#000+
|
'07075_E_assembler code not returned to text section'#000+
|
||||||
'07076_E_Not a directive or local symbol $1'#000+
|
'07076_E_Not a directive or local symbol $1'#000+
|
||||||
'07077_E_Using a defined name as a local label'#000+
|
'07077_E_Using a ','defined name as a local label'#000+
|
||||||
'07078_E_Dollar token is used without an identifier',#000+
|
'07078_E_Dollar token is used without an identifier'#000+
|
||||||
'07079_W_32bit constant created for address'#000+
|
'07079_W_32bit constant created for address'#000+
|
||||||
'07080_N_.align is target specific, use .balign or .p2align'#000+
|
'07080_N_.align is target specific, use .balign or .p2align'#000+
|
||||||
'07081_E_Can'#039't access fields directly for parameters'#000+
|
'07081_E_Can'#039't access fields directly for parameters'#000+
|
||||||
'07082_E_Can'#039't access fields of objects/classes directly'#000+
|
'07082','_E_Can'#039't access fields of objects/classes directly'#000+
|
||||||
'07083_E_No size specified and',' unable to determine the size of the op'+
|
'07083_E_No size specified and unable to determine the size of the oper'+
|
||||||
'erands'#000+
|
'ands'#000+
|
||||||
'07084_E_Cannot use RESULT in this function'#000+
|
'07084_E_Cannot use RESULT in this function'#000+
|
||||||
'07086_W_"$1" without operand translated into "$1 %st,%st(1)"'#000+
|
'07086_W_"$1" without operand translated into "$1 %st,%st(1)"'#000+
|
||||||
'07087_W_"$1 %st(n)" translated into "$1 %st,%st(n)"'#000+
|
'07087_W_"$','1 %st(n)" translated into "$1 %st,%st(n)"'#000+
|
||||||
'07088_W_"$1 %st(n)" translated into "$','1 %st(n),%st"'#000+
|
'07088_W_"$1 %st(n)" translated into "$1 %st(n),%st"'#000+
|
||||||
'07089_E_Char < not allowed here'#000+
|
'07089_E_Char < not allowed here'#000+
|
||||||
'07090_E_Char > not allowed here'#000+
|
'07090_E_Char > not allowed here'#000+
|
||||||
'07093_W_ALIGN not supported'#000+
|
'07093_W_ALIGN not supported'#000+
|
||||||
'07094_E_Inc and Dec cannot be together'#000+
|
'07094_E_Inc and Dec cannot be together'#000+
|
||||||
'07095_E_Invalid reglist for movem'#000+
|
'07095_E_Invalid',' reglist for movem'#000+
|
||||||
'07096_E_Reglist invalid for opcode'#000+
|
'07096_E_Reglist invalid for opcode'#000+
|
||||||
'07097_E_Higher cpu mode re','quired ($1)'#000+
|
'07097_E_Higher cpu mode required ($1)'#000+
|
||||||
'08000_F_Too many assembler files'#000+
|
'08000_F_Too many assembler files'#000+
|
||||||
'08001_F_Selected assembler output not supported'#000+
|
'08001_F_Selected assembler output not supported'#000+
|
||||||
'08002_F_Comp not supported'#000+
|
'08002_F_Comp not supported'#000+
|
||||||
'08003_F_Direct not support for binary writers'#000+
|
'08003_F_Direct not support for binary wr','iters'#000+
|
||||||
'08004_E_Allocating of data is only allowed in bss section'#000+
|
'08004_E_Allocating of data is only allowed in bss section'#000+
|
||||||
'08005_F_No binar','y writer selected'#000+
|
'08005_F_No binary writer selected'#000+
|
||||||
'08006_E_Asm: Opcode $1 not in table'#000+
|
'08006_E_Asm: Opcode $1 not in table'#000+
|
||||||
'08007_E_Asm: $1 invalid combination of opcode and operands'#000+
|
'08007_E_Asm: $1 invalid combination of opcode and operands'#000+
|
||||||
'08008_E_Asm: 16 Bit references not supported'#000+
|
'08008_E_Asm: 16 Bit references not supported'#000+
|
||||||
'08009_E_Asm: Invalid effective address'#000+
|
'08','009_E_Asm: Invalid effective address'#000+
|
||||||
'08010_E_Asm: Immediate or reference expecte','d'#000+
|
'08010_E_Asm: Immediate or reference expected'#000+
|
||||||
'08011_E_Asm: $1 value exceeds bounds $2'#000+
|
'08011_E_Asm: $1 value exceeds bounds $2'#000+
|
||||||
'08012_E_Asm: Short jump is out of range $1'#000+
|
'08012_E_Asm: Short jump is out of range $1'#000+
|
||||||
'08013_E_Asm: Undefined label $1'#000+
|
'08013_E_Asm: Undefined label $1'#000+
|
||||||
'08014_E_Asm: Comp type not supported for this target'#000+
|
'08014_E_Asm: Comp type not supported for th','is target'#000+
|
||||||
'08015_E_Asm: Extended type not supported for this target'#000+
|
'08015_E_Asm: Extended type not supported for this target'#000+
|
||||||
'08016_E_Asm: ','Duplicate label $1'#000+
|
'08016_E_Asm: Duplicate label $1'#000+
|
||||||
'08017_E_Asm: Redefined label $1'#000+
|
'08017_E_Asm: Redefined label $1'#000+
|
||||||
'08018_E_Asm: First defined here'#000+
|
'08018_E_Asm: First defined here'#000+
|
||||||
'08019_E_Asm: Invalid register $1'#000+
|
'08019_E_Asm: Invalid register $1'#000+
|
||||||
'09000_W_Source operating system redefined'#000+
|
'09000_W_Source operating system redefined'#000+
|
||||||
'09001_I_Assembling (pipe) $1'#000+
|
'09','001_I_Assembling (pipe) $1'#000+
|
||||||
'09002_E_Can'#039't create assember file: $1'#000+
|
'09002_E_Can'#039't create assember file: $1'#000+
|
||||||
'09003_E_Can'#039't ','create object file: $1'#000+
|
'09003_E_Can'#039't create object file: $1'#000+
|
||||||
'09004_E_Can'#039't create archive file: $1'#000+
|
'09004_E_Can'#039't create archive file: $1'#000+
|
||||||
'09005_E_Assembler $1 not found, switching to external assembling'#000+
|
'09005_E_Assembler $1 not found, switching to external assembling'#000+
|
||||||
'09006_T_Using assembler: $1'#000+
|
'09006_T_Using assembler: $1'#000+
|
||||||
'09007_E_Error while assembling exitcode $1'#000+
|
'09007_','E_Error while assembling exitcode $1'#000+
|
||||||
'09008_E_Can'#039't call the assembler, error $1 ','switching to external'+
|
'09008_E_Can'#039't call the assembler, error $1 switching to external a'+
|
||||||
' assembling'#000+
|
'ssembling'#000+
|
||||||
'09009_I_Assembling $1'#000+
|
'09009_I_Assembling $1'#000+
|
||||||
'09010_I_Assembling with smartlinking $1'#000+
|
'09010_I_Assembling with smartlinking $1'#000+
|
||||||
'09011_W_Object $1 not found, Linking may fail !'#000+
|
'09011_W_Object $1 not found, Linking may fail !'#000+
|
||||||
'09012_W_Library $1 not found, Linking may fail !'#000+
|
'09012_W_Library $','1 not found, Linking may fail !'#000+
|
||||||
'09013_E_Error while linking'#000+
|
'09013_E_Error while linking'#000+
|
||||||
'09014_E_Can'#039't call t','he linker, switching to external linking'#000+
|
'09014_E_Can'#039't call the linker, switching to external linking'#000+
|
||||||
'09015_I_Linking $1'#000+
|
'09015_I_Linking $1'#000+
|
||||||
'09016_E_Util $1 not found, switching to external linking'#000+
|
'09016_E_Util $1 not found, switching to external linking'#000+
|
||||||
'09017_T_Using util $1'#000+
|
'09017_T_Using util $1'#000+
|
||||||
'09018_E_Creation of Executables not supported'#000+
|
'09018_E_Creation of E','xecutables not supported'#000+
|
||||||
'09019_E_Creation of Dynamic/Shared Libraries not suppor','ted'#000+
|
'09019_E_Creation of Dynamic/Shared Libraries not supported'#000+
|
||||||
'09020_I_Closing script $1'#000+
|
'09020_I_Closing script $1'#000+
|
||||||
'09021_E_resource compiler not found, switching to external mode'#000+
|
'09021_E_resource compiler not found, switching to external mode'#000+
|
||||||
'09022_I_Compiling resource $1'#000+
|
'09022_I_Compiling resource $1'#000+
|
||||||
'09023_T_unit $1 can'#039't be statically linked, switching to smart lin'+
|
'09023_T_unit $1 can'#039't be statically ','linked, switching to smart l'+
|
||||||
'king'#000+
|
'inking'#000+
|
||||||
'09024_T_unit $1 can'#039't be smart linked, switch','ing to static linki'+
|
'09024_T_unit $1 can'#039't be smart linked, switching to static linking'+
|
||||||
'ng'#000+
|
#000+
|
||||||
'09025_T_unit $1 can'#039't be shared linked, switching to static linkin'+
|
'09025_T_unit $1 can'#039't be shared linked, switching to static linkin'+
|
||||||
'g'#000+
|
'g'#000+
|
||||||
'09026_E_unit $1 can'#039't be smart or static linked'#000+
|
'09026_E_unit $1 can'#039't be smart or static linked'#000+
|
||||||
'09027_E_unit $1 can'#039't be shared or static linked'#000+
|
'09027_E_unit $1 can'#039't ','be shared or static linked'#000+
|
||||||
'09028_F_Can'#039't post process executable $1'#000+
|
'09028_F_Can'#039't post process executable $1'#000+
|
||||||
'09029_F_Can'#039,'t open executable $1'#000+
|
'09029_F_Can'#039't open executable $1'#000+
|
||||||
'09030_X_Size of Code: $1 bytes'#000+
|
'09030_X_Size of Code: $1 bytes'#000+
|
||||||
'09031_X_Size of initialized data: $1 bytes'#000+
|
'09031_X_Size of initialized data: $1 bytes'#000+
|
||||||
'09032_X_Size of uninitialized data: $1 bytes'#000+
|
'09032_X_Size of uninitialized data: $1 bytes'#000+
|
||||||
'09033_X_Stack space reserved: $1 bytes'#000+
|
'09033_X_Stack space ','reserved: $1 bytes'#000+
|
||||||
'09034_X_Stack space commited: $1 bytes'#000+
|
'09034_X_Stack space commited: $1 bytes'#000+
|
||||||
'10000_T_Unitsearch: $1',#000+
|
'10000_T_Unitsearch: $1'#000+
|
||||||
'10001_T_PPU Loading $1'#000+
|
'10001_T_PPU Loading $1'#000+
|
||||||
'10002_U_PPU Name: $1'#000+
|
'10002_U_PPU Name: $1'#000+
|
||||||
'10003_U_PPU Flags: $1'#000+
|
'10003_U_PPU Flags: $1'#000+
|
||||||
'10004_U_PPU Crc: $1'#000+
|
'10004_U_PPU Crc: $1'#000+
|
||||||
'10005_U_PPU Time: $1'#000+
|
'10005_U_PPU Time: $1'#000+
|
||||||
'10006_U_PPU File too short'#000+
|
'10006_U_PPU File too short'#000+
|
||||||
'10007_U_PPU Invalid Header (no PPU at the begin)'#000+
|
'10007_U_PPU Invalid Heade','r (no PPU at the begin)'#000+
|
||||||
'10008_U_PPU Invalid Version $1'#000+
|
'10008_U_PPU Invalid Version $1'#000+
|
||||||
'10009_U_PPU is compiled f','or another processor'#000+
|
'10009_U_PPU is compiled for another processor'#000+
|
||||||
'10010_U_PPU is compiled for an other target'#000+
|
'10010_U_PPU is compiled for an other target'#000+
|
||||||
'10011_U_PPU Source: $1'#000+
|
'10011_U_PPU Source: $1'#000+
|
||||||
'10012_U_Writing $1'#000+
|
'10012_U_Writing $1'#000+
|
||||||
'10013_F_Can'#039't Write PPU-File'#000+
|
'10013_F_Can'#039't Write PPU-File'#000+
|
||||||
'10014_F_Error reading PPU-File'#000+
|
'10014_F_Error reading PP','U-File'#000+
|
||||||
'10015_F_unexpected end of PPU-File'#000+
|
'10015_F_unexpected end of PPU-File'#000+
|
||||||
'10016_F_Invalid PPU-File entry: $1'#000+
|
'10016_F_Invalid PPU-File entry: $1'#000+
|
||||||
'100','17_F_PPU Dbx count problem'#000+
|
'10017_F_PPU Dbx count problem'#000+
|
||||||
'10018_E_Illegal unit name: $1'#000+
|
'10018_E_Illegal unit name: $1'#000+
|
||||||
'10019_F_Too much units'#000+
|
'10019_F_Too much units'#000+
|
||||||
'10020_F_Circular unit reference between $1 and $2'#000+
|
'10020_F_Circular unit reference between $1 and $2'#000+
|
||||||
'10021_F_Can'#039't compile unit $1, no sources available'#000+
|
'10021_F_Can'#039't compile unit $1,',' no sources available'#000+
|
||||||
'10022_F_Can'#039't find unit $1'#000+
|
'10022_F_Can'#039't find unit $1'#000+
|
||||||
'10023_W_Unit $1 was not found b','ut $2 exists'#000+
|
'10023_W_Unit $1 was not found but $2 exists'#000+
|
||||||
'10024_F_Unit $1 searched but $2 found'#000+
|
'10024_F_Unit $1 searched but $2 found'#000+
|
||||||
'10025_W_Compiling the system unit requires the -Us switch'#000+
|
'10025_W_Compiling the system unit requires the -Us switch'#000+
|
||||||
'10026_F_There were $1 errors compiling module, stopping'#000+
|
'10026_F_There were $1 errors compiling module, stop','ping'#000+
|
||||||
'10027_U_Load from $1 ($2) unit $3'#000+
|
'10027_U_Load from $1 ($2) unit $3'#000+
|
||||||
'10028_U_Recompiling $1, checksum changed ','for $2'#000+
|
'10028_U_Recompiling $1, checksum changed for $2'#000+
|
||||||
'10029_U_Recompiling $1, source found only'#000+
|
'10029_U_Recompiling $1, source found only'#000+
|
||||||
'10030_U_Recompiling unit, static lib is older than ppufile'#000+
|
'10030_U_Recompiling unit, static lib is older than ppufile'#000+
|
||||||
'10031_U_Recompiling unit, shared lib is older than ppufile'#000+
|
'10031_U_Recompiling unit, shared lib is older than p','pufile'#000+
|
||||||
'10032_U_Recompiling unit, obj and asm are older than ppufile'#000+
|
'10032_U_Recompiling unit, obj and asm are older than ppufile'#000+
|
||||||
'10033_U_Reco','mpiling unit, obj is older than asm'#000+
|
'10033_U_Recompiling unit, obj is older than asm'#000+
|
||||||
'10034_U_Parsing interface of $1'#000+
|
'10034_U_Parsing interface of $1'#000+
|
||||||
'10035_U_Parsing implementation of $1'#000+
|
'10035_U_Parsing implementation of $1'#000+
|
||||||
'10036_U_Second load for unit $1'#000+
|
'10036_U_Second load for unit $1'#000+
|
||||||
'10037_U_PPU Check file $1 time $2'#000+
|
'10037_U_PPU Check file ','$1 time $2'#000+
|
||||||
'10038_H_Conditional $1 was not set at startup in last compilation of ',
|
'10038_H_Conditional $1 was not set at startup in last compilation of $'+
|
||||||
'$2'#000+
|
'2'#000+
|
||||||
'10039_H_Conditional $1 was set at startup in last compilation of $2'#000+
|
'10039_H_Conditional $1 was set at startup in last compilation of $2'#000+
|
||||||
'10040_W_Can'#039't recompile unit $1, but found modifed include files'#000+
|
'10040_W_Can'#039't recompile unit $1, but found modifed include files'#000+
|
||||||
'10041_H_File $1 is newer than Release PPU file $2'#000+
|
'10041_H_File $1 is newer',' than Release PPU file $2'#000+
|
||||||
'10042_U_Using a unit which was not compiled with corre','ct FPU mode'#000+
|
'10042_U_Using a unit which was not compiled with correct FPU mode'#000+
|
||||||
'10043_U_Loading interface units from $1'#000+
|
'10043_U_Loading interface units from $1'#000+
|
||||||
'10044_U_Loading implementation units from $1'#000+
|
'10044_U_Loading implementation units from $1'#000+
|
||||||
'10045_U_Interface CRC changed for unit $1'#000+
|
'10045_U_Interface CRC changed for unit $1'#000+
|
||||||
'10046_U_Implementation CRC changed for unit $1'#000+
|
'10046_U_Implementatio','n CRC changed for unit $1'#000+
|
||||||
'10047_U_Finished compiling unit $1'#000+
|
'10047_U_Finished compiling unit $1'#000+
|
||||||
'10048_U_Add depende','ncy of $1 to $2'#000+
|
'10048_U_Add dependency of $1 to $2'#000+
|
||||||
'10049_U_No reload, is caller: $1'#000+
|
'10049_U_No reload, is caller: $1'#000+
|
||||||
'10050_U_No reload, already in second compile: $1'#000+
|
'10050_U_No reload, already in second compile: $1'#000+
|
||||||
'10051_U_Flag for reload: $1'#000+
|
'10051_U_Flag for reload: $1'#000+
|
||||||
'10052_U_Forced reloading'#000+
|
'10052_U_Forced reloading'#000+
|
||||||
'10053_U_Previous state of $1: $2'#000+
|
'10053_U_P','revious state of $1: $2'#000+
|
||||||
'10054_U_Already compiling $1, setting second compile'#000+
|
'10054_U_Already compiling $1, setting second compile'#000+
|
||||||
'100','55_U_Loading unit $1'#000+
|
'10055_U_Loading unit $1'#000+
|
||||||
'10056_U_Finished loading unit $1'#000+
|
'10056_U_Finished loading unit $1'#000+
|
||||||
'10057_U_Registering new unit $1'#000+
|
'10057_U_Registering new unit $1'#000+
|
||||||
'10058_U_Re-resolving unit $1'#000+
|
'10058_U_Re-resolving unit $1'#000+
|
||||||
'10059_U_Skipping re-resolving unit $1, still loading used units'#000+
|
'10059_U_Skipping re-resolving unit $1, still ','loading used units'#000+
|
||||||
'11000_$1 [options] <inputfile> [options]'#000+
|
'11000_$1 [options] <inputfile> [options]'#000+
|
||||||
'11001_W_Only one sou','rce file supported'#000+
|
'11001_W_Only one source file supported'#000+
|
||||||
'11002_W_DEF file can be created only for OS/2'#000+
|
'11002_W_DEF file can be created only for OS/2'#000+
|
||||||
'11003_E_nested response files are not supported'#000+
|
'11003_E_nested response files are not supported'#000+
|
||||||
'11004_F_No source file name in command line'#000+
|
'11004_F_No source file name in command line'#000+
|
||||||
'11005_N_No option inside $1 config file'#000+
|
'110','05_N_No option inside $1 config file'#000+
|
||||||
'11006_E_Illegal parameter: $1'#000+
|
'11006_E_Illegal parameter: $1'#000+
|
||||||
'11007_H_-? wr','ites help pages'#000+
|
'11007_H_-? writes help pages'#000+
|
||||||
'11008_F_Too many config files nested'#000+
|
'11008_F_Too many config files nested'#000+
|
||||||
'11009_F_Unable to open file $1'#000+
|
'11009_F_Unable to open file $1'#000+
|
||||||
'11010_D_Reading further options from $1'#000+
|
'11010_D_Reading further options from $1'#000+
|
||||||
'11011_W_Target is already set to: $1'#000+
|
'11011_W_Target is already set to: $1',#000+
|
||||||
'11012_W_Shared libs not supported on DOS platform, reverting to static'+
|
'11012_W_Shared libs not supported on DOS platform, reverting to static'+
|
||||||
#000+
|
#000+
|
||||||
'11013_F_','too many IF(N)DEFs'#000+
|
'11013_F_too many IF(N)DEFs'#000+
|
||||||
'11014_F_too many ENDIFs'#000+
|
'11014_F_too many ENDIFs'#000+
|
||||||
'11015_F_open conditional at the end of the file'#000+
|
'11015_F_open conditional at the end of the file'#000+
|
||||||
'11016_W_Debug information generation is not supported by this executab'+
|
'11016_W_Debug information generation is not supported by this executa',
|
||||||
'le'#000+
|
'ble'#000+
|
||||||
'11017_H_Try recompiling with -dGDB'#000+
|
'11017_H_Try recompiling with -dGDB'#000+
|
||||||
'11018_E_You are using the obsolete switch',' $1'#000+
|
'11018_E_You are using the obsolete switch $1'#000+
|
||||||
'11019_E_You are using the obsolete switch $1, please use $2'#000+
|
'11019_E_You are using the obsolete switch $1, please use $2'#000+
|
||||||
'11020_N_Switching assembler to default source writing assembler'#000+
|
'11020_N_Switching assembler to default source writing assembler'#000+
|
||||||
'11021_W_Assembler output selected "$1" is not compatible with "$2"'#000+
|
'11021_W_Assembler output selecte','d "$1" is not compatible with "$2"'#000+
|
||||||
'11022_W_"$1" assembler use forced'#000+
|
'11022_W_"$1" assembler use forced'#000+
|
||||||
'11026_T_Rea','ding options from file $1'#000+
|
'11026_T_Reading options from file $1'#000+
|
||||||
'11027_T_Reading options from environment $1'#000+
|
'11027_T_Reading options from environment $1'#000+
|
||||||
'11028_D_Handling option "$1"'#000+
|
'11028_D_Handling option "$1"'#000+
|
||||||
'11029__*** press enter ***'#000+
|
'11029__*** press enter ***'#000+
|
||||||
'11030_H_Start of reading config file $1'#000+
|
'11030_H_Start of reading config fi','le $1'#000+
|
||||||
'11031_H_End of reading config file $1'#000+
|
'11031_H_End of reading config file $1'#000+
|
||||||
'11032_D_interpreting option "$1"'#000+
|
'11032_D_interpreting option "$1"'#000+
|
||||||
'110','36_D_interpreting firstpass option "$1"'#000+
|
'11036_D_interpreting firstpass option "$1"'#000+
|
||||||
'11033_D_interpreting file option "$1"'#000+
|
'11033_D_interpreting file option "$1"'#000+
|
||||||
'11034_D_Reading config file "$1"'#000+
|
'11034_D_Reading config file "$1"'#000+
|
||||||
'11035_D_found source file name "$1"'#000+
|
'11035_D_found source file name "$1"'#000+
|
||||||
'11037_D_Defining symbol $1'#000+
|
'11037_D_Defin','ing symbol $1'#000+
|
||||||
'11038_D_Undefining symbol $1'#000+
|
'11038_D_Undefining symbol $1'#000+
|
||||||
'11039_E_Unknown code page'#000+
|
'11039_E_Unknown code page'#000+
|
||||||
'11023_Free ','Pascal Compiler version $FPCVER [$FPCDATE] for $FPCTARGET'+
|
'11023_Free Pascal Compiler version $FPCVER [$FPCDATE] for $FPCTARGET'#010+
|
||||||
#010+
|
|
||||||
'Copyright (c) 1993-2002 by Florian Klaempfl'#000+
|
'Copyright (c) 1993-2002 by Florian Klaempfl'#000+
|
||||||
'11024_Free Pascal Compiler version $FPCVER'#010+
|
'11024_Free Pascal Compiler version $FPCVER'#010+
|
||||||
#010+
|
#010+
|
||||||
'Compiler Date : $FPCDATE'#010+
|
'Compiler Date ',' : $FPCDATE'#010+
|
||||||
'Compiler Target: $FPCTARGET'#010+
|
'Compiler Target: $FPCTARGET'#010+
|
||||||
#010+
|
#010+
|
||||||
'Supported targets:'#010+
|
'Supported targets:'#010+
|
||||||
' $OSTARGETS'#010+
|
' $OSTARGETS'#010+
|
||||||
#010+
|
#010+
|
||||||
'This p','rogram comes under the GNU General Public Licence'#010+
|
'This program comes under the GNU General Public Licence'#010+
|
||||||
'For more information read COPYING.FPC'#010+
|
'For more information read COPYING.FPC'#010+
|
||||||
#010+
|
#010+
|
||||||
'Report bugs,suggestions etc to:'#010+
|
'Report bugs,suggestions etc to:'#010+
|
||||||
' bugrep@freepascal.org'#000+
|
' bugrep@freepascal.org'#000,
|
||||||
'11025_**0*_put + after a boolean switch option to enable it, - to disa'+
|
'11025_**0*_put + after a boolean switch option to enable it, - to disa'+
|
||||||
'ble it'#010+
|
'ble it'#010+
|
||||||
'**1','a_the compiler doesn'#039't delete the generated assembler file'#010+
|
'**1a_the compiler doesn'#039't delete the generated assembler file'#010+
|
||||||
'**2al_list sourcecode lines in assembler file'#010+
|
'**2al_list sourcecode lines in assembler file'#010+
|
||||||
'**2ar_list register allocation/release info in assembler file'#010+
|
'**2ar_list register allocation/release info in assemble','r file'#010+
|
||||||
'**2at_list temp allocation/release info in assembler file'#010+
|
'**2at_list temp allocation/release info in assembler file'#010+
|
||||||
'**1b_generate b','rowser info'#010+
|
'**1b_generate browser info'#010+
|
||||||
'**2bl_generate local symbol info'#010+
|
'**2bl_generate local symbol info'#010+
|
||||||
'**1B_build all modules'#010+
|
'**1B_build all modules'#010+
|
||||||
'**1C<x>_code generation options:'#010+
|
'**1C<x>_code generation options:'#010+
|
||||||
'**2CD_create also dynamic library (not supported)'#010+
|
'**2CD_create also dynamic library (not supported)'#010+
|
||||||
'**2Ce_Compilation with emulated floating point opcodes'#010+
|
'**2Ce_Com','pilation with emulated floating point opcodes'#010+
|
||||||
'**2Ch<n>_<n> bytes heap (between 1','023 and 67107840)'#010+
|
'**2Ch<n>_<n> bytes heap (between 1023 and 67107840)'#010+
|
||||||
'**2Ci_IO-checking'#010+
|
'**2Ci_IO-checking'#010+
|
||||||
'**2Cn_omit linking stage'#010+
|
'**2Cn_omit linking stage'#010+
|
||||||
'**2Co_check overflow of integer operations'#010+
|
'**2Co_check overflow of integer operations'#010+
|
||||||
'**2Cr_range checking'#010+
|
'**2Cr_range checking'#010+
|
||||||
'**2CR_verify object method call validity'#010+
|
'**2CR_verify object method call val','idity'#010+
|
||||||
'**2Cs<n>_set stack size to <n>'#010+
|
'**2Cs<n>_set stack size to <n>'#010+
|
||||||
'**2Ct_stack checking'#010+
|
'**2Ct_stack checking'#010+
|
||||||
'**2CX_create also smar','tlinked library'#010+
|
'**2CX_create also smartlinked library'#010+
|
||||||
'**1d<x>_defines the symbol <x>'#010+
|
'**1d<x>_defines the symbol <x>'#010+
|
||||||
'*O1D_generate a DEF file'#010+
|
'*O1D_generate a DEF file'#010+
|
||||||
'*O2Dd<x>_set description to <x>'#010+
|
'*O2Dd<x>_set description to <x>'#010+
|
||||||
'*O2Dw_PM application'#010+
|
'*O2Dw_PM application'#010+
|
||||||
'**1e<x>_set path to executable'#010+
|
'**1e<x>_set path to executable'#010+
|
||||||
'**1E_same as -Cn'#010+
|
'**1E','_same as -Cn'#010+
|
||||||
'**1F<x>_set file names and paths:'#010+
|
'**1F<x>_set file names and paths:'#010+
|
||||||
'**2FD<x>_sets the directory where',' to search for compiler utilities'#010+
|
'**2FD<x>_sets the directory where to search for compiler utilities'#010+
|
||||||
'**2Fe<x>_redirect error output to <x>'#010+
|
'**2Fe<x>_redirect error output to <x>'#010+
|
||||||
'**2FE<x>_set exe/unit output path to <x>'#010+
|
'**2FE<x>_set exe/unit output path to <x>'#010+
|
||||||
'**2Fi<x>_adds <x> to include path'#010+
|
'**2Fi<x>_adds <x> to include path'#010+
|
||||||
'**2Fl<x>_adds <x> to library path'#010+
|
'**2Fl<x>_adds',' <x> to library path'#010+
|
||||||
'*L2FL<x>_uses <x> as dynamic linker'#010+
|
'*L2FL<x>_uses <x> as dynamic linker'#010+
|
||||||
'**2Fo<x>_adds <x> to ob','ject path'#010+
|
'**2Fo<x>_adds <x> to object path'#010+
|
||||||
'**2Fr<x>_load error message file <x>'#010+
|
'**2Fr<x>_load error message file <x>'#010+
|
||||||
'**2Fu<x>_adds <x> to unit path'#010+
|
'**2Fu<x>_adds <x> to unit path'#010+
|
||||||
'**2FU<x>_set unit output path to <x>, overrides -FE'#010+
|
'**2FU<x>_set unit output path to <x>, overrides -FE'#010+
|
||||||
'*g1g_generate debugger information:'#010+
|
'*g1g_generate debugger informa','tion:'#010+
|
||||||
'*g2gg_use gsym'#010+
|
'*g2gg_use gsym'#010+
|
||||||
'*g2gd_use dbx'#010+
|
'*g2gd_use dbx'#010+
|
||||||
'*g2gh_use heap trace unit (for memory leak de','bugging)'#010+
|
'*g2gh_use heap trace unit (for memory leak debugging)'#010+
|
||||||
'*g2gl_use line info unit to show more info for backtraces'#010+
|
'*g2gl_use line info unit to show more info for backtraces'#010+
|
||||||
'*g2gc_generate checks for pointers'#010+
|
'*g2gc_generate checks for pointers'#010+
|
||||||
'**1i_information'#010+
|
'**1i_information'#010+
|
||||||
'**2iD_return compiler date'#010+
|
'**2iD_return compiler date'#010+
|
||||||
'**2iV_return compiler version'#010+
|
'**2iV_return c','ompiler version'#010+
|
||||||
'**2iSO_return compiler OS'#010+
|
'**2iSO_return compiler OS'#010+
|
||||||
'**2iSP_return compiler processor'#010+
|
'**2iSP_return compiler processor'#010+
|
||||||
'**2iT','O_return target OS'#010+
|
'**2iTO_return target OS'#010+
|
||||||
'**2iTP_return target processor'#010+
|
'**2iTP_return target processor'#010+
|
||||||
'**1I<x>_adds <x> to include path'#010+
|
'**1I<x>_adds <x> to include path'#010+
|
||||||
'**1k<x>_Pass <x> to the linker'#010+
|
'**1k<x>_Pass <x> to the linker'#010+
|
||||||
'**1l_write logo'#010+
|
'**1l_write logo'#010+
|
||||||
'**1M<x>_set language mode to <x>'#010+
|
'**1M<x>_set language mode to <','x>'#010+
|
||||||
'**2Mfpc_free pascal dialect (default)'#010+
|
'**2Mfpc_free pascal dialect (default)'#010+
|
||||||
'**2Mobjfpc_switch some Delphi 2 extensi','ons on'#010+
|
'**2Mobjfpc_switch some Delphi 2 extensions on'#010+
|
||||||
'**2Mdelphi_tries to be Delphi compatible'#010+
|
'**2Mdelphi_tries to be Delphi compatible'#010+
|
||||||
'**2Mtp_tries to be TP/BP 7.0 compatible'#010+
|
'**2Mtp_tries to be TP/BP 7.0 compatible'#010+
|
||||||
'**2Mgpc_tries to be gpc compatible'#010+
|
'**2Mgpc_tries to be gpc compatible'#010+
|
||||||
'**2Mmac_tries to be compatible to the macintosh pascal dialects'#010+
|
'**2Mmac_tries to be compatible to the',' macintosh pascal dialects'#010+
|
||||||
'**1n_don'#039't read the default config file'#010+
|
'**1n_don'#039't read the default config file'#010+
|
||||||
'**1o<x>_chang','e the name of the executable produced to <x>'#010+
|
'**1o<x>_change the name of the executable produced to <x>'#010+
|
||||||
'**1pg_generate profile code for gprof (defines FPC_PROFILE)'#010+
|
'**1pg_generate profile code for gprof (defines FPC_PROFILE)'#010+
|
||||||
'*L1P_use pipes instead of creating temporary assembler files'#010+
|
'*L1P_use pipes instead of creating temporary assembler ','files'#010+
|
||||||
'**1S<x>_syntax options:'#010+
|
'**1S<x>_syntax options:'#010+
|
||||||
'**2S2_same as -Mobjfpc'#010+
|
'**2S2_same as -Mobjfpc'#010+
|
||||||
'**2Sc_supports operators li','ke C (*=,+=,/= and -=)'#010+
|
'**2Sc_supports operators like C (*=,+=,/= and -=)'#010+
|
||||||
'**2Sa_include assertion code.'#010+
|
'**2Sa_include assertion code.'#010+
|
||||||
'**2Sd_same as -Mdelphi'#010+
|
'**2Sd_same as -Mdelphi'#010+
|
||||||
'**2Se<x>_compiler stops after the <x> errors (default is 1)'#010+
|
'**2Se<x>_compiler stops after the <x> errors (default is 1)'#010+
|
||||||
'**2Sg_allow LABEL and GOTO'#010+
|
'**2Sg_allow LABEL and GO','TO'#010+
|
||||||
'**2Sh_Use ansistrings'#010+
|
'**2Sh_Use ansistrings'#010+
|
||||||
'**2Si_support C++ styled INLINE'#010+
|
'**2Si_support C++ styled INLINE'#010+
|
||||||
'**2Sm_support macros li','ke C (global)'#010+
|
'**2Sm_support macros like C (global)'#010+
|
||||||
'**2So_same as -Mtp'#010+
|
'**2So_same as -Mtp'#010+
|
||||||
'**2Sp_same as -Mgpc'#010+
|
'**2Sp_same as -Mgpc'#010+
|
||||||
'**2Ss_constructor name must be init (destructor must be done)'#010+
|
'**2Ss_constructor name must be init (destructor must be done)'#010+
|
||||||
'**2St_allow static keyword in objects'#010+
|
'**2St_allow static keyword in objects'#010+
|
||||||
'**1s_don'#039't call assembler and linker (only with -a)'#010+
|
'**1s_do','n'#039't call assembler and linker (only with -a)'#010+
|
||||||
'**2sh_Generate script to link on ho','st'#010+
|
'**2sh_Generate script to link on host'#010+
|
||||||
'**2sr_Skip register allocation phase (optimizations will be disabled)'#010+
|
'**2sr_Skip register allocation phase (optimizations will be disabled)'#010+
|
||||||
'**2st_Generate script to link on target'#010+
|
'**2st_Generate script to link on target'#010+
|
||||||
'**1u<x>_undefines the symbol <x>'#010+
|
'**1u<x>_undefines the symbol <x>'#010+
|
||||||
'**1U_unit options:'#010+
|
'**1U_unit opti','ons:'#010+
|
||||||
'**2Un_don'#039't check the unit name'#010+
|
'**2Un_don'#039't check the unit name'#010+
|
||||||
'**2Ur_generate release unit files'#010+
|
'**2Ur_generate release unit files'#010+
|
||||||
'**2Us_com','pile a system unit'#010+
|
'**2Us_compile a system unit'#010+
|
||||||
'**1v<x>_Be verbose. <x> is a combination of the following letters:'#010+
|
'**1v<x>_Be verbose. <x> is a combination of the following letters:'#010+
|
||||||
'**2*_e : Show errors (default) d : Show debug info'#010+
|
'**2*_e : Show errors (default) d : Show debug info'#010+
|
||||||
'**2*_w : Show warnings u : Show unit info'#010+
|
'**2*_w : Show war','nings u : Show unit info'#010+
|
||||||
'**2*_n : Show notes t : ','Show tried/used files'#010+
|
'**2*_n : Show notes t : Show tried/used files'#010+
|
||||||
'**2*_h : Show hints m : Show defined macros'#010+
|
'**2*_h : Show hints m : Show defined macros'#010+
|
||||||
'**2*_i : Show general info p : Show compiled procedures'#010+
|
'**2*_i : Show general info p : Show compiled procedures'#010+
|
||||||
'**2*_l : Show linenumbers c : Show conditionals'#010+
|
'**2*_l : Sh','ow linenumbers c : Show conditionals'#010+
|
||||||
'**2*_a : Show everything ',' 0 : Show nothing (except errors'+
|
'**2*_a : Show everything 0 : Show nothing (except errors)'#010+
|
||||||
')'#010+
|
|
||||||
'**2*_b : Show all procedure r : Rhide/GCC compatibility mode'#010+
|
'**2*_b : Show all procedure r : Rhide/GCC compatibility mode'#010+
|
||||||
'**2*_ declarations if an error x : Executable info (Win32 only)'#010+
|
'**2*_ declarations if an error x : Executable ','info (Win32 only'+
|
||||||
|
')'#010+
|
||||||
'**2*_ occurs'#010+
|
'**2*_ occurs'#010+
|
||||||
'**1V_write fpcdebug.txt file with lots of debu','gging info'#010+
|
'**1V_write fpcdebug.txt file with lots of debugging info'#010+
|
||||||
'**1X_executable options:'#010+
|
'**1X_executable options:'#010+
|
||||||
'*L2Xc_link with the c library'#010+
|
'*L2Xc_link with the c library'#010+
|
||||||
'**2Xs_strip all symbols from executable'#010+
|
'**2Xs_strip all symbols from executable'#010+
|
||||||
'**2XD_try to link dynamic (defines FPC_LINK_DYNAMIC)'#010+
|
'**2XD_try to link dynamic (defines FPC_LINK_D','YNAMIC)'#010+
|
||||||
'**2XS_try to link static (default) (defines FPC_LINK_STATIC)'#010+
|
'**2XS_try to link static (default) (defines FPC_LINK_STATIC)'#010+
|
||||||
'**2XX_try t','o link smart (defines FPC_LINK_SMART)'#010+
|
'**2XX_try to link smart (defines FPC_LINK_SMART)'#010+
|
||||||
'**0*_Processor specific options:'#010+
|
'**0*_Processor specific options:'#010+
|
||||||
'3*1A<x>_output format:'#010+
|
'3*1A<x>_output format:'#010+
|
||||||
'3*2Aas_assemble using GNU AS'#010+
|
'3*2Aas_assemble using GNU AS'#010+
|
||||||
'3*2Anasmcoff_coff (Go32v2) file using Nasm'#010+
|
'3*2Anasmcoff_coff (Go32v2)',' file using Nasm'#010+
|
||||||
'3*2Anasmelf_elf32 (Linux) file using Nasm'#010+
|
'3*2Anasmelf_elf32 (Linux) file using Nasm'#010+
|
||||||
'3*2Awasm_obj file usi','ng Wasm (Watcom)'#010+
|
'3*2Awasm_obj file using Wasm (Watcom)'#010+
|
||||||
'3*2Anasmobj_obj file using Nasm'#010+
|
'3*2Anasmobj_obj file using Nasm'#010+
|
||||||
'3*2Amasm_obj file using Masm (Microsoft)'#010+
|
'3*2Amasm_obj file using Masm (Microsoft)'#010+
|
||||||
'3*2Atasm_obj file using Tasm (Borland)'#010+
|
'3*2Atasm_obj file using Tasm (Borland)'#010+
|
||||||
'3*2Acoff_coff (Go32v2) using internal writer'#010+
|
'3*2Acoff_coff (Go32v2) using in','ternal writer'#010+
|
||||||
'3*2Apecoff_pecoff (Win32) using internal writer'#010+
|
'3*2Apecoff_pecoff (Win32) using internal writer'#010+
|
||||||
'3*1R<x>_assembler ','reading style:'#010+
|
'3*1R<x>_assembler reading style:'#010+
|
||||||
'3*2Ratt_read AT&T style assembler'#010+
|
'3*2Ratt_read AT&T style assembler'#010+
|
||||||
'3*2Rintel_read Intel style assembler'#010+
|
'3*2Rintel_read Intel style assembler'#010+
|
||||||
'3*2Rdirect_copy assembler text directly to assembler file'#010+
|
'3*2Rdirect_copy assembler text directly to assembler file'#010+
|
||||||
'3*1O<x>_optimizations:'#010+
|
'3*1O<x>_optimiza','tions:'#010+
|
||||||
'3*2Og_generate smaller code'#010+
|
'3*2Og_generate smaller code'#010+
|
||||||
'3*2OG_generate faster code (default)'#010+
|
'3*2OG_generate faster code (default)'#010+
|
||||||
'3*2Or_ke','ep certain variables in registers'#010+
|
'3*2Or_keep certain variables in registers'#010+
|
||||||
'3*2Ou_enable uncertain optimizations (see docs)'#010+
|
'3*2Ou_enable uncertain optimizations (see docs)'#010+
|
||||||
'3*2O1_level 1 optimizations (quick optimizations)'#010+
|
'3*2O1_level 1 optimizations (quick optimizations)'#010+
|
||||||
'3*2O2_level 2 optimizations (-O1 + slower optimizations)'#010+
|
'3*2O2_level 2 optimizations ','(-O1 + slower optimizations)'#010+
|
||||||
'3*2O3_level 3 optimizations (-O2 repeatedly, max 5 ','times)'#010+
|
'3*2O3_level 3 optimizations (-O2 repeatedly, max 5 times)'#010+
|
||||||
'3*2Op<x>_target processor:'#010+
|
'3*2Op<x>_target processor:'#010+
|
||||||
'3*3Op1_set target processor to 386/486'#010+
|
'3*3Op1_set target processor to 386/486'#010+
|
||||||
'3*3Op2_set target processor to Pentium/PentiumMMX (tm)'#010+
|
'3*3Op2_set target processor to Pentium/PentiumMMX (tm)'#010+
|
||||||
'3*3Op3_set target processor to PPro/PII/c6x86/K6 (tm)'#010+
|
'3*3Op3_set target processor to P','Pro/PII/c6x86/K6 (tm)'#010+
|
||||||
'3*1T<x>_Target operating system:'#010+
|
'3*1T<x>_Target operating system:'#010+
|
||||||
'3*2Temx_OS/2 via EMX (inc','luding EMX/RSX extender)'#010+
|
'3*2Temx_OS/2 via EMX (including EMX/RSX extender)'#010+
|
||||||
'3*2Tgo32v2_Version 2 of DJ Delorie DOS extender'#010+
|
'3*2Tgo32v2_Version 2 of DJ Delorie DOS extender'#010+
|
||||||
'3*2Tlinux_Linux'#010+
|
'3*2Tlinux_Linux'#010+
|
||||||
'3*2Tnetware_Novell Netware Module (clib)'#010+
|
'3*2Tnetware_Novell Netware Module (clib)'#010+
|
||||||
'3*2Tos2_OS/2 / eComStation'#010+
|
'3*2Tos2_OS/2 / eComStation'#010+
|
||||||
'3*2Tsunos_SunOS/Solaris'#010+
|
'3*2','Tsunos_SunOS/Solaris'#010+
|
||||||
'3*2Twatcom_Watcom compatible DOS extender'#010+
|
'3*2Twatcom_Watcom compatible DOS extender'#010+
|
||||||
'3*2Twdosx_WDOSX D','OS extender'#010+
|
'3*2Twdosx_WDOSX DOS extender'#010+
|
||||||
'3*2Twin32_Windows 32 Bit'#010+
|
'3*2Twin32_Windows 32 Bit'#010+
|
||||||
'3*1W<x>_Win32-like target options'#010+
|
'3*1W<x>_Win32-like target options'#010+
|
||||||
'3*2WB<x>_Set Image base to Hexadecimal <x> value'#010+
|
'3*2WB<x>_Set Image base to Hexadecimal <x> value'#010+
|
||||||
'3*2WC_Specify console type application'#010+
|
'3*2WC_Specify console type application'#010+
|
||||||
'3*2WD_Use DEFFILE to export functions of DLL or EXE'#010+
|
'3','*2WD_Use DEFFILE to export functions of DLL or EXE'#010+
|
||||||
'3*2WF_Specify full-screen typ','e application (OS/2 only)'#010+
|
'3*2WF_Specify full-screen type application (OS/2 only)'#010+
|
||||||
'3*2WG_Specify graphic type application'#010+
|
'3*2WG_Specify graphic type application'#010+
|
||||||
'3*2WN_Do not generate relocation code (necessary for debugging)'#010+
|
'3*2WN_Do not generate relocation code (necessary for debugging)'#010+
|
||||||
'3*2WR_Generate relocation code'#010+
|
'3*2WR_Generate relocation code'#010,
|
||||||
'6*1A<x>_output format'#010+
|
'6*1A<x>_output format'#010+
|
||||||
'6*2Aas_Unix o-file using GNU AS'#010+
|
'6*2Aas_Unix o-file using GNU AS'#010+
|
||||||
'6*2Agas_GNU Motorola assem','bler'#010+
|
'6*2Agas_GNU Motorola assembler'#010+
|
||||||
'6*2Amit_MIT Syntax (old GAS)'#010+
|
'6*2Amit_MIT Syntax (old GAS)'#010+
|
||||||
'6*2Amot_Standard Motorola assembler'#010+
|
'6*2Amot_Standard Motorola assembler'#010+
|
||||||
'6*1O_optimizations:'#010+
|
'6*1O_optimizations:'#010+
|
||||||
'6*2Oa_turn on the optimizer'#010+
|
'6*2Oa_turn on the optimizer'#010+
|
||||||
'6*2Og_generate smaller code'#010+
|
'6*2Og_generate smaller code'#010+
|
||||||
'6*2OG_generate faster code (default)'#010+
|
'6*2OG_generate',' faster code (default)'#010+
|
||||||
'6*2Ox_optimize maximum (still BUGGY!!!)'#010+
|
'6*2Ox_optimize maximum (still BUGGY!!!)'#010+
|
||||||
'6*2O0_set target ','processor to a MC68000'#010+
|
'6*2O0_set target processor to a MC68000'#010+
|
||||||
'6*2O2_set target processor to a MC68020+ (default)'#010+
|
'6*2O2_set target processor to a MC68020+ (default)'#010+
|
||||||
'6*1R<x>_assembler reading style:'#010+
|
'6*1R<x>_assembler reading style:'#010+
|
||||||
'6*2RMOT_read motorola style assembler'#010+
|
'6*2RMOT_read motorola style assembler'#010+
|
||||||
'6*1T<x>_Target operating system:'#010+
|
'6*1T<x>_Target ','operating system:'#010+
|
||||||
'6*2Tamiga_Commodore Amiga'#010+
|
'6*2Tamiga_Commodore Amiga'#010+
|
||||||
'6*2Tatari_Atari ST/STe/TT'#010+
|
'6*2Tatari_Atari ST/STe/TT'#010+
|
||||||
'6*2Tlinux_','Linux-68k'#010+
|
'6*2Tlinux_Linux-68k'#010+
|
||||||
'6*2Tmacos_Macintosh m68k'#010+
|
'6*2Tmacos_Macintosh m68k'#010+
|
||||||
'6*2Tpalmos_PalmOS'#010+
|
'6*2Tpalmos_PalmOS'#010+
|
||||||
'P*1T<x>_Target operating system:'#010+
|
'P*1T<x>_Target operating system:'#010+
|
||||||
'P*2Tlinux_Linux on PowerPC'#010+
|
'P*2Tlinux_Linux on PowerPC'#010+
|
||||||
'P*2Tmacos_MacOS (classic) on PowerPC'#010+
|
'P*2Tmacos_MacOS (classic) on PowerPC'#010+
|
||||||
'**1*_'#010+
|
'**1*_'#010+
|
||||||
'**1?_shows this help'#010+
|
'**1?','_shows this help'#010+
|
||||||
'**1h_shows this help without waiting'#000
|
'**1h_shows this help without waiting'#000
|
||||||
);
|
);
|
||||||
|
@ -133,7 +133,9 @@ interface
|
|||||||
procedure ResolveRef(var op:toper);
|
procedure ResolveRef(var op:toper);
|
||||||
var
|
var
|
||||||
sym : tvarsym;
|
sym : tvarsym;
|
||||||
|
{$ifdef x86}
|
||||||
scale : byte;
|
scale : byte;
|
||||||
|
{$endif x86}
|
||||||
getoffset : boolean;
|
getoffset : boolean;
|
||||||
indexreg : tregister;
|
indexreg : tregister;
|
||||||
sofs : longint;
|
sofs : longint;
|
||||||
@ -142,7 +144,9 @@ interface
|
|||||||
begin
|
begin
|
||||||
sofs:=op.localsymofs;
|
sofs:=op.localsymofs;
|
||||||
indexreg:=op.localindexreg;
|
indexreg:=op.localindexreg;
|
||||||
|
{$ifdef x86}
|
||||||
scale:=op.localscale;
|
scale:=op.localscale;
|
||||||
|
{$endif x86}
|
||||||
getoffset:=op.localgetoffset;
|
getoffset:=op.localgetoffset;
|
||||||
sym:=tvarsym(pointer(op.localsym));
|
sym:=tvarsym(pointer(op.localsym));
|
||||||
case sym.localloc.loc of
|
case sym.localloc.loc of
|
||||||
@ -170,9 +174,9 @@ interface
|
|||||||
reference_reset_base(op.ref^,sym.localloc.reference.index,
|
reference_reset_base(op.ref^,sym.localloc.reference.index,
|
||||||
sym.localloc.reference.offset+sofs);
|
sym.localloc.reference.offset+sofs);
|
||||||
op.ref^.index:=indexreg;
|
op.ref^.index:=indexreg;
|
||||||
{$ifdef i386}
|
{$ifdef x86}
|
||||||
op.ref^.scalefactor:=scale;
|
op.ref^.scalefactor:=scale;
|
||||||
{$endif i386}
|
{$endif x86}
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
LOC_REGISTER :
|
LOC_REGISTER :
|
||||||
@ -407,7 +411,15 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.50 2003-11-04 15:35:13 peter
|
Revision 1.51 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.50 2003/11/04 15:35:13 peter
|
||||||
* fix for referencecounted temps
|
* fix for referencecounted temps
|
||||||
|
|
||||||
Revision 1.49 2003/11/02 13:30:05 jonas
|
Revision 1.49 2003/11/02 13:30:05 jonas
|
||||||
|
@ -200,7 +200,7 @@ implementation
|
|||||||
cg.a_paramfpu_reg(exprasmlist,def_cgsize(left.resulttype.def),left.location.register,tempparaloc);
|
cg.a_paramfpu_reg(exprasmlist,def_cgsize(left.resulttype.def),left.location.register,tempparaloc);
|
||||||
LOC_REFERENCE,
|
LOC_REFERENCE,
|
||||||
LOC_CREFERENCE :
|
LOC_CREFERENCE :
|
||||||
cg.a_paramfpu_ref(exprasmlist,def_cgsize(left.resulttype.def),left.location.reference,tempparaloc)
|
cg.a_paramfpu_ref(exprasmlist,def_cgsize(left.resulttype.def),left.location.reference,tempparaloc);
|
||||||
else
|
else
|
||||||
internalerror(200204243);
|
internalerror(200204243);
|
||||||
end;
|
end;
|
||||||
@ -1133,7 +1133,15 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.137 2003-11-04 19:03:54 peter
|
Revision 1.138 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.137 2003/11/04 19:03:54 peter
|
||||||
* fixes for temp type patch
|
* fixes for temp type patch
|
||||||
|
|
||||||
Revision 1.136 2003/11/04 15:35:13 peter
|
Revision 1.136 2003/11/04 15:35:13 peter
|
||||||
|
@ -719,6 +719,10 @@ implementation
|
|||||||
case hsym.localloc.loc of
|
case hsym.localloc.loc of
|
||||||
LOC_REFERENCE :
|
LOC_REFERENCE :
|
||||||
begin
|
begin
|
||||||
|
{ this code is only executed before the code for the body and the entry/exit code is generated
|
||||||
|
so we're allowed to include pi_do_call here; after pass1 is run, this isn't allowed anymore
|
||||||
|
}
|
||||||
|
include(current_procinfo.flags,pi_do_call);
|
||||||
reference_reset_base(href2,hsym.localloc.reference.index,hsym.localloc.reference.offset);
|
reference_reset_base(href2,hsym.localloc.reference.index,hsym.localloc.reference.offset);
|
||||||
cg.g_copyvaluepara_openarray(list,href1,href2,tarraydef(tvarsym(p).vartype.def).elesize)
|
cg.g_copyvaluepara_openarray(list,href1,href2,tarraydef(tvarsym(p).vartype.def).elesize)
|
||||||
end
|
end
|
||||||
@ -890,7 +894,19 @@ implementation
|
|||||||
reference_reset_base(href,tvarsym(p).localloc.reference.index,tvarsym(p).localloc.reference.offset);
|
reference_reset_base(href,tvarsym(p).localloc.reference.index,tvarsym(p).localloc.reference.offset);
|
||||||
cg.g_decrrefcount(list,tvarsym(p).vartype.def,href,is_open_array(tvarsym(p).vartype.def));
|
cg.g_decrrefcount(list,tvarsym(p).vartype.def,href,is_open_array(tvarsym(p).vartype.def));
|
||||||
end;
|
end;
|
||||||
end;
|
end
|
||||||
|
else if (tsym(p).typ=varsym) and
|
||||||
|
(is_open_array(tvarsym(p).vartype.def) or
|
||||||
|
is_array_of_const(tvarsym(p).vartype.def)) then
|
||||||
|
begin
|
||||||
|
{ cdecl functions don't have a high pointer so it is not possible to generate
|
||||||
|
a local copy }
|
||||||
|
if not(current_procinfo.procdef.proccalloption in [pocall_cdecl,pocall_cppdecl]) then
|
||||||
|
begin
|
||||||
|
reference_reset_base(href,tvarsym(p).localloc.reference.index,tvarsym(p).localloc.reference.offset);
|
||||||
|
cg.g_releasevaluepara_openarray(list,href);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1945,7 +1961,15 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.164 2003-11-04 19:03:50 peter
|
Revision 1.165 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.164 2003/11/04 19:03:50 peter
|
||||||
* fixes for temp type patch
|
* fixes for temp type patch
|
||||||
|
|
||||||
Revision 1.163 2003/11/04 15:35:13 peter
|
Revision 1.163 2003/11/04 15:35:13 peter
|
||||||
|
@ -370,9 +370,7 @@ var
|
|||||||
j,l : longint;
|
j,l : longint;
|
||||||
d : DirStr;
|
d : DirStr;
|
||||||
e : ExtStr;
|
e : ExtStr;
|
||||||
{$ifdef arm}
|
|
||||||
s : string;
|
s : string;
|
||||||
{$endif arm}
|
|
||||||
forceasm : tasm;
|
forceasm : tasm;
|
||||||
begin
|
begin
|
||||||
if opt='' then
|
if opt='' then
|
||||||
@ -495,26 +493,13 @@ begin
|
|||||||
include(initmoduleswitches,cs_fp_emulation);
|
include(initmoduleswitches,cs_fp_emulation);
|
||||||
end;
|
end;
|
||||||
{$endif cpufpemu}
|
{$endif cpufpemu}
|
||||||
{$ifdef arm}
|
|
||||||
'f' :
|
'f' :
|
||||||
begin
|
begin
|
||||||
s:=upper(copy(more,j+1,length(more)-j));
|
s:=upper(copy(more,j+1,length(more)-j));
|
||||||
if s='SOFT' then
|
if not(SetFpuType(s,true)) then
|
||||||
initfputype:=fpu_soft
|
|
||||||
else if s='FPA' then
|
|
||||||
initfputype:=fpu_fpa
|
|
||||||
else if s='FPA10' then
|
|
||||||
initfputype:=fpu_fpa10
|
|
||||||
else if s='FPA11' then
|
|
||||||
initfputype:=fpu_fpa11
|
|
||||||
else if s='VFP' then
|
|
||||||
initfputype:=fpu_vfp
|
|
||||||
else
|
|
||||||
IllegalPara(opt);
|
IllegalPara(opt);
|
||||||
break;
|
break;
|
||||||
end;
|
end;
|
||||||
{$endif arm}
|
|
||||||
|
|
||||||
'h' :
|
'h' :
|
||||||
begin
|
begin
|
||||||
val(copy(more,j+1,length(more)-j),heapsize,code);
|
val(copy(more,j+1,length(more)-j),heapsize,code);
|
||||||
@ -540,6 +525,13 @@ begin
|
|||||||
exclude(initlocalswitches,cs_check_overflow)
|
exclude(initlocalswitches,cs_check_overflow)
|
||||||
Else
|
Else
|
||||||
include(initlocalswitches,cs_check_overflow);
|
include(initlocalswitches,cs_check_overflow);
|
||||||
|
'p' :
|
||||||
|
begin
|
||||||
|
s:=upper(copy(more,j+1,length(more)-j));
|
||||||
|
if not(SetProcessor(s,true)) then
|
||||||
|
IllegalPara(opt);
|
||||||
|
break;
|
||||||
|
end;
|
||||||
'r' :
|
'r' :
|
||||||
If UnsetBool(More, j) then
|
If UnsetBool(More, j) then
|
||||||
exclude(initlocalswitches,cs_check_range)
|
exclude(initlocalswitches,cs_check_range)
|
||||||
@ -1991,7 +1983,15 @@ finalization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.113 2003-10-22 15:40:44 marco
|
Revision 1.114 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.113 2003/10/22 15:40:44 marco
|
||||||
* -Xc -Xr support
|
* -Xc -Xr support
|
||||||
|
|
||||||
Revision 1.112 2003/10/18 09:14:18 hajny
|
Revision 1.112 2003/10/18 09:14:18 hajny
|
||||||
|
@ -74,6 +74,7 @@ implementation
|
|||||||
{ global }
|
{ global }
|
||||||
globtype,globals,verbose,
|
globtype,globals,verbose,
|
||||||
systems,
|
systems,
|
||||||
|
cpuinfo,
|
||||||
{ aasm }
|
{ aasm }
|
||||||
aasmbase,
|
aasmbase,
|
||||||
{ symtable }
|
{ symtable }
|
||||||
@ -1190,7 +1191,7 @@ type
|
|||||||
end;
|
end;
|
||||||
const
|
const
|
||||||
{Should contain the number of procedure directives we support.}
|
{Should contain the number of procedure directives we support.}
|
||||||
num_proc_directives=34;
|
num_proc_directives=35;
|
||||||
proc_direcdata:array[1..num_proc_directives] of proc_dir_rec=
|
proc_direcdata:array[1..num_proc_directives] of proc_dir_rec=
|
||||||
(
|
(
|
||||||
(
|
(
|
||||||
@ -1437,6 +1438,17 @@ const
|
|||||||
mutexclpocall : [pocall_internproc];
|
mutexclpocall : [pocall_internproc];
|
||||||
mutexclpotype : [potype_constructor,potype_destructor];
|
mutexclpotype : [potype_constructor,potype_destructor];
|
||||||
mutexclpo : [po_external]
|
mutexclpo : [po_external]
|
||||||
|
),(
|
||||||
|
idtok:_SOFTFLOAT;
|
||||||
|
pd_flags : [pd_interface,pd_implemen,pd_body,pd_procvar];
|
||||||
|
handler : nil;
|
||||||
|
pocall : pocall_softfloat;
|
||||||
|
pooption : [];
|
||||||
|
mutexclpocall : [];
|
||||||
|
mutexclpotype : [potype_constructor,potype_destructor];
|
||||||
|
{ it's available with po_external because the libgcc floating point routines on the arm
|
||||||
|
uses this calling convention }
|
||||||
|
mutexclpo : []
|
||||||
),(
|
),(
|
||||||
idtok:_STATIC;
|
idtok:_STATIC;
|
||||||
pd_flags : [pd_interface,pd_object,pd_notobjintf];
|
pd_flags : [pd_interface,pd_object,pd_notobjintf];
|
||||||
@ -1586,6 +1598,13 @@ const
|
|||||||
proccalloptionStr[pd.proccalloption],
|
proccalloptionStr[pd.proccalloption],
|
||||||
proccalloptionStr[proc_direcdata[p].pocall]);
|
proccalloptionStr[proc_direcdata[p].pocall]);
|
||||||
end;
|
end;
|
||||||
|
{ check if the target processor supports this calling convention }
|
||||||
|
if not(proc_direcdata[p].pocall in supported_calling_conventions) then
|
||||||
|
begin
|
||||||
|
Message1(parser_e_illegal_calling_convention,proccalloptionStr[proc_direcdata[p].pocall]);
|
||||||
|
{ recover }
|
||||||
|
proc_direcdata[p].pocall:=pocall_stdcall;
|
||||||
|
end;
|
||||||
pd.proccalloption:=proc_direcdata[p].pocall;
|
pd.proccalloption:=proc_direcdata[p].pocall;
|
||||||
include(pd.procoptions,po_hascallingconvention);
|
include(pd.procoptions,po_hascallingconvention);
|
||||||
end;
|
end;
|
||||||
@ -2132,7 +2151,15 @@ const
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.151 2003-11-03 17:47:30 peter
|
Revision 1.152 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.151 2003/11/03 17:47:30 peter
|
||||||
* insert framepointer as voidpointer instead of returntype
|
* insert framepointer as voidpointer instead of returntype
|
||||||
|
|
||||||
Revision 1.150 2003/10/30 16:23:13 peter
|
Revision 1.150 2003/10/30 16:23:13 peter
|
||||||
|
@ -301,7 +301,7 @@ implementation
|
|||||||
if (m_tp_procvar in aktmodeswitches) and
|
if (m_tp_procvar in aktmodeswitches) and
|
||||||
(token<>_ASSIGNMENT) and
|
(token<>_ASSIGNMENT) and
|
||||||
(not got_addrn) and
|
(not got_addrn) and
|
||||||
(block_type=bt_general) then
|
(block_type=bt_body) then
|
||||||
begin
|
begin
|
||||||
{ ignore vecn,subscriptn }
|
{ ignore vecn,subscriptn }
|
||||||
hp:=p;
|
hp:=p;
|
||||||
@ -2478,7 +2478,15 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.138 2003-11-06 15:54:32 peter
|
Revision 1.139 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.138 2003/11/06 15:54:32 peter
|
||||||
* fixed calling classmethod for other object from classmethod
|
* fixed calling classmethod for other object from classmethod
|
||||||
|
|
||||||
Revision 1.137 2003/11/04 16:42:13 peter
|
Revision 1.137 2003/11/04 16:42:13 peter
|
||||||
|
@ -69,12 +69,32 @@ Const
|
|||||||
{ for linux: }
|
{ for linux: }
|
||||||
jmp_buf_size = 232;
|
jmp_buf_size = 232;
|
||||||
|
|
||||||
|
{ calling conventions supported by the code generator }
|
||||||
|
supported_calling_conventions = [
|
||||||
|
pocall_internproc,
|
||||||
|
pocall_compilerproc,
|
||||||
|
pocall_inline,
|
||||||
|
pocall_stdcall,
|
||||||
|
{ the difference to stdcall is only the name mangling }
|
||||||
|
pocall_cdecl,
|
||||||
|
{ the difference to stdcall is only the name mangling }
|
||||||
|
pocall_cppdecl
|
||||||
|
];
|
||||||
|
|
||||||
Implementation
|
Implementation
|
||||||
|
|
||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.14 2003-09-03 11:18:37 florian
|
Revision 1.15 2003-11-07 15:58:33 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.14 2003/09/03 11:18:37 florian
|
||||||
* fixed arm concatcopy
|
* fixed arm concatcopy
|
||||||
+ arm support in the common compiler sources added
|
+ arm support in the common compiler sources added
|
||||||
* moved some generic cg code around
|
* moved some generic cg code around
|
||||||
|
@ -903,8 +903,12 @@ implementation
|
|||||||
procedure tcgprocinfo.parse_body;
|
procedure tcgprocinfo.parse_body;
|
||||||
var
|
var
|
||||||
oldprocinfo : tprocinfo;
|
oldprocinfo : tprocinfo;
|
||||||
|
oldblock_type : tblock_type;
|
||||||
begin
|
begin
|
||||||
oldprocinfo:=current_procinfo;
|
oldprocinfo:=current_procinfo;
|
||||||
|
oldblock_type:=block_type;
|
||||||
|
{ reset break and continue labels }
|
||||||
|
block_type:=bt_body;
|
||||||
|
|
||||||
current_procinfo:=self;
|
current_procinfo:=self;
|
||||||
|
|
||||||
@ -918,8 +922,6 @@ implementation
|
|||||||
else if (procdef.parast.symtablelevel=normal_function_level) then
|
else if (procdef.parast.symtablelevel=normal_function_level) then
|
||||||
allow_only_static:=false;
|
allow_only_static:=false;
|
||||||
|
|
||||||
{ reset break and continue labels }
|
|
||||||
block_type:=bt_general;
|
|
||||||
{$ifdef state_tracking}
|
{$ifdef state_tracking}
|
||||||
{ aktstate:=Tstate_storage.create;}
|
{ aktstate:=Tstate_storage.create;}
|
||||||
{$endif state_tracking}
|
{$endif state_tracking}
|
||||||
@ -1002,6 +1004,8 @@ implementation
|
|||||||
if (current_procinfo.procdef.parast.symtablelevel=normal_function_level) then
|
if (current_procinfo.procdef.parast.symtablelevel=normal_function_level) then
|
||||||
allow_only_static:=false;
|
allow_only_static:=false;
|
||||||
current_procinfo:=oldprocinfo;
|
current_procinfo:=oldprocinfo;
|
||||||
|
|
||||||
|
block_type:=oldblock_type;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1308,7 +1312,15 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.169 2003-10-31 15:52:18 peter
|
Revision 1.170 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.169 2003/10/31 15:52:18 peter
|
||||||
* fix crash with fail in constructor
|
* fix crash with fail in constructor
|
||||||
|
|
||||||
Revision 1.168 2003/10/30 16:22:40 peter
|
Revision 1.168 2003/10/30 16:22:40 peter
|
||||||
|
@ -1781,7 +1781,7 @@ implementation
|
|||||||
begin
|
begin
|
||||||
so:=Taicpu_abstract(p).oper[i]^.shifterop;
|
so:=Taicpu_abstract(p).oper[i]^.shifterop;
|
||||||
if so^.rs<>NR_NO then
|
if so^.rs<>NR_NO then
|
||||||
setsupreg(so^.rs,table[getsupreg(so^.rs)]);
|
setsupreg(so^.rs,reginfo[getsupreg(so^.rs)].colour);
|
||||||
end;
|
end;
|
||||||
{$endif arm}
|
{$endif arm}
|
||||||
end;
|
end;
|
||||||
@ -1820,7 +1820,15 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.93 2003-10-30 16:22:40 peter
|
Revision 1.94 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.93 2003/10/30 16:22:40 peter
|
||||||
* call firstpass before allocation and codegeneration is started
|
* call firstpass before allocation and codegeneration is started
|
||||||
* move leftover code from pass_2.generatecode() to psub
|
* move leftover code from pass_2.generatecode() to psub
|
||||||
|
|
||||||
|
@ -288,6 +288,10 @@ implementation
|
|||||||
do_message(scan_f_user_defined);
|
do_message(scan_f_user_defined);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure dir_fputype;
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
procedure dir_goto;
|
procedure dir_goto;
|
||||||
begin
|
begin
|
||||||
do_moduleswitch(cs_support_goto);
|
do_moduleswitch(cs_support_goto);
|
||||||
@ -983,7 +987,15 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.26 2003-09-17 22:30:19 olle
|
Revision 1.27 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.26 2003/09/17 22:30:19 olle
|
||||||
+ support for a different set of compiler directives under $MODE MAC
|
+ support for a different set of compiler directives under $MODE MAC
|
||||||
+ added mac directives $SETC $IFC $ELSEC $ENDC
|
+ added mac directives $SETC $IFC $ELSEC $ENDC
|
||||||
|
|
||||||
|
@ -61,12 +61,30 @@ const
|
|||||||
{$warning jmp_buf_size not set!}
|
{$warning jmp_buf_size not set!}
|
||||||
JMP_BUF_SIZE = 4; // 4 is used temporary to remove AllocTemp warning
|
JMP_BUF_SIZE = 4; // 4 is used temporary to remove AllocTemp warning
|
||||||
|
|
||||||
|
{ calling conventions supported by the code generator }
|
||||||
|
supported_calling_conventions = [
|
||||||
|
pocall_internproc,
|
||||||
|
pocall_compilerproc,
|
||||||
|
pocall_inline,
|
||||||
|
pocall_stdcall,
|
||||||
|
pocall_cdecl,
|
||||||
|
pocall_cppdecl
|
||||||
|
];
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.9 2003-09-03 15:55:01 peter
|
Revision 1.10 2003-11-07 15:58:33 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.9 2003/09/03 15:55:01 peter
|
||||||
* NEWRA branch merged
|
* NEWRA branch merged
|
||||||
|
|
||||||
Revision 1.8 2003/06/17 16:35:42 peter
|
Revision 1.8 2003/06/17 16:35:42 peter
|
||||||
|
@ -343,7 +343,7 @@ const
|
|||||||
savestdregs_pocalls = [
|
savestdregs_pocalls = [
|
||||||
pocall_cdecl,pocall_cppdecl,pocall_palmossyscall,
|
pocall_cdecl,pocall_cppdecl,pocall_palmossyscall,
|
||||||
pocall_stdcall,pocall_safecall,pocall_compilerproc,
|
pocall_stdcall,pocall_safecall,pocall_compilerproc,
|
||||||
pocall_register
|
pocall_register,pocall_softfloat
|
||||||
];
|
];
|
||||||
|
|
||||||
clearstack_pocalls = [
|
clearstack_pocalls = [
|
||||||
@ -377,7 +377,15 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.69 2003-10-28 15:36:01 peter
|
Revision 1.70 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.69 2003/10/28 15:36:01 peter
|
||||||
* absolute to object field supported, fixes tb0458
|
* absolute to object field supported, fixes tb0458
|
||||||
|
|
||||||
Revision 1.68 2003/10/08 19:19:45 peter
|
Revision 1.68 2003/10/08 19:19:45 peter
|
||||||
|
@ -201,6 +201,7 @@ type
|
|||||||
_PROCEDURE,
|
_PROCEDURE,
|
||||||
_PROTECTED,
|
_PROTECTED,
|
||||||
_PUBLISHED,
|
_PUBLISHED,
|
||||||
|
_SOFTFLOAT,
|
||||||
_THREADVAR,
|
_THREADVAR,
|
||||||
_DEPRECATED,
|
_DEPRECATED,
|
||||||
_DESTRUCTOR,
|
_DESTRUCTOR,
|
||||||
@ -423,6 +424,7 @@ const
|
|||||||
(str:'PROCEDURE' ;special:false;keyword:m_all;op:NOTOKEN),
|
(str:'PROCEDURE' ;special:false;keyword:m_all;op:NOTOKEN),
|
||||||
(str:'PROTECTED' ;special:false;keyword:m_none;op:NOTOKEN),
|
(str:'PROTECTED' ;special:false;keyword:m_none;op:NOTOKEN),
|
||||||
(str:'PUBLISHED' ;special:false;keyword:m_none;op:NOTOKEN),
|
(str:'PUBLISHED' ;special:false;keyword:m_none;op:NOTOKEN),
|
||||||
|
(str:'SOFTFLOAT' ;special:false;keyword:m_none;op:NOTOKEN),
|
||||||
(str:'THREADVAR' ;special:false;keyword:m_class;op:NOTOKEN),
|
(str:'THREADVAR' ;special:false;keyword:m_class;op:NOTOKEN),
|
||||||
(str:'DEPRECATED' ;special:false;keyword:m_all;op:NOTOKEN),
|
(str:'DEPRECATED' ;special:false;keyword:m_all;op:NOTOKEN),
|
||||||
(str:'DESTRUCTOR' ;special:false;keyword:m_all;op:NOTOKEN),
|
(str:'DESTRUCTOR' ;special:false;keyword:m_all;op:NOTOKEN),
|
||||||
@ -502,7 +504,15 @@ end;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.24 2003-09-07 22:09:35 peter
|
Revision 1.25 2003-11-07 15:58:32 florian
|
||||||
|
* Florian's culmutative nr. 1; contains:
|
||||||
|
- invalid calling conventions for a certain cpu are rejected
|
||||||
|
- arm softfloat calling conventions
|
||||||
|
- -Sp for cpu dependend code generation
|
||||||
|
- several arm fixes
|
||||||
|
- remaining code for value open array paras on heap
|
||||||
|
|
||||||
|
Revision 1.24 2003/09/07 22:09:35 peter
|
||||||
* preparations for different default calling conventions
|
* preparations for different default calling conventions
|
||||||
* various RA fixes
|
* various RA fixes
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user