aboutsummaryrefslogtreecommitdiff
path: root/opcodes/ChangeLog
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2021-03-29 12:03:31 +0200
committerJan Beulich <jbeulich@suse.com>2021-03-29 12:03:31 +0200
commit9df6f676c2c7280dc0c419c43927a07c6359814d (patch)
treeebc12d8d2d39793ca514b4f004494a17c5a6710f /opcodes/ChangeLog
parent389d00a5e5b1fa6fcd9eda747b17ef73f58eb693 (diff)
downloadgdb-9df6f676c2c7280dc0c419c43927a07c6359814d.zip
gdb-9df6f676c2c7280dc0c419c43927a07c6359814d.tar.gz
gdb-9df6f676c2c7280dc0c419c43927a07c6359814d.tar.bz2
x86: shrink some struct insn_template fields
Now that all base opcodes are only at most 2 bytes in size, shrink its template field to just as much. By also shrinking extension_opcode and operands to just what they really need, we can free up an entire 32-bit slot (plus 4 left bits past the bitfields themselves). At present this alters sizeof(struct insn_template) only for 32-bit builds. In 64-bit builds it instead leaves a padding hole that will allow to buffer future growth of other fields (opcode_modifier, cpu_flags, operand_types[]).
Diffstat (limited to 'opcodes/ChangeLog')
-rw-r--r--opcodes/ChangeLog6
1 files changed, 6 insertions, 0 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 82a1c5c..ff0ecf3 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,11 @@
2021-03-29 Jan Beulich <jbeulich@suse.com>
+ * i386-opc.h (struct insn_template): Shrink base_opcode to 16
+ bits. Shrink extension_opcode to 9 bits. Make it signed. Change
+ value of None. Shrink operands to 3 bits.
+
+2021-03-29 Jan Beulich <jbeulich@suse.com>
+
* i386-gen.c (process_i386_opcode_modifier): New parameter
"space".
(output_i386_opcode): New local variable "space". Adjust