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.