ソースを参照

* enable explicit Pointer overloads of Interlocked* functions for M68k as that has a calling convention where the passing of Pointer values differs from ordinal values (address vs. int registers). Fixes e.g. usage of the Classes unit

git-svn-id: trunk@38053 -
svenbarth 7 年 前
コミット
ea193bc993
1 ファイル変更6 行追加0 行削除
  1. 6 0
      rtl/inc/systemh.inc

+ 6 - 0
rtl/inc/systemh.inc

@@ -1429,6 +1429,12 @@ Function GetProcessID:SizeUInt;
 Function GetThreadID:TThreadID;{$ifdef SYSTEMINLINE}inline;{$endif}
 {$endif FPC_HAS_FEATURE_PROCESSES}
 
+{$ifdef cpum68k}
+{ due to the register calling convention which uses address registers explicit
+  variants of the Interlocked* functions for Pointers are needed }
+{$define FPC_HAS_EXPLICIT_INTERLOCKED_POINTER}
+{$endif}
+
 {$ifdef cpu16}
 function InterLockedIncrement (var Target: smallint) : smallint; public name 'FPC_INTERLOCKEDINCREMENT16';
 function InterLockedDecrement (var Target: smallint) : smallint; public name 'FPC_INTERLOCKEDDECREMENT16';