mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2026-02-04 04:55:01 +01:00
47 lines
584 B
ObjectPascal
47 lines
584 B
ObjectPascal
{ %cpu=powerpc,powerpc64 }
|
|
|
|
{$ifdef fpc}
|
|
{$mode delphi}
|
|
{$endif}
|
|
|
|
type
|
|
tc = class
|
|
procedure v; virtual;
|
|
procedure test; virtual;
|
|
end;
|
|
|
|
procedure tc.test; assembler;
|
|
asm
|
|
{$ifdef cpu64}
|
|
// for simplicity sake do not bother about setting the GOT and
|
|
// environment pointer correctly
|
|
ld r4,0(r3)
|
|
ld r4,+vmtoffset tc.v(r4)
|
|
ld r4,0(r4)
|
|
{$else}
|
|
lwz r4,0(r3)
|
|
lwz r4,+vmtoffset tc.v(r4)
|
|
{$endif}
|
|
mtctr r4
|
|
bctr
|
|
end;
|
|
|
|
var
|
|
l : longint;
|
|
|
|
procedure tc.v;
|
|
begin
|
|
l := 5;
|
|
end;
|
|
|
|
var
|
|
c: tc;
|
|
begin
|
|
c := tc.create;
|
|
c.test;
|
|
if l <> 5 then
|
|
halt(1);
|
|
c.free;
|
|
end.
|
|
|