anchor.diff:        Regs[Param^.Access] := PCardinal(PushData)^
       else
       begin
  -      if [pfVar, pfOut, pfResult] * Param^.Flags <> [] then
  +      if [pfVar, pfOut, pfResult, pfAddress, pfReference] * Param^.Flags <> [] then
           PCardinal(@Frame[Param^.Access])^ := PCardinal(PushData)^
         else
         begin
  
positive.code:   MethodHeader := GetMethodInfo(Instance, MethodName);
    ReturnInfo := GetReturnInfo(MethodHeader);
    MethodInfo := ReturnInfo;
    Inc(Integer(MethodInfo), SizeOf(TReturnInfo));
  {$IFDEF DELPHIXE4_UP}
    if ReturnInfo.Version <> 3 then
      raise Exception.CreateFmt(SNoRTTIInfoType, [MethodName]);
  {$ENDIF}
  
  {$IFNDEF DELPHI2010_UP}
    InfoEnd := Pointer(Integer(MethodHeader) + MethodHeader^.Len);
    Count := 0;
    SetLength(Result, MaxParams);
    while Integer(MethodInfo) < Integer(InfoEnd) do
    begin
      if Count >= MaxParams then
        raise Exception.CreateFmt(sMethodOver, [MethodName, MaxParams]);
      Result[Count] := MethodInfo;
      Inc(Count);
      Inc(Integer(MethodInfo), SizeOf(TParamInfo) - SizeOf(ShortString) + 1 +
        Length(PParamInfo(MethodInfo)^.Name));
    end;
    SetLength(Result, Count);
  
negative.code:         TVarData(RetVal).VInteger := Integer(Boolean(Regs[paEAX]))
        else
          TVarData(RetVal).VInteger := Integer(Regs[paEAX]);
        PCardinal(NativeUInt(@TVarData(RetVal).VInteger) + 4)^ := Regs[paEDX];
      end;
      Result                 := RetVal;
      TVarData(RetVal).VType := varEmpty;
  