i386: Document memory size reference in assembler
Cui, Lili
lili.cui@intel.com
Tue Jun 25 08:56:00 GMT 2019
Update patch, separate suffix x/y/z with b/w/d/q .
-----Original Message-----
From: Jan Beulich [mailto:JBeulich@suse.com]
Sent: Monday, June 24, 2019 3:05 PM
To: Cui, Lili <lili.cui@intel.com>
Cc: Zhang, Annita <annita.zhang@intel.com>; Lu, Hongjiu <hongjiu.lu@intel.com>; Liu, Hongtao <hongtao.liu@intel.com>; Xiao, Wei3 <wei3.xiao@intel.com>; binutils@sourceware.org
Subject: Re: i386: Document memory size reference in assembler
>>> On 24.06.19 at 05:30, <lili.cui@intel.com> wrote:
> --- a/gas/doc/c-i386.texi
> +++ b/gas/doc/c-i386.texi
> @@ -583,12 +583,16 @@ instruction, do @emph{not} have reversed order.
> @ref{i386-Bugs}.
> @item
> In AT&T syntax the size of memory operands is determined from the last
> character of the instruction mnemonic. Mnemonic suffixes of @samp{b},
> -@samp{w}, @samp{l} and @samp{q} specify byte (8-bit), word (16-bit),
> long
> -(32-bit) and quadruple word (64-bit) memory references. Intel syntax
> accomplishes -this by prefixing memory operands (@emph{not} the
> instruction mnemonics) with -@samp{byte ptr}, @samp{word ptr},
> @samp{dword ptr} and @samp{qword ptr}. Thus, -Intel @samp{mov al,
> byte ptr @var{foo}} is @samp{movb @var{foo}, %al} in AT&T -syntax.
> +@samp{w}, @samp{l}, @samp{q}, @samp{x}, @samp{y} and @samp{z} specify
> +byte (8-bit), word (16-bit), long (32-bit), quadruple word (64-bit),
> +xmm (128-bit vector), ymm (256-bit vector) and zmm (512-bit vector)
> +memory references. Intel syntax accomplishes this by prefixing
> +memory operands (@emph{not}the instruction mnemonics) with @samp{byte
> +ptr}, @samp{word ptr}, @samp{dword ptr}, @samp{qword ptr},
> +@samp{xmmword ptr}, @samp{ymmword ptr} and @samp{zmmword ptr}. Thus,
> +Intel syntax @samp{mov al, byte ptr @var{foo}} is @samp{movb
> +@var{foo}, %al} in AT&T syntax. In Intel syntax, @samp{fword ptr},
> +@samp{tword ptr} and @samp{oword ptr} specify 48-bit, 80-bit and 128-bit memory references.
This makes it sound as if the x/y/z suffixes were universally applicable, just like the b/w/d/q ones are, but that's not the case: They're used
(permitted) only when there's no other way to disambiguate an insn.
Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-i386-Document-memory-size-reference-in-assembler.patch
Type: application/octet-stream
Size: 2263 bytes
Desc: 0001-i386-Document-memory-size-reference-in-assembler.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20190625/6ea2cccb/attachment.obj>
More information about the Binutils
mailing list