flat assembler
Message board for the users of flat assembler.
Index
> Compiler Internals > EXTRACTPS minor bug |
Author |
|
MazeGen 01 Jul 2009, 10:43
Code: extractps eax, xmm0, 0 fasm 1.69.00 produces Quote: 66 66 0F 3A 17 C0 00 (duplicated prefix 66h) |
|||
01 Jul 2009, 10:43 |
|
MazeGen 01 Jul 2009, 11:44
There is similar confusion with PEXTRB:
Quote: In 64-bit mode, [...] If the destination operand is a general-purpose register, the default operand size of PEXTRB is 64 bits. Pointless mess, I'd say. EDIT: see also PEXTRW. |
|||
01 Jul 2009, 11:44 |
|
Tomasz Grysztar 01 Jul 2009, 13:40
Yeah, we already had some discussion about this: http://board.flatassembler.net/topic.php?t=9770
The syntax that 1.68+ uses is the result of it. |
|||
01 Jul 2009, 13:40 |
|
MazeGen 01 Jul 2009, 15:04
Thanks for reminding me. So the decision is to kick those weird Intel reqiurements and follow the expected way.
|
|||
01 Jul 2009, 15:04 |
|
bitRAKE 01 Jul 2009, 15:19
MazeGen wrote: should take this as a nonsence in Intel manual and ignore it? _________________ ¯\(°_o)/¯ “languages are not safe - uses can be” Bjarne Stroustrup |
|||
01 Jul 2009, 15:19 |
|
MazeGen 01 Jul 2009, 15:43
Yes, seems like Intel needs more time to settle on 64 bits. The documentation, for example, on REP prefix counter size in 64-bit mode have always been wrong.
|
|||
01 Jul 2009, 15:43 |
|
bitRAKE 02 Jul 2009, 04:14
Quote: In 64-bit mode, default operation size is 32 bits. The default count register is RCX for REP INS and REP OUTS; it is ECX for other instructions. REX.W does not promote operation to 64-bit for REP INS and REP OUTS. However, using a REX prefix in the form of REX.W does promote operation to 64-bit operands for other REP/REPNE/REPZ/REPNZ instructions. See the summary chart at the beginning of this section for encoding data and limits. ...at least on Table 4-3 Notes they qualify the statement: Quote: * Count register is CX, ECX or RCX by default, depending on attributes of the operating modes. In 64-bit mode, if default operation size is 32 bits, the count register becomes RCX when a REX prefix is used. Code: IF AddressSize = 16 THEN Use CX for CountReg; ELSE IF AddressSize = 64 and REX.W used THEN Use RCX for CountReg; FI; ELSE Use ECX for CountReg; FI; |
|||
02 Jul 2009, 04:14 |
|
MazeGen 02 Jul 2009, 07:41
Someone from Intel told me about a way how to report typos and errors, but the form is very awkward so I have never tried it.
|
|||
02 Jul 2009, 07:41 |
|
vid 02 Jul 2009, 21:07
I tried it, regarding a terrible description of VMXON region. Never got any feedback on that, I'd have to check next revision of manual whether they accepted it or what.
|
|||
02 Jul 2009, 21:07 |
|
LocoDelAssembly 02 Jul 2009, 22:18
Take a look at Table 2-1, seems they just invented a new hex number (EQ). It is the June 2009 version of the volume 2A.
|
|||
02 Jul 2009, 22:18 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.