2
0
Эх сурвалжийг харах

* 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 жил өмнө
parent
commit
ea193bc993

+ 6 - 0
rtl/inc/systemh.inc

@@ -1429,6 +1429,12 @@ Function GetProcessID:SizeUInt;
 Function GetThreadID:TThreadID;{$ifdef SYSTEMINLINE}inline;{$endif}
 Function GetThreadID:TThreadID;{$ifdef SYSTEMINLINE}inline;{$endif}
 {$endif FPC_HAS_FEATURE_PROCESSES}
 {$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}
 {$ifdef cpu16}
 function InterLockedIncrement (var Target: smallint) : smallint; public name 'FPC_INTERLOCKEDINCREMENT16';
 function InterLockedIncrement (var Target: smallint) : smallint; public name 'FPC_INTERLOCKEDINCREMENT16';
 function InterLockedDecrement (var Target: smallint) : smallint; public name 'FPC_INTERLOCKEDDECREMENT16';
 function InterLockedDecrement (var Target: smallint) : smallint; public name 'FPC_INTERLOCKEDDECREMENT16';