[GAS] ntoskrnl/ex/i386/fastinterlck_asm.S ntoskrnl/ex/i386/fastinterlck_asm.S: Assembler messages: ntoskrnl/ex/i386/fastinterlck_asm.S:408: Error: suffix or operands invalid for `cmpxchg8b' ntoskrnl/ex/i386/fastinterlck_asm.S:452: Error: suffix or operands invalid for `cmpxchg8b' ntoskrnl/ex/i386/fastinterlck_asm.S:492: Error: suffix or operands invalid for `cmpxchg8b' ntoskrnl/ex/i386/fastinterlck_asm.S:626: Error: suffix or operands invalid for `cmpxchg8b' ntoskrnl/ex/i386/fastinterlck_asm.S:658: Error: suffix or operands invalid for `cmpxchg8b' make[1]: *** [obj-i386/ntoskrnl/ex/i386/fastinterlck_asm.o] Error 1
From: Alex Buell
[GAS] ntoskrnl/ex/i386/fastinterlck_asm.S ntoskrnl/ex/i386/fastinterlck_asm.S: Assembler messages: ntoskrnl/ex/i386/fastinterlck_asm.S:408: Error: suffix or operands invalid
for `cmpxchg8b'
I believe cmpxchg8b is a Pentium-or-higher instruction, so we shouldn't be using it (at least not without testing if it's available).
GvG
On Sun, 1 Jan 2006 20:22:38 +0100 "Ge van Geldorp" gvg@reactos.org waved a wand and this message magically appeared:
From: Alex Buell
[GAS] ntoskrnl/ex/i386/fastinterlck_asm.S ntoskrnl/ex/i386/fastinterlck_asm.S: Assembler messages: ntoskrnl/ex/i386/fastinterlck_asm.S:408: Error: suffix or operands invalid
for `cmpxchg8b'
I believe cmpxchg8b is a Pentium-or-higher instruction, so we shouldn't be using it (at least not without testing if it's available).
FYI I use the following versions: binutils 2.15.90.0.2, gcc 3.4.2 to build ReactOS.
Ge van Geldorp wrote:
From: Alex Buell
[GAS] ntoskrnl/ex/i386/fastinterlck_asm.S ntoskrnl/ex/i386/fastinterlck_asm.S: Assembler messages: ntoskrnl/ex/i386/fastinterlck_asm.S:408: Error: suffix or operands invalid
for `cmpxchg8b'
I believe cmpxchg8b is a Pentium-or-higher instruction, so we shouldn't be using it (at least not without testing if it's available).
GvG
Hi,
We already did, so I simply re-used that assumption. Does/should ReactOS still work on 486? If so, I can add code to test and modify the assumption (but once again, I note that some of the original code already used cmpxhcg8b and nobody has complained ever.
Best regards, Alex Ionescu
Alex Ionescu wrote:
Ge van Geldorp wrote:
From: Alex Buell
[GAS] ntoskrnl/ex/i386/fastinterlck_asm.S ntoskrnl/ex/i386/fastinterlck_asm.S: Assembler messages: ntoskrnl/ex/i386/fastinterlck_asm.S:408: Error: suffix or operands invalid
for `cmpxchg8b' I believe cmpxchg8b is a Pentium-or-higher instruction, so we shouldn't be using it (at least not without testing if it's available).
GvG
Hi,
We already did, so I simply re-used that assumption. Does/should ReactOS still work on 486? If so, I can add code to test and modify the assumption (but once again, I note that some of the original code already used cmpxhcg8b and nobody has complained ever.
Best regards, Alex Ionescu
cmpxchg8b was introduced by me for ExfpInterlockedExchange64 and ExfInterlockedCompareExchange64. This two functions are used in page.c for pae mode functions. Pae mode works only on pentium or newer cpus. The kernel works also on a 486, because pae mode would be never enabled on a 486.
- Hartmut
Hartmut Birr wrote:
cmpxchg8b was introduced by me for ExfpInterlockedExchange64 and ExfInterlockedCompareExchange64. This two functions are used in page.c for pae mode functions. Pae mode works only on pentium or newer cpus. The kernel works also on a 486, because pae mode would be never enabled on a 486.
- Hartmut
Good point! I'll fix this up ASAP.
Best regards, Alex Ionescu
On Mon, 02 Jan 2006 10:27:28 -0500 Alex Ionescu ionucu@videotron.ca waved a wand and this message magically appeared:
We already did, so I simply re-used that assumption. Does/should ReactOS still work on 486? If so, I can add code to test and modify the assumption (but once again, I note that some of the original code already used cmpxhcg8b and nobody has complained ever.
I think you'll find that it worked in the past because it used different opcodes/suffixes.