On Tue, May 12, 2020 at 7:27 AM Hongtao Liu <crazy...@gmail.com> wrote:
>
> Documents operand modifiers which are available in asm stmt but
> missing in document.
>
>  | Modifier | Description | Available in asm stmt | Existed in documentation |
>  | --- | --- | ------- | ----- |
>  | L,W,B,Q,S,T | print the opcode suffix for specified size of
> operand. | Available | Not |
>  | C | print opcode suffix for set/cmov insn. | Not | - |
>  | c | like C, but print reversed condition | Not | - |
>  | F,f | likewise, but for floating-point. | Not | - |
>  | O | if HAVE_AS_IX86_CMOV_SUN_SYNTAX, expand to "w.", "l." or "q.",
> otherwise nothing | Not | - |
>  | R | print embedded rounding and sae. | Available | Not |
>  | r | print only sae. | Available | Not |
>  | z | print the opcode suffix for the size of the current operand. |
> Available | Existed |
>  | Z | likewise, with special suffixes for x87 instructions. | Availble | Not 
> |
>  | * | print a star (in certain assembler syntax) | Not | - |
>  | A | print an absolute memory reference. | Available | Existed |
>  | E | print address with DImode register names if TARGET_64BIT. |
> Available | Existed |
>  | w | print the operand as if it's a "word" (HImode) even if it
> isn't. | Available | Existed |
>  | s | print a shift double count, followed by the assemblers argument
> delimiter. | Available | Not |
>  | b | print the QImode name of the register for the indicated operand
> %b0 would print %al if operands[0] is reg 0. | Available | Existed |
>  | w | likewise, print the HImode name of the register. | Available | Existed 
> |
>  | k | likewise, print the SImode name of the register. | Available | Existed 
> |
>  | q | likewise, print the DImode name of the register. | Available | Existed 
> |
>  | x | likewise, print the V4SFmode name of the register. | Available | Not |
>  | t | likewise, print the V8SFmode name of the register. | Available | Not |
>  | g | likewise, print the V16SFmode name of the register. | Avaliable | Not |
>  | h | print the QImode name for a "high" register, either ah, bh, ch
> or dh. | Available | Existed |
>  | y | print "st(0)" instead of "st" as a register. | Available | Not |
>  | d | print duplicated register operand for AVX instruction. |
> Available | Not |
>  | D | print condition for SSE cmp instruction. | Not | - |
>  | P | if PIC, print an @PLT suffix. | Available | Existed |
>  | p | print raw symbol name. | Available | Existed |
>  | X | don't print any sort of PIC '@' suffix for a symbol. | Not | - |
>  | & | print some in-use local-dynamic symbol name. | Not | - |
>  | H | print a memory address offset by 8; used for sse high-parts |
> Available | Existed |
>  | Y | print condition for XOP pcom* instruction. | Not | - |
>  | V | print naked full integer register name without %. | Available | 
> Existed |
>  | + | print a branch hint as 'cs' or 'ds' prefix | Not | - |
>  | ; | print a semicolon (after prefixes due to bug in older gas). | Not | - |
>  | ~ | print "i" if TARGET_AVX2, "f" otherwise. | Not | - |
>  | ^ | print addr32 prefix if TARGET_64BIT and Pmode != word_mode | Not | - |
>  | M | print addr32 prefix for TARGET_X32 with VSIB address. | Not | - |
>  | ! | print NOTRACK prefix for jxx/call/ret instructions if required.
> | Not | - |
>  | N | print maskz if it's constant 0 operand. | Available | Not |
>  | I | print comparision predicate operand for sse cmp condition. | Not | - |
>
> Bootstrap is ok.
>
> gcc/ChangeLog
>
>         PR target/94118
>         * doc/extend.texi (x86Operandmodifiers): Document more x86
>         operand modifier.
>         * gcc/config/i386/i386.c: Add comment for operand modifier N
>         and I.

Although some of modifiers are considered for internal use, they won't
go away, so they could be documented as well.

LGTM.

Thanks,
Uros.

Reply via email to