From 0c7e53bb8114e7bca4a7ead5763f4eada98cd2da Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 11 Nov 2004 19:31:33 +0000 Subject: [PATCH] * fixed compile of powerpc,sparc,arm --- compiler/arm/raarmgas.pas | 7 +++++-- compiler/ncgbas.pas | 9 ++++++--- compiler/ncgutil.pas | 9 ++++++--- compiler/pdecsub.pas | 13 ++++++++----- compiler/powerpc/cgcpu.pas | 10 +++++++--- compiler/powerpc/nppcld.pas | 14 +++++++++----- compiler/powerpc/rappcgas.pas | 7 +++++-- compiler/sparc/racpugas.pas | 7 +++++-- compiler/symdef.pas | 7 +++++-- compiler/systems/t_macos.pas | 9 ++++++--- 10 files changed, 62 insertions(+), 30 deletions(-) diff --git a/compiler/arm/raarmgas.pas b/compiler/arm/raarmgas.pas index a1f2f6cc10..9a47d90170 100644 --- a/compiler/arm/raarmgas.pas +++ b/compiler/arm/raarmgas.pas @@ -269,7 +269,7 @@ Unit raarmgas; will generate buggy code. Allow it only for explicit typecasting } if hasdot and (not oper.hastype) and - (tvarsym(oper.opr.localsym).owner.symtabletype=parasymtable) and + (tabstractnormalvarsym(oper.opr.localsym).owner.symtabletype=parasymtable) and (current_procinfo.procdef.proccalloption<>pocall_register) then Message(asmr_e_cannot_access_field_directly_for_parameters); inc(oper.opr.localsymofs,l) @@ -748,7 +748,10 @@ initialization end. { $Log$ - Revision 1.9 2004-06-20 08:55:31 florian + Revision 1.10 2004-11-11 19:31:33 peter + * fixed compile of powerpc,sparc,arm + + Revision 1.9 2004/06/20 08:55:31 florian * logs truncated Revision 1.8 2004/03/02 00:36:33 olle diff --git a/compiler/ncgbas.pas b/compiler/ncgbas.pas index 894d497477..51c564152c 100644 --- a/compiler/ncgbas.pas +++ b/compiler/ncgbas.pas @@ -134,7 +134,7 @@ interface procedure ResolveRef(var op:toper); var - sym : tlocalvarsym; + sym : tabstractnormalvarsym; {$ifdef x86} scale : byte; {$endif x86} @@ -150,7 +150,7 @@ interface scale:=op.localoper^.localscale; {$endif x86} getoffset:=op.localoper^.localgetoffset; - sym:=tlocalvarsym(pointer(op.localoper^.localsym)); + sym:=tabstractnormalvarsym(pointer(op.localoper^.localsym)); dispose(op.localoper); case sym.localloc.loc of LOC_REFERENCE : @@ -491,7 +491,10 @@ begin end. { $Log$ - Revision 1.70 2004-11-08 22:09:59 peter + Revision 1.71 2004-11-11 19:31:33 peter + * fixed compile of powerpc,sparc,arm + + Revision 1.70 2004/11/08 22:09:59 peter * tvarsym splitted Revision 1.69 2004/10/31 21:45:03 peter diff --git a/compiler/ncgutil.pas b/compiler/ncgutil.pas index 3f5d1db97b..a4fa40c5db 100644 --- a/compiler/ncgutil.pas +++ b/compiler/ncgutil.pas @@ -1348,7 +1348,7 @@ implementation {$ifdef sparc} { Sparc passes floats in int registers, when loading to fpu register we need a temp } - tg.GetTemp(list,TCGSize2Size[tvarsym(hp.parasym).localloc.size],tt_normal,tempref); + tg.GetTemp(list,TCGSize2Size[tparavarsym(hp.parasym).localloc.size],tt_normal,tempref); href:=tempref; while assigned(paraloc) do begin @@ -1357,7 +1357,7 @@ implementation inc(href.offset,TCGSize2Size[paraloc^.size]); paraloc:=paraloc^.next; end; - cg.a_loadfpu_ref_reg(list,tvarsym(hp.parasym).localloc.size,tempref,tvarsym(hp.parasym).localloc.register); + cg.a_loadfpu_ref_reg(list,tparavarsym(hp.parasym).localloc.size,tempref,tparavarsym(hp.parasym).localloc.register); tg.UnGetTemp(list,tempref); {$else sparc} unget_para(paraloc^); @@ -2212,7 +2212,10 @@ implementation end. { $Log$ - Revision 1.239 2004-11-09 17:26:47 peter + Revision 1.240 2004-11-11 19:31:33 peter + * fixed compile of powerpc,sparc,arm + + Revision 1.239 2004/11/09 17:26:47 peter * fixed wrong typecasts Revision 1.238 2004/11/08 22:09:59 peter diff --git a/compiler/pdecsub.pas b/compiler/pdecsub.pas index 9704d99568..48ad05d6ff 100644 --- a/compiler/pdecsub.pas +++ b/compiler/pdecsub.pas @@ -1176,13 +1176,13 @@ begin include(pd.procoptions,po_explicitparaloc); if consume_sym(sym,symtable) then begin - if (sym.typ=varsym) and - ((tvarsym(sym).vartype.def.deftype=pointerdef) or - is_32bitint(tvarsym(sym).vartype.def) + if (sym.typ in [localvarsym,paravarsym]) and + ((tabstractvarsym(sym).vartype.def.deftype=pointerdef) or + is_32bitint(tabstractvarsym(sym).vartype.def) ) then begin tprocdef(pd).libsym:=sym; - pd.concatpara(nil,tvarsym(sym).vartype,tvarsym(sym),nil,true); + pd.concatpara(nil,tabstractvarsym(sym).vartype,tabstractvarsym(sym),nil,true); paramanager.parseparaloc(tparaitem(pd.para.last),'A6'); end else @@ -2266,7 +2266,10 @@ const end. { $Log$ - Revision 1.202 2004-11-09 22:32:59 peter + Revision 1.203 2004-11-11 19:31:33 peter + * fixed compile of powerpc,sparc,arm + + Revision 1.202 2004/11/09 22:32:59 peter * small m68k updates to bring it up2date * give better error for external local variable diff --git a/compiler/powerpc/cgcpu.pas b/compiler/powerpc/cgcpu.pas index 2d65d62e00..b5b03ae324 100644 --- a/compiler/powerpc/cgcpu.pas +++ b/compiler/powerpc/cgcpu.pas @@ -1178,10 +1178,11 @@ const begin if assigned(hp.paraloc[callerside].location^.next) then internalerror(2004091210); - case tvarsym(hp.parasym).localloc.loc of + case tabstractnormalvarsym(hp.parasym).localloc.loc of LOC_REFERENCE: begin - reference_reset_base(href,tvarsym(hp.parasym).localloc.reference.base,tvarsym(hp.parasym).localloc.reference.offset); + reference_reset_base(href,tabstractnormalvarsym(hp.parasym).localloc.reference.base, + tabstractnormalvarsym(hp.parasym).localloc.reference.offset); reference_reset_base(href2,NR_R12,hp.paraloc[callerside].location^.reference.offset); { we can't use functions here which allocate registers (FK) cg.a_load_ref_ref(list,hp.paraloc[calleeside].size,hp.paraloc[calleeside].size,href2,href); @@ -2356,7 +2357,10 @@ begin end. { $Log$ - Revision 1.184 2004-10-31 21:45:03 peter + Revision 1.185 2004-11-11 19:31:33 peter + * fixed compile of powerpc,sparc,arm + + Revision 1.184 2004/10/31 21:45:03 peter * generic tlocation * move tlocation to cgutils diff --git a/compiler/powerpc/nppcld.pas b/compiler/powerpc/nppcld.pas index 42da576081..4e40e80224 100644 --- a/compiler/powerpc/nppcld.pas +++ b/compiler/powerpc/nppcld.pas @@ -90,14 +90,15 @@ unit nppcld; case target_info.system of system_powerpc_darwin: begin - if (tvarsym(symtableentry).owner.unitid<>0) or (vo_is_dll_var in tvarsym(symtableentry).varoptions) then + if (tglobalvarsym(symtableentry).owner.unitid<>0) or + (vo_is_dll_var in tglobalvarsym(symtableentry).varoptions) then begin - l:=objectlibrary.getasmsymbol('L'+tvarsym(symtableentry).mangledname+'$non_lazy_ptr'); + l:=objectlibrary.getasmsymbol('L'+tglobalvarsym(symtableentry).mangledname+'$non_lazy_ptr'); if not(assigned(l)) then begin - l:=objectlibrary.newasmsymbol('L'+tvarsym(symtableentry).mangledname+'$non_lazy_ptr',AB_COMMON,AT_DATA); + l:=objectlibrary.newasmsymbol('L'+tglobalvarsym(symtableentry).mangledname+'$non_lazy_ptr',AB_COMMON,AT_DATA); picdata.concat(tai_symbol.create(l,0)); - picdata.concat(tai_const.create_indirect_sym(objectlibrary.newasmsymbol(tvarsym(symtableentry).mangledname,AB_EXTERNAL,AT_DATA))); + picdata.concat(tai_const.create_indirect_sym(objectlibrary.newasmsymbol(tglobalvarsym(symtableentry).mangledname,AB_EXTERNAL,AT_DATA))); picdata.concat(tai_const.create_32bit(0)); end; @@ -121,7 +122,10 @@ begin end. { $Log$ - Revision 1.4 2004-07-19 12:45:43 jonas + Revision 1.5 2004-11-11 19:31:33 peter + * fixed compile of powerpc,sparc,arm + + Revision 1.4 2004/07/19 12:45:43 jonas * fixed loading external procedure addresses Revision 1.3 2004/06/17 16:55:46 peter diff --git a/compiler/powerpc/rappcgas.pas b/compiler/powerpc/rappcgas.pas index 449a061099..278e76ef17 100644 --- a/compiler/powerpc/rappcgas.pas +++ b/compiler/powerpc/rappcgas.pas @@ -290,7 +290,7 @@ Unit rappcgas; will generate buggy code. Allow it only for explicit typecasting } if hasdot and (not oper.hastype) and - (tvarsym(oper.opr.localsym).owner.symtabletype=parasymtable) and + (tabstractvarsym(oper.opr.localsym).owner.symtabletype=parasymtable) and (current_procinfo.procdef.proccalloption<>pocall_register) then Message(asmr_e_cannot_access_field_directly_for_parameters); inc(oper.opr.localsymofs,l) @@ -753,7 +753,10 @@ initialization end. { $Log$ - Revision 1.16 2004-06-20 08:55:32 florian + Revision 1.17 2004-11-11 19:31:33 peter + * fixed compile of powerpc,sparc,arm + + Revision 1.16 2004/06/20 08:55:32 florian * logs truncated Revision 1.15 2004/06/16 20:07:10 florian diff --git a/compiler/sparc/racpugas.pas b/compiler/sparc/racpugas.pas index 28c80eaa8b..56f8394ce5 100644 --- a/compiler/sparc/racpugas.pas +++ b/compiler/sparc/racpugas.pas @@ -264,7 +264,7 @@ Interface will generate buggy code. Allow it only for explicit typecasting } if hasdot and (not oper.hastype) and - (tvarsym(oper.opr.localsym).owner.symtabletype=parasymtable) and + (tabstractnormalvarsym(oper.opr.localsym).owner.symtabletype=parasymtable) and (current_procinfo.procdef.proccalloption<>pocall_register) then Message(asmr_e_cannot_access_field_directly_for_parameters); inc(oper.opr.localsymofs,l) @@ -684,7 +684,10 @@ initialization end. { $Log$ - Revision 1.10 2004-06-20 08:55:32 florian + Revision 1.11 2004-11-11 19:31:33 peter + * fixed compile of powerpc,sparc,arm + + Revision 1.10 2004/06/20 08:55:32 florian * logs truncated Revision 1.9 2004/06/16 20:07:11 florian diff --git a/compiler/symdef.pas b/compiler/symdef.pas index e64b0babbd..6e67faae8e 100644 --- a/compiler/symdef.pas +++ b/compiler/symdef.pas @@ -4319,7 +4319,7 @@ implementation procsym:=tprocsym(procsymderef.resolve); {$ifdef powerpc} { library symbol for AmigaOS/MorphOS } - libsym:=tvarsym(libsymderef.resolve); + libsym:=tsym(libsymderef.resolve); {$endif powerpc} aktparasymtable:=oldparasymtable; @@ -6244,7 +6244,10 @@ implementation end. { $Log$ - Revision 1.269 2004-11-08 22:09:59 peter + Revision 1.270 2004-11-11 19:31:33 peter + * fixed compile of powerpc,sparc,arm + + Revision 1.269 2004/11/08 22:09:59 peter * tvarsym splitted Revision 1.268 2004/11/06 17:44:47 florian diff --git a/compiler/systems/t_macos.pas b/compiler/systems/t_macos.pas index 09486fb87b..660b6c72d2 100644 --- a/compiler/systems/t_macos.pas +++ b/compiler/systems/t_macos.pas @@ -33,7 +33,7 @@ interface timportlibmacos=class(timportlib) procedure preparelib(const s:string);override; procedure importprocedure(aprocdef:tprocdef;const module:string;index:longint;const name:string);override; - procedure importvariable(vs:tvarsym;const name,module:string);override; + procedure importvariable(vs:tglobalvarsym;const name,module:string);override; procedure generatelib;override; end; @@ -76,7 +76,7 @@ begin end; -procedure timportlibmacos.importvariable(vs:tvarsym;const name,module:string); +procedure timportlibmacos.importvariable(vs:tglobalvarsym;const name,module:string); begin { insert sharedlibrary } current_module.linkothersharedlibs.add(SplitName(module),link_allways); @@ -252,7 +252,10 @@ initialization end. { $Log$ - Revision 1.13 2004-10-25 15:38:41 peter + Revision 1.14 2004-11-11 19:31:33 peter + * fixed compile of powerpc,sparc,arm + + Revision 1.13 2004/10/25 15:38:41 peter * heap and heapsize removed * checkpointer fixes