mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-12 21:11:45 +02:00
* interlocked* changed to longints, including winapi. (which was a bug)
This commit is contained in:
parent
6043f1a626
commit
e546db7a23
rtl
arm
i386
objpas/sysutils
powerpc
sparc
win32/wininc
x86_64
@ -22,28 +22,28 @@
|
||||
{ the ARM doesn't know multiprocessor system which would require locking }
|
||||
|
||||
|
||||
function InterLockedDecrement (var Target: integer) : Integer;
|
||||
function InterLockedDecrement (var Target: longint) : longint;
|
||||
begin
|
||||
dec(Target);
|
||||
result:=target;
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedIncrement (var Target: integer) : Integer;
|
||||
function InterLockedIncrement (var Target: longint) : longint;
|
||||
begin
|
||||
inc(Target);
|
||||
result:=target;
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedExchange (var Target: integer;Source : integer) : Integer;
|
||||
function InterLockedExchange (var Target: longint;Source : longint) : longint;
|
||||
begin
|
||||
Result:=Target;
|
||||
Target:=Source;
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer;
|
||||
function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint;
|
||||
begin
|
||||
Result:=Target;
|
||||
inc(Target,Source);
|
||||
@ -52,6 +52,9 @@ function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2003-11-30 19:48:20 florian
|
||||
Revision 1.2 2004-03-05 12:17:50 marco
|
||||
* interlocked* changed to longints, including winapi. (which was a bug)
|
||||
|
||||
Revision 1.1 2003/11/30 19:48:20 florian
|
||||
* fixed some arm stuff
|
||||
}
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
{$ASMMODE ATT}
|
||||
|
||||
function InterLockedDecrement (var Target: integer) : Integer; assembler;
|
||||
function InterLockedDecrement (var Target: longint) : longint; assembler;
|
||||
asm
|
||||
{$ifdef REGCALL}
|
||||
movl $-1,%edx
|
||||
@ -35,7 +35,7 @@ asm
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedIncrement (var Target: integer) : Integer; assembler;
|
||||
function InterLockedIncrement (var Target: longint) : longint; assembler;
|
||||
asm
|
||||
{$ifdef REGCALL}
|
||||
movl $1,%edx
|
||||
@ -50,7 +50,7 @@ asm
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedExchange (var Target: integer;Source : integer) : Integer; assembler;
|
||||
function InterLockedExchange (var Target: longint;Source : longint) : longint; assembler;
|
||||
asm
|
||||
{$ifdef REGCALL}
|
||||
xchgl (%eax),%edx
|
||||
@ -63,7 +63,7 @@ asm
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer; assembler;
|
||||
function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint; assembler;
|
||||
asm
|
||||
{$ifdef REGCALL}
|
||||
xchgl %eax,%edx
|
||||
@ -78,7 +78,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.4 2003-12-23 22:23:34 peter
|
||||
Revision 1.5 2004-03-05 12:17:50 marco
|
||||
* interlocked* changed to longints, including winapi. (which was a bug)
|
||||
|
||||
Revision 1.4 2003/12/23 22:23:34 peter
|
||||
* increment should use ofcourse use 1 instead of -1
|
||||
|
||||
Revision 1.3 2003/11/11 21:08:17 peter
|
||||
|
@ -24,14 +24,17 @@ type
|
||||
|
||||
{$endif HASINTF}
|
||||
|
||||
function InterLockedIncrement (var Target: integer) : Integer;
|
||||
function InterLockedDecrement (var Target: integer) : Integer;
|
||||
function InterLockedExchange (var Target: integer;Source : integer) : Integer;
|
||||
function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer;
|
||||
function InterLockedIncrement (var Target: longint) : longint;
|
||||
function InterLockedDecrement (var Target: longint) : longint;
|
||||
function InterLockedExchange (var Target: longint;Source : longint) : longint;
|
||||
function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2003-10-06 21:01:06 peter
|
||||
Revision 1.2 2004-03-05 12:17:50 marco
|
||||
* interlocked* changed to longints, including winapi. (which was a bug)
|
||||
|
||||
Revision 1.1 2003/10/06 21:01:06 peter
|
||||
* moved classes unit to rtl
|
||||
|
||||
Revision 1.3 2002/09/07 16:01:22 peter
|
||||
|
@ -18,7 +18,7 @@
|
||||
This include contains cpu-specific routines
|
||||
---------------------------------------------------------------------}
|
||||
|
||||
function InterLockedDecrement (var Target: integer) : Integer; assembler;
|
||||
function InterLockedDecrement (var Target: longint) : longint; assembler;
|
||||
{ input: address of target in r3 }
|
||||
{ output: target-1 in r3 }
|
||||
{ side-effect: target := target-1 }
|
||||
@ -32,7 +32,7 @@ asm
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedIncrement (var Target: integer) : Integer; assembler;
|
||||
function InterLockedIncrement (var Target: longint) : longint; assembler;
|
||||
{ input: address of target in r3 }
|
||||
{ output: target+1 in r3 }
|
||||
{ side-effect: target := target+1 }
|
||||
@ -46,7 +46,7 @@ asm
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedExchange (var Target: integer;Source : integer) : Integer; assembler;
|
||||
function InterLockedExchange (var Target: longint;Source : longint) : longint; assembler;
|
||||
{ input: address of target in r3, source in r4 }
|
||||
{ output: target in r3 }
|
||||
{ side-effect: target := source }
|
||||
@ -59,7 +59,7 @@ asm
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer; assembler;
|
||||
function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint; assembler;
|
||||
{ input: address of target in r3, source in r4 }
|
||||
{ output: target in r3 }
|
||||
{ side-effect: target := target+source }
|
||||
@ -75,7 +75,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.7 2004-01-04 20:09:36 jonas
|
||||
Revision 1.8 2004-03-05 12:17:50 marco
|
||||
* interlocked* changed to longints, including winapi. (which was a bug)
|
||||
|
||||
Revision 1.7 2004/01/04 20:09:36 jonas
|
||||
* renamed "r0" usages as base register to 0
|
||||
|
||||
Revision 1.6 2003/12/28 20:55:57 jonas
|
||||
@ -84,7 +87,7 @@ end;
|
||||
Revision 1.5 2003/11/29 16:27:19 jonas
|
||||
* fixed several ppc assembler reader related problems
|
||||
* local vars in assembler procedures now start at offset 4
|
||||
* fixed second_int_to_bool (apparently an integer can be in LOC_JUMP??)
|
||||
* fixed second_int_to_bool (apparently an longint can be in LOC_JUMP??)
|
||||
|
||||
Revision 1.4 2003/08/24 20:50:11 olle
|
||||
* changed used scratchreg from r0 to r10
|
||||
|
@ -18,7 +18,7 @@
|
||||
This include contains cpu-specific routines
|
||||
---------------------------------------------------------------------}
|
||||
|
||||
function InterLockedDecrement (var Target: integer) : Integer; assembler;
|
||||
function InterLockedDecrement (var Target: longint) : longint; assembler;
|
||||
asm
|
||||
{$warning FIXME}
|
||||
end;
|
||||
@ -37,7 +37,7 @@ end;
|
||||
*)
|
||||
|
||||
|
||||
function InterLockedIncrement (var Target: integer) : Integer; assembler;
|
||||
function InterLockedIncrement (var Target: longint) : longint; assembler;
|
||||
asm
|
||||
{$warning FIXME}
|
||||
end;
|
||||
@ -55,7 +55,7 @@ InterLockedIncLoop:
|
||||
end;
|
||||
*)
|
||||
|
||||
function InterLockedExchange (var Target: integer;Source : integer) : Integer; assembler;
|
||||
function InterLockedExchange (var Target: longint;Source : longint) : longint; assembler;
|
||||
asm
|
||||
{$warning FIXME}
|
||||
end;
|
||||
@ -73,7 +73,7 @@ end;
|
||||
*)
|
||||
|
||||
|
||||
function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer; assembler;
|
||||
function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint; assembler;
|
||||
asm
|
||||
{$warning FIXME}
|
||||
end;
|
||||
@ -93,7 +93,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2003-09-01 20:46:32 peter
|
||||
Revision 1.2 2004-03-05 12:17:50 marco
|
||||
* interlocked* changed to longints, including winapi. (which was a bug)
|
||||
|
||||
Revision 1.1 2003/09/01 20:46:32 peter
|
||||
* new dummies
|
||||
|
||||
}
|
||||
|
@ -611,9 +611,9 @@ function InsertMenuItemA(p1: HMENU; p2: UINT; p3: BOOL; const p4: TMenuItemInfoA
|
||||
{$ifdef support_smartlink}
|
||||
function InterlockedCompareExchange(var Destination: Pointer; Exchange: Pointer; Comperand: Pointer): Pointer;external 'kernel32' name 'InterlockedCompareExchange';
|
||||
{$endif support_smartlink}
|
||||
function InterlockedDecrement(var Addend: Integer): Integer; external 'kernel32' name 'InterlockedDecrement';
|
||||
function InterlockedExchange(var Target: Integer; Value: Integer): Integer; external 'kernel32' name 'InterlockedExchange';
|
||||
function InterlockedIncrement(var Addend: Integer): Integer; external 'kernel32' name 'InterlockedIncrement';
|
||||
function InterlockedDecrement(var Addend: longint): longint; external 'kernel32' name 'InterlockedDecrement';
|
||||
function InterlockedExchange(var Target: longint; Value: longint): longint; external 'kernel32' name 'InterlockedExchange';
|
||||
function InterlockedIncrement(var Addend: longint): longint; external 'kernel32' name 'InterlockedIncrement';
|
||||
function IntersectRect(var lprcDst: TRect; const lprcSrc1, lprcSrc2: TRect): BOOL; external 'user32' name 'IntersectRect';
|
||||
//function InvertRect(hDC: HDC; const lprc: TRect): BOOL; external 'user32' name 'InvertRect';
|
||||
function IsDialogMessage(hDlg: HWND; var lpMsg: TMsg): BOOL;external 'user32' name 'IsDialogMessageA';
|
||||
@ -1052,7 +1052,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.19 2004-02-08 17:13:11 marco
|
||||
Revision 1.20 2004-03-05 12:17:50 marco
|
||||
* interlocked* changed to longints, including winapi. (which was a bug)
|
||||
|
||||
Revision 1.19 2004/02/08 17:13:11 marco
|
||||
* getsystemtimeasfiletime
|
||||
|
||||
Revision 1.18 2004/02/07 00:21:10 marco
|
||||
|
@ -18,7 +18,7 @@
|
||||
This include contains cpu-specific routines
|
||||
---------------------------------------------------------------------}
|
||||
|
||||
function InterLockedDecrement (var Target: integer) : Integer; assembler;
|
||||
function InterLockedDecrement (var Target: longint) : longint; assembler;
|
||||
asm
|
||||
movl $-1,%edx
|
||||
xchgl %edx,%eax
|
||||
@ -28,7 +28,7 @@ asm
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedIncrement (var Target: integer) : Integer; assembler;
|
||||
function InterLockedIncrement (var Target: longint) : longint; assembler;
|
||||
asm
|
||||
movl $1,%edx
|
||||
xchgl %edx,%eax
|
||||
@ -38,14 +38,14 @@ asm
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedExchange (var Target: integer;Source : integer) : Integer; assembler;
|
||||
function InterLockedExchange (var Target: longint;Source : longint) : longint; assembler;
|
||||
asm
|
||||
xchgl (%rax),%edx
|
||||
movl %edx,%eax
|
||||
end;
|
||||
|
||||
|
||||
function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer; assembler;
|
||||
function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint; assembler;
|
||||
asm
|
||||
xchgl %eax,%edx
|
||||
lock
|
||||
@ -55,7 +55,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2004-02-20 22:15:16 florian
|
||||
Revision 1.2 2004-03-05 12:17:50 marco
|
||||
* interlocked* changed to longints, including winapi. (which was a bug)
|
||||
|
||||
Revision 1.1 2004/02/20 22:15:16 florian
|
||||
+ x86_64 dependend sysutils part added
|
||||
* some 64 bit adaptions
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user