Ich würde das lieber so sauber wie eben möglich ohne Assembler lösen:
Delphi-Quellcode:
uses
System.Rtti, System.TypInfo;
procedure Unterklasse2.Proc;
begin
System.Rtti.Invoke(@Oberklasse.Proc, TArray<TValue>.Create(TValue.From<Unterklasse2>(Self)), ccReg, nil);
end;