My current largest issue is that due to source from from x86_64.inc function InterLockedIncrement64 (var Target: int64) : int64; assembler; asm {$ifdef win64} movq %rcx,%rax {$else win64} movq %rdi,%rax {$endif win64} movq $1,%rdx xchgq %rdx,%rax lock xaddq %rax, (%rdx) incq %rax end;
This code should not be excluded from me under i386 mode. How many 32 bit versions of FPC / Lazarus are out there with access to x64 cpu instructions. Coder: caveat emptor here. I drop my argument for the merging of Interlocked*64 to just Interlocked but I really think it would be good to have access to this code. Which presently any working with i386 build of FPC are not even if in my project options (Lazarus) i set -dcpu64. So here I am with x64 cpu but with i386 build of Windows/FPC/Laz I cannot execute Interlocked*64(..) on my machine... On Wed, Oct 27, 2010 at 4:42 PM, Andrew Brunner <andrew.t.brun...@gmail.com> wrote: > On Wed, Oct 27, 2010 at 4:37 PM, Vinzent Höfler > <jellyfish.softw...@gmx.net> wrote: >> On Wed, 27 Oct 2010 23:26:00 +0200, Andrew Brunner >> <andrew.t.brun...@gmail.com> wrote: >> >> I didn't say "restart", I said "lock out the reader for a moment". >> Maybe it's easier to grasp if I put it in some pseudo-code: >> >> -- 8< -- >> Lock_Readers; > > I'm not wanting to place locks all over the place when we have cpu locks. > _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel