diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2008-12-20 17:40:51 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2008-12-20 17:40:51 +0000 |
commit | b6169b206a513cc5be8027dd7eb4b26039d76a4f (patch) | |
tree | 522b7197c9f8eb452599f481dca2140384b01360 /opcodes/i386-opc.h | |
parent | 257385246e4e7790890d2d2927f1ca2efb780a37 (diff) | |
download | gdb-b6169b206a513cc5be8027dd7eb4b26039d76a4f.zip gdb-b6169b206a513cc5be8027dd7eb4b26039d76a4f.tar.gz gdb-b6169b206a513cc5be8027dd7eb4b26039d76a4f.tar.bz2 |
gas/
2008-12-20 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (_i386_insn): Add swap_operand.
(parse_insn): Handle ".s".
(match_template): Handle swap_operand.
* doc/c-i386.texi: Document .s suffix.
gas/testsuite/
2008-12-20 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/i386.exp: Run opts, opts-intel, sse2avx-opts,
sse2avx-opts-intel, x86-64-opts, x86-64-opts-intel,
x86-64-sse2avx-opts and x86-64-sse2avx-opts-intel.
* gas/i386/opts.d: New.
* gas/i386/opts-intel.d: Likewise.
* gas/i386/opts.s: Likewise.
* gas/i386/sse2avx-opts.d: Likewise.
* gas/i386/sse2avx-opts-intel.d: Likewise.
* gas/i386/x86-64-opts.d: Likewise.
* gas/i386/x86-64-opts-intel.d: Likewise.
* gas/i386/x86-64-opts.s: Likewise.
* gas/i386/x86-64-sse2avx-opts.d: Likewise.
* gas/i386/x86-64-sse2avx-opts-intel.d: Likewise.
opcodes/
2008-12-20 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (EbS): New.
(EvS): Likewise.
(EMS): Likewise.
(EXqS): Likewise.
(EXxS): Likewise.
(b_swap_mode): Likewise.
(v_swap_mode): Likewise.
(q_swap_mode): Likewise.
(x_swap_mode): Likewise.
(v_mode): Updated.
(w_mode): Likewise.
(t_mode): Likewise.
(xmm_mode): Likewise.
(swap_operand): Likewise.
(dis386): Use EbS on movB. Use EvS on moveS.
(dis386_twobyte): Use EXxS on movapX.
(prefix_table): Use EXxS on movups, movupd, movdqu, movdqa,
vmovups, vmovdqu, vmovdqa. Use EMS and EXqS on movq.
(vex_table): Use EXxS on vmovapX.
(vex_len_table): Use EXqS on vmovq.
(intel_operand_size): Handle b_swap_mode, v_swap_mode,
q_swap_mode and x_swap_mode.
(OP_E_register): Handle b_swap_mode and v_swap_mode.
(OP_EM): Handle v_swap_mode.
(OP_EX): x_swap_mode and q_swap_mode.
* i386-gen.c (opcode_modifiers): Add S.
* i386-opc.h (S): New.
(Modrm): Updated.
(i386_opcode_modifier): Add s.
* i386-opc.tbl: Add S to movapd, movaps, movdqa, movdqu, movq,
movupd, movups, vmovapd, vmovaps, vmovdqa, vmovdqu and vmovq.
* i386-tbl.h: Regenerated.
Diffstat (limited to 'opcodes/i386-opc.h')
-rw-r--r-- | opcodes/i386-opc.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h index 3b577db..13e874e 100644 --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -166,8 +166,10 @@ typedef union i386_cpu_flags #define D 0 /* set if operands can be words or dwords encoded the canonical way */ #define W (D + 1) +/* Swap operand in encoding. */ +#define S (W + 1) /* insn has a modrm byte. */ -#define Modrm (W + 1) +#define Modrm (S + 1) /* register is in low 3 bits of opcode */ #define ShortForm (Modrm + 1) /* special case for jump insns. */ @@ -284,6 +286,7 @@ typedef struct i386_opcode_modifier { unsigned int d:1; unsigned int w:1; + unsigned int s:1; unsigned int modrm:1; unsigned int shortform:1; unsigned int jump:1; |