mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 14:29:14 +02:00
* Restored original methodpointer code for non newra case
This commit is contained in:
parent
af653c3dd7
commit
5c6da84d2c
@ -713,7 +713,7 @@ implementation
|
|||||||
if assigned(right) then
|
if assigned(right) then
|
||||||
secondpass(right);
|
secondpass(right);
|
||||||
|
|
||||||
{$ifdef disabled}
|
{$ifndef newra}
|
||||||
if (po_virtualmethod in procdefinition.procoptions) and
|
if (po_virtualmethod in procdefinition.procoptions) and
|
||||||
assigned(methodpointer) then
|
assigned(methodpointer) then
|
||||||
begin
|
begin
|
||||||
@ -732,7 +732,7 @@ implementation
|
|||||||
not(is_cppclass(tprocdef(procdefinition)._class)) then
|
not(is_cppclass(tprocdef(procdefinition)._class)) then
|
||||||
cg.g_maybe_testvmt(exprasmlist,methodpointer.location.register,tprocdef(procdefinition)._class);
|
cg.g_maybe_testvmt(exprasmlist,methodpointer.location.register,tprocdef(procdefinition)._class);
|
||||||
end;
|
end;
|
||||||
{$endif disabled}
|
{$endif newra}
|
||||||
|
|
||||||
if assigned(left) then
|
if assigned(left) then
|
||||||
begin
|
begin
|
||||||
@ -774,6 +774,7 @@ implementation
|
|||||||
if (po_virtualmethod in procdefinition.procoptions) and
|
if (po_virtualmethod in procdefinition.procoptions) and
|
||||||
assigned(methodpointer) then
|
assigned(methodpointer) then
|
||||||
begin
|
begin
|
||||||
|
{$ifdef newra}
|
||||||
secondpass(methodpointer);
|
secondpass(methodpointer);
|
||||||
location_force_reg(exprasmlist,methodpointer.location,OS_ADDR,false);
|
location_force_reg(exprasmlist,methodpointer.location,OS_ADDR,false);
|
||||||
vmtreg:=methodpointer.location.register;
|
vmtreg:=methodpointer.location.register;
|
||||||
@ -789,7 +790,9 @@ implementation
|
|||||||
if not(is_interface(tprocdef(procdefinition)._class)) and
|
if not(is_interface(tprocdef(procdefinition)._class)) and
|
||||||
not(is_cppclass(tprocdef(procdefinition)._class)) then
|
not(is_cppclass(tprocdef(procdefinition)._class)) then
|
||||||
cg.g_maybe_testvmt(exprasmlist,vmtreg,tprocdef(procdefinition)._class);
|
cg.g_maybe_testvmt(exprasmlist,vmtreg,tprocdef(procdefinition)._class);
|
||||||
|
{$else}
|
||||||
|
vmtreg:=methodpointer.location.register;
|
||||||
|
{$endif}
|
||||||
{$ifdef newra}
|
{$ifdef newra}
|
||||||
{ release self }
|
{ release self }
|
||||||
rg.ungetaddressregister(exprasmlist,vmtreg);
|
rg.ungetaddressregister(exprasmlist,vmtreg);
|
||||||
@ -1375,7 +1378,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.82 2003-06-03 13:01:59 daniel
|
Revision 1.83 2003-06-03 20:27:02 daniel
|
||||||
|
* Restored original methodpointer code for non newra case
|
||||||
|
|
||||||
|
Revision 1.82 2003/06/03 13:01:59 daniel
|
||||||
* Register allocator finished
|
* Register allocator finished
|
||||||
|
|
||||||
Revision 1.81 2003/06/01 21:38:06 peter
|
Revision 1.81 2003/06/01 21:38:06 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user