#1 2015-08-24 13:40:05

marius maximus
Member
From: Olsztyn
Registered: 2015-06-11
Posts: 30

TFakeCallStack -Duplicate identifier "RCX"

/// map the stack memory layout at TInterfacedObjectFake.FakeCall()
  TFakeCallStack = packed record
    {$ifdef CPU64}
    {$ifdef LINUX}
    XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7: double;
    {$else}
    XMM1, XMM2, XMM3: double;
    {$endif}
    MethodIndex: PtrUInt;
    Frame, Ret: pointer;
    {$ifdef LINUX}
    RDI, RSI, RDX, RCX, R8, R9: pointer;
    {$endif}
    RCX, RDX, R8, R9: pointer; // Here error !!! 
    {$else}
    EDX, ECX, MethodIndex, EBP, Ret: Cardinal;
    {$endif}
    Stack: array[word] of byte;
  end;

Fo example correct version

  /// map the stack memory layout at TInterfacedObjectFake.FakeCall()
  TFakeCallStack = packed record
    {$ifdef CPU64}
    {$ifdef LINUX}
    XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7: double;
    {$else}
    XMM1, XMM2, XMM3: double;
    {$endif}
    MethodIndex: PtrUInt;
    Frame, Ret: pointer;
    {$ifdef LINUX}
    RDI, RSI, RDX, RCX, R8, R9: pointer;
    {$else}
    RCX, RDX, R8, R9: pointer;
    {$endif}
    {$else}
    EDX, ECX, MethodIndex, EBP, Ret: Cardinal;
    {$endif}
    Stack: array[word] of byte;
  end; 

Lazarus x64 Linux

Offline

#2 2015-08-24 18:34:35

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: TFakeCallStack -Duplicate identifier "RCX"

Linux 64 is not supported yet.

I will fix this issue.

Offline

#3 2015-08-24 20:43:46

marius maximus
Member
From: Olsztyn
Registered: 2015-06-11
Posts: 30

Re: TFakeCallStack -Duplicate identifier "RCX"

Next small step wink
Last to weeks I was on holiday . Now I begin to test x64 linux wink


Lazarus x64 Linux

Offline

#4 2015-08-25 09:34:06

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: TFakeCallStack -Duplicate identifier "RCX"

Nice!

See http://synopse.info/fossil/info/16c7d9aa04
But not yet fully finished...

Offline

Board footer

Powered by FluxBB