blob: ca565865d0e975d790edad9648aa602a81a40fac (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
{ %cpu=i386 }
{$mode delphi}
{ Source provided for Free Pascal Bug Report 2703 }
{ Submitted by "Johannes Berg" on 2003-10-01 }
{ e-mail: johannes -at- sipsolutions -dot- de }
function InterlockedIncrement(var I: Integer): Integer;
asm
MOV EDX,1
XCHG EAX,EDX
LOCK XADD [EDX],EAX
INC EAX
end;
var
i : integer;
begin
i:=1;
i:=InterlockedIncrement(i);
if i<>2 then
halt(1);
end.
|