* disable vtentry code until a clean implementation is done

git-svn-id: trunk@3934 -
This commit is contained in:
peter 2006-06-25 10:13:59 +00:00
parent 4c065bce45
commit 722c91e8f3
2 changed files with 6 additions and 0 deletions

View File

@ -894,6 +894,7 @@ implementation
not(is_cppclass(tprocdef(procdefinition)._class)) then not(is_cppclass(tprocdef(procdefinition)._class)) then
cg.g_maybe_testvmt(current_asmdata.CurrAsmList,vmtreg,tprocdef(procdefinition)._class); cg.g_maybe_testvmt(current_asmdata.CurrAsmList,vmtreg,tprocdef(procdefinition)._class);
{$ifdef vtentry}
{ Call through VMT, generate a VTREF symbol to notify the linker } { Call through VMT, generate a VTREF symbol to notify the linker }
vmtoffset:=tprocdef(procdefinition)._class.vmtmethodoffset(tprocdef(procdefinition).extnumber); vmtoffset:=tprocdef(procdefinition)._class.vmtmethodoffset(tprocdef(procdefinition).extnumber);
if not is_interface(tprocdef(procdefinition)._class) then if not is_interface(tprocdef(procdefinition)._class) then
@ -901,6 +902,7 @@ implementation
inc(current_asmdata.NextVTEntryNr); inc(current_asmdata.NextVTEntryNr);
current_asmdata.CurrAsmList.Concat(tai_symbol.CreateName('VTREF'+tostr(current_asmdata.NextVTEntryNr)+'_'+tprocdef(procdefinition)._class.vmt_mangledname+'$$'+tostr(vmtoffset div sizeof(aint)),AT_FUNCTION,0)); current_asmdata.CurrAsmList.Concat(tai_symbol.CreateName('VTREF'+tostr(current_asmdata.NextVTEntryNr)+'_'+tprocdef(procdefinition)._class.vmt_mangledname+'$$'+tostr(vmtoffset div sizeof(aint)),AT_FUNCTION,0));
end; end;
{$endif vtentry}
reference_reset_base(href,vmtreg,vmtoffset); reference_reset_base(href,vmtreg,vmtoffset);

View File

@ -1234,8 +1234,10 @@ implementation
else else
procname:=procdefcoll^.data.mangledname; procname:=procdefcoll^.data.mangledname;
List.concat(Tai_const.createname(procname,0)); List.concat(Tai_const.createname(procname,0));
{$ifdef vtentry}
hs:='VTENTRY'+'_'+_class.vmt_mangledname+'$$'+tostr(_class.vmtmethodoffset(i) div sizeof(aint)); hs:='VTENTRY'+'_'+_class.vmt_mangledname+'$$'+tostr(_class.vmtmethodoffset(i) div sizeof(aint));
current_asmdata.asmlists[al_globals].concat(tai_symbol.CreateName(hs,AT_DATA,0)); current_asmdata.asmlists[al_globals].concat(tai_symbol.CreateName(hs,AT_DATA,0));
{$endif vtentry}
break; break;
end; end;
procdefcoll:=procdefcoll^.next; procdefcoll:=procdefcoll^.next;
@ -1358,6 +1360,7 @@ implementation
current_asmdata.asmlists[al_globals].concat(Tai_const.create(aitconst_ptr,0)); current_asmdata.asmlists[al_globals].concat(Tai_const.create(aitconst_ptr,0));
{ write the size of the VMT } { write the size of the VMT }
current_asmdata.asmlists[al_globals].concat(Tai_symbol_end.Createname(_class.vmt_mangledname)); current_asmdata.asmlists[al_globals].concat(Tai_symbol_end.Createname(_class.vmt_mangledname));
{$ifdef vtentry}
{ write vtinherit symbol to notify the linker of the class inheritance tree } { write vtinherit symbol to notify the linker of the class inheritance tree }
hs:='VTINHERIT'+'_'+_class.vmt_mangledname+'$$'; hs:='VTINHERIT'+'_'+_class.vmt_mangledname+'$$';
if assigned(_class.childof) then if assigned(_class.childof) then
@ -1365,6 +1368,7 @@ implementation
else else
hs:=hs+_class.vmt_mangledname; hs:=hs+_class.vmt_mangledname;
current_asmdata.asmlists[al_globals].concat(tai_symbol.CreateName(hs,AT_DATA,0)); current_asmdata.asmlists[al_globals].concat(tai_symbol.CreateName(hs,AT_DATA,0));
{$endif vtentry}
end; end;