aboutsummaryrefslogtreecommitdiff
path: root/opcodes/ChangeLog
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2019-07-16 09:31:36 +0200
committerJan Beulich <jbeulich@suse.com>2019-07-16 09:31:36 +0200
commitdfd6917457a3030ea4a4b6356f65216fab92d0b8 (patch)
tree564ff316e799585e35f21a1cec2393a4d5d11e4d /opcodes/ChangeLog
parent21df382b918888de64749e977f185c4e10a5b838 (diff)
downloadgdb-dfd6917457a3030ea4a4b6356f65216fab92d0b8.zip
gdb-dfd6917457a3030ea4a4b6356f65216fab92d0b8.tar.gz
gdb-dfd6917457a3030ea4a4b6356f65216fab92d0b8.tar.bz2
x86: make RegMem an opcode modifier
... instead of an operand type bit: It's an insn property, not an operand one. There's just one actual change to be made to the templates: Most are now required to have the (unswapped) destination go into ModR/M.rm, so VMOVD template needs its opcode adjusted accordingly and its operands swapped. {,V}MOVS{S,D}, otoh, are left alone in this regard, as otherwise generated code would differ from what we've been producing so far (which I don't think is wanted). Take the opportunity and add a missing IgnoreSize to pextrb (leading to an error in 16-bit mode), and take the liberty to once again drop stray IgnoreSize attributes from lines changed and neighboring related ones.
Diffstat (limited to 'opcodes/ChangeLog')
-rw-r--r--opcodes/ChangeLog23
1 files changed, 23 insertions, 0 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 2a7c67f..c8af99f 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,28 @@
2019-07-16 Jan Beulich <jbeulich@suse.com>
+ * i386-gen.c (operand_types): Move RegMem ...
+ (opcode_modifiers): ... here.
+ * i386-opc.h (RegMem): Move to opcode modifer enum.
+ (union i386_operand_type): Move regmem field ...
+ (struct i386_opcode_modifier): ... here.
+ * i386-opc.tbl (RegMem): Define.
+ (mov, movq): Move RegMem on segment, control, debug, and test
+ register flavors.
+ (pextrb): Move RegMem on register only flavors. Add IgnoreSize
+ to non-SSE2AVX flavor.
+ (extractps, pextrw, vcvtps2ph, vextractps, vpextrb, vpextrw):
+ Move RegMem on register only flavors. Drop IgnoreSize from
+ legacy encoding flavors.
+ (movss, movsd, vmovss, vmovsd): Drop RegMem from register only
+ flavors.
+ (vpinsrb, vpinsrw): Drop IgnoreSize where still present on
+ register only flavors.
+ (vmovd): Move RegMem and drop IgnoreSize on register only
+ flavor. Change opcode and operand order to store form.
+ * opcodes/i386-init.h, i386-tbl.h: Re-generate.
+
+2019-07-16 Jan Beulich <jbeulich@suse.com>
+
* i386-gen.c (operand_type_init, operand_types): Replace SReg
entries.
* i386-opc.h (SReg2, SReg3): Replace by ...