* fixed compile of powerpc,sparc,arm

This commit is contained in:
peter 2004-11-11 19:31:33 +00:00
parent 8acd96fa67
commit 0c7e53bb81
10 changed files with 62 additions and 30 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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