diff --git a/compiler/cg68kflw.pas b/compiler/cg68kflw.pas index 92c9444899..156dab539e 100644 --- a/compiler/cg68kflw.pas +++ b/compiler/cg68kflw.pas @@ -770,7 +770,7 @@ do_jmp: { also reset to zero in the stack } new(hp); reset_reference(hp^); - hp^.offset:=procinfo^.ESI_offset; + hp^.offset:=procinfo^.selfpointer_offset; hp^.base:=procinfo^.framepointer; exprasmlist^.concat(new(paicpu,op_reg_ref(A_MOVE,S_L,R_A5,hp))); exprasmlist^.concat(new(pai_labeled,init(A_JMP,quickexitlabel))); @@ -779,7 +779,11 @@ do_jmp: end. { $Log$ - Revision 1.11 1999-09-27 23:44:48 peter + Revision 1.12 1999-11-09 23:06:44 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.11 1999/09/27 23:44:48 peter * procinfo is now a pointer * support for result setting in sub procedure diff --git a/compiler/cga68k.pas b/compiler/cga68k.pas index 4b905a0734..8c8798d251 100644 --- a/compiler/cga68k.pas +++ b/compiler/cga68k.pas @@ -886,7 +886,7 @@ begin if assigned(procinfo^._class) then procinfo^.aktexitcode^.concat(new(pai_stabs,init(strpnew( '"$t:v'+procinfo^._class^.numberstring+'",'+ - tostr(N_PSYM)+',0,0,'+tostr(procinfo^.esi_offset))))); + tostr(N_PSYM)+',0,0,'+tostr(procinfo^.selfpointer_offset))))); if (porddef(aktprocsym^.definition^.retdef) <> voiddef) then procinfo^.aktexitcode^.concat(new(pai_stabs,init(strpnew( @@ -1166,7 +1166,7 @@ end; end; new(hp); reset_reference(hp^); - hp^.offset:=p^.ESI_offset; + hp^.offset:=p^.selfpointer_offset; hp^.base:=R_A5; exprasmlist^.concat(new(paicpu,op_ref_reg(A_MOVE,S_L,hp,R_A5))); end @@ -1174,7 +1174,7 @@ end; begin new(hp); reset_reference(hp^); - hp^.offset:=procinfo^.ESI_offset; + hp^.offset:=procinfo^.selfpointer_offset; hp^.base:=procinfo^.framepointer; exprasmlist^.concat(new(paicpu,op_ref_reg(A_MOVE,S_L,hp,R_A5))); end; @@ -1391,7 +1391,11 @@ end; end. { $Log$ - Revision 1.36 1999-11-06 14:34:18 peter + Revision 1.37 1999-11-09 23:06:44 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.36 1999/11/06 14:34:18 peter * truncated log to 20 revs Revision 1.35 1999/09/27 23:44:48 peter diff --git a/compiler/cgai386.pas b/compiler/cgai386.pas index 0dbc1f06e0..6c9b9c1404 100644 --- a/compiler/cgai386.pas +++ b/compiler/cgai386.pas @@ -2290,7 +2290,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister); end; new(hp); reset_reference(hp^); - hp^.offset:=p^.ESI_offset; + hp^.offset:=p^.selfpointer_offset; hp^.base:=R_ESI; emit_ref_reg(A_MOV,S_L,hp,R_ESI); end @@ -2298,7 +2298,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister); begin new(hp); reset_reference(hp^); - hp^.offset:=procinfo^.ESI_offset; + hp^.offset:=procinfo^.selfpointer_offset; hp^.base:=procinfo^.framepointer; emit_ref_reg(A_MOV,S_L,hp,R_ESI); end; @@ -2889,7 +2889,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister); begin new(hr); reset_reference(hr^); - hr^.offset:=procinfo^.ESI_offset; + hr^.offset:=procinfo^.selfpointer_offset; hr^.base:=procinfo^.framepointer; exprasmlist^.insert(new(paicpu,op_ref_reg(A_MOV,S_L,hr,R_ESI))); end; @@ -3374,7 +3374,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister); not assigned(procinfo^.parent^._class)) then exprasmlist^.concat(new(pai_stabs,init(strpnew( '"$t:v'+procinfo^._class^.numberstring+'",'+ - tostr(N_PSYM)+',0,0,'+tostr(procinfo^.esi_offset))))) + tostr(N_PSYM)+',0,0,'+tostr(procinfo^.selfpointer_offset))))) else exprasmlist^.concat(new(pai_stabs,init(strpnew( '"$t:r'+procinfo^._class^.numberstring+'",'+ @@ -3447,7 +3447,11 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister); end. { $Log$ - Revision 1.57 1999-11-06 14:34:19 peter + Revision 1.58 1999-11-09 23:06:44 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.57 1999/11/06 14:34:19 peter * truncated log to 20 revs Revision 1.56 1999/10/25 12:18:11 peter diff --git a/compiler/cpubase.pas b/compiler/cpubase.pas index c67e51caf1..0fd7e1c867 100644 --- a/compiler/cpubase.pas +++ b/compiler/cpubase.pas @@ -514,17 +514,15 @@ const max_scratch_regs = 1; -{$ifndef noopt} { low and high of the available maximum width integer general purpose } { registers } - LoGPReg = R_EAX; - HiGPReg = R_EDI; + LoGPReg = R_EAX; + HiGPReg = R_EDI; { low and high of every possible width general purpose register (same as } { above on most architctures apart from the 80x86) } - LoReg = R_EAX; - HiReg = R_BL; -{$endif noopt} + LoReg = R_EAX; + HiReg = R_BL; cpuflags = []; @@ -889,7 +887,11 @@ end; end. { $Log$ - Revision 1.16 1999-11-06 14:34:20 peter + Revision 1.17 1999-11-09 23:06:45 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.16 1999/11/06 14:34:20 peter * truncated log to 20 revs Revision 1.15 1999/10/27 16:11:28 peter diff --git a/compiler/hcodegen.pas b/compiler/hcodegen.pas index bf34670633..932f22e0bb 100644 --- a/compiler/hcodegen.pas +++ b/compiler/hcodegen.pas @@ -67,7 +67,7 @@ implementation { frame pointer offset } framepointer_offset : longint; { self pointer offset } - ESI_offset : longint; + selfpointer_offset : longint; { result value offset } retoffset : longint; @@ -374,7 +374,11 @@ end. { $Log$ - Revision 1.47 1999-11-06 14:34:21 peter + Revision 1.48 1999-11-09 23:06:45 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.47 1999/11/06 14:34:21 peter * truncated log to 20 revs Revision 1.46 1999/10/21 14:18:54 peter diff --git a/compiler/options.pas b/compiler/options.pas index 816dd741c1..b1be599925 100644 --- a/compiler/options.pas +++ b/compiler/options.pas @@ -1068,15 +1068,20 @@ begin {$ifdef m68k} def_symbol('CPU68'); {$endif} + +{ new processor stuff } +{$ifdef i386} + def_symbol('CPUI386'); +{$endif} +{$ifdef m68k} + def_symbol('CPU68K'); +{$endif} {$ifdef ALPHA} def_symbol('CPUALPHA'); {$endif} {$ifdef powerpc} def_symbol('CPUPOWERPC'); {$endif} -{$ifdef m68k} - def_symbol('CPU68K'); -{$endif} { get default messagefile } {$ifdef Delphi} @@ -1251,7 +1256,11 @@ end; end. { $Log$ - Revision 1.33 1999-11-06 14:34:21 peter + Revision 1.34 1999-11-09 23:06:45 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.33 1999/11/06 14:34:21 peter * truncated log to 20 revs Revision 1.32 1999/11/04 23:13:25 peter diff --git a/compiler/pass_2.pas b/compiler/pass_2.pas index a26bf65097..92a728257d 100644 --- a/compiler/pass_2.pas +++ b/compiler/pass_2.pas @@ -464,7 +464,7 @@ implementation { calc parameter distance new } dec(procinfo^.framepointer_offset,4); - dec(procinfo^.ESI_offset,4); + dec(procinfo^.selfpointer_offset,4); { is this correct ???} { retoffset can be negativ for results in eax !! } @@ -697,7 +697,11 @@ implementation end. { $Log$ - Revision 1.41 1999-11-06 14:34:21 peter + Revision 1.42 1999-11-09 23:06:45 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.41 1999/11/06 14:34:21 peter * truncated log to 20 revs Revision 1.40 1999/09/27 23:44:52 peter diff --git a/compiler/pdecl.pas b/compiler/pdecl.pas index 1e5e59f599..712a8217da 100644 --- a/compiler/pdecl.pas +++ b/compiler/pdecl.pas @@ -117,11 +117,7 @@ unit pdecl; {$else} aktprocdef^.procoptions:=aktprocdef^.procoptions+[po_containsself]; {$endif} -{$ifdef newcg} inc(procinfo^.selfpointer_offset,vs^.address); - {$else newcg} - inc(procinfo^.ESI_offset,vs^.address); - {$endif newcg} end; consume(idtoken); consume(_COLON); @@ -1190,7 +1186,11 @@ unit pdecl; end. { $Log$ - Revision 1.169 1999-11-09 12:58:29 peter + Revision 1.170 1999-11-09 23:06:45 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.169 1999/11/09 12:58:29 peter * support absolute unit.variable Revision 1.168 1999/11/06 14:34:21 peter diff --git a/compiler/psub.pas b/compiler/psub.pas index faeca169a1..451a1e5c86 100644 --- a/compiler/psub.pas +++ b/compiler/psub.pas @@ -65,18 +65,22 @@ uses {$ifdef GDB} ,gdb {$endif GDB} -{$ifdef i386} -{$ifndef newcg} - ,tgeni386 - ,cgai386 -{$endif newcg} - {$ifndef NoOpt} - ,aopt386 +{$ifdef newcg} + {$ifndef NOOPT} + ,aopt {$endif} -{$endif} -{$ifdef m68k} - ,tgen68k,cga68k -{$endif} +{$else} + {$ifdef i386} + ,tgeni386 + ,cgai386 + {$ifndef NOOPT} + ,aopt386 + {$endif} + {$endif} + {$ifdef m68k} + ,tgen68k,cga68k + {$endif} +{$endif newcg} { parser specific stuff } ,pbase,ptype,pdecl,pexpr,pstatmnt {$ifdef newcg} @@ -292,11 +296,7 @@ begin { self isn't pushed in nested procedure of methods } if assigned(procinfo^._class) and (lexlevel=normal_function_level) then begin -{$ifdef newcg} procinfo^.selfpointer_offset:=paramoffset; -{$else newcg} - procinfo^.ESI_offset:=paramoffset; -{$endif newcg} if assigned(aktprocsym^.definition) and not(po_containsself in aktprocsym^.definition^.procoptions) then inc(paramoffset,target_os.size_of_pointer); @@ -1902,7 +1902,11 @@ end. { $Log$ - Revision 1.31 1999-11-06 14:34:23 peter + Revision 1.32 1999-11-09 23:06:45 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.31 1999/11/06 14:34:23 peter * truncated log to 20 revs Revision 1.30 1999/10/26 12:30:44 peter diff --git a/compiler/ra386att.pas b/compiler/ra386att.pas index dbf6861b5d..a23d6b1a2a 100644 --- a/compiler/ra386att.pas +++ b/compiler/ra386att.pas @@ -37,8 +37,13 @@ Implementation Uses globtype, strings,cobjects,systems,verbose,globals, - files,aasm,types,symconst,symtable,scanner,hcodegen, - cpubase,rautils,ra386; + files,aasm,types,symconst,symtable,scanner,cpubase, +{$ifdef NEWCG} + cgbase, +{$else} + hcodegen, +{$endif} + rautils,ra386; type tasmtoken = ( @@ -1987,7 +1992,11 @@ begin end. { $Log$ - Revision 1.61 1999-11-06 14:34:23 peter + Revision 1.62 1999-11-09 23:06:46 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.61 1999/11/06 14:34:23 peter * truncated log to 20 revs Revision 1.60 1999/10/01 07:59:20 peter diff --git a/compiler/ra386dir.pas b/compiler/ra386dir.pas index f4c1625301..f643ff3bf5 100644 --- a/compiler/ra386dir.pas +++ b/compiler/ra386dir.pas @@ -32,8 +32,13 @@ unit Ra386dir; implementation uses - files,hcodegen,globals,scanner,aasm,cpubase,cpuasm, + files,globals,scanner,aasm,cpubase,cpuasm, cobjects,symconst,symtable,types,verbose, +{$ifdef NEWCG} + cgbase, +{$else} + hcodegen, +{$endif} rautils,ra386; function assemble : ptree; @@ -230,7 +235,7 @@ unit Ra386dir; if upper(hs)='__SELF' then begin if assigned(procinfo^._class) then - hs:=tostr(procinfo^.ESI_offset)+'('+att_reg2str[procinfo^.framepointer]+')' + hs:=tostr(procinfo^.selfpointer_offset)+'('+att_reg2str[procinfo^.framepointer]+')' else Message(asmr_e_cannot_use_SELF_outside_a_method); end @@ -290,7 +295,11 @@ unit Ra386dir; end. { $Log$ - Revision 1.25 1999-11-06 14:34:24 peter + Revision 1.26 1999-11-09 23:06:46 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.25 1999/11/06 14:34:24 peter * truncated log to 20 revs Revision 1.24 1999/09/27 23:44:58 peter diff --git a/compiler/ra386int.pas b/compiler/ra386int.pas index 11886017a2..6d00c6ee6c 100644 --- a/compiler/ra386int.pas +++ b/compiler/ra386int.pas @@ -38,7 +38,12 @@ Implementation Uses globtype, strings,cobjects,systems,verbose,globals, - files,aasm,types,scanner,hcodegen,symtable,cpubase, + files,aasm,types,scanner,symtable,cpubase, +{$ifdef NEWCG} + cgbase, +{$else} + hcodegen, +{$endif} rautils,ra386; @@ -1767,7 +1772,11 @@ begin end. { $Log$ - Revision 1.51 1999-11-06 14:34:24 peter + Revision 1.52 1999-11-09 23:06:46 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.51 1999/11/06 14:34:24 peter * truncated log to 20 revs Revision 1.50 1999/10/01 07:59:21 peter diff --git a/compiler/ra68kmot.pas b/compiler/ra68kmot.pas index 9a3526aa43..498298d119 100644 --- a/compiler/ra68kmot.pas +++ b/compiler/ra68kmot.pas @@ -1634,7 +1634,7 @@ var Begin if assigned(procinfo._class) then Begin - instr.operands[operandnum].ref.offset := procinfo.ESI_offset; + instr.operands[operandnum].ref.offset := procinfo.selfpointer_offset; instr.operands[operandnum].ref.base := procinfo.framepointer; end else @@ -2178,7 +2178,11 @@ Begin end. { $Log$ - Revision 1.9 1999-09-16 23:05:56 florian + Revision 1.10 1999-11-09 23:06:46 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.9 1999/09/16 23:05:56 florian * m68k compiler is again compilable (only gas writer, no assembler reader) Revision 1.8 1999/01/10 15:37:59 peter diff --git a/compiler/rautils.pas b/compiler/rautils.pas index 4a53823e62..882f9c207f 100644 --- a/compiler/rautils.pas +++ b/compiler/rautils.pas @@ -27,7 +27,12 @@ Uses strings, cobjects, globtype,systems,verbose,globals,files, - symconst,symtable,aasm,hcodegen,cpubase,cpuasm + symconst,symtable,aasm,cpubase,cpuasm +{$ifdef NEWCG} + ,cgbase +{$else} + ,hcodegen +{$endif} ; Const @@ -692,7 +697,7 @@ Begin if assigned(procinfo^._class) then Begin opr.typ:=OPR_REFERENCE; - opr.ref.offset:=procinfo^.ESI_offset; + opr.ref.offset:=procinfo^.selfpointer_offset; opr.ref.base:=procinfo^.framepointer; opr.ref.options:=ref_selffixup; SetupSelf:=true; @@ -1433,7 +1438,11 @@ end; end. { $Log$ - Revision 1.28 1999-11-06 14:34:26 peter + Revision 1.29 1999-11-09 23:06:46 peter + * esi_offset -> selfpointer_offset to be newcg compatible + * hcogegen -> cgbase fixes for newcg + + Revision 1.28 1999/11/06 14:34:26 peter * truncated log to 20 revs Revision 1.27 1999/09/27 23:44:58 peter