1 2021-11-11 Alex Coplan <alex.coplan@arm.com>
3 * aarch64-opc.c (operand_general_constraint_met_p): Always check
4 if the immediate is in range for AARCH64_OPND_A64C_IMM6_EXT.
6 2021-09-24 Alex Coplan <alex.coplan@arm.com>
8 * aarch64-tbl.h (aarch64_opcode_table): Update A64C_INSNs
9 ldtr/sttr to take A64C_ADDR_SIMM9 instead of ADDR_SIMM9
12 2021-03-17 Luis Machado <luis.machado@arm.com>
14 * aarch64-dis.c (enum map_type): Moved to include/opcode/aarch64.h.
16 (get_sym_code_type): Adjust.
17 (print_insn_aarch64): Use private data when available.
19 2020-10-20 Luis Machado <luis.machado@arm.com>
21 * aarch64-tbl.h (aarch64_opcode_table): Update iclass field
24 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
26 * aarch64-dis.c (get_sym_code_type): Fix C64 PLT disassembly.
28 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
30 * aarch64-opc.c (operand_general_constraint_met_p): Expect
31 capability registers for cache operations in C64.
32 (aarch64_print_operand): Print register arguments for cache
33 instructions correctly.
34 * aarch64-tbl.h (aarch64_opcode_table): New instructions.
35 (AARCH64_OPERANDS): New operands.
36 * aarch64-asm-2.c: Regenerate.
37 * aarch64-dis-2.c: Regenerate.
38 * aarch64-opc-2.c: Regenerate.
40 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
42 * aarch64-asm.c (aarch64_ins_sysreg): Adjust for morello
44 * aarch64-dis.c (aarch64_ext_sysreg): Likewise.
45 * aarch64-opc.c (fields): New field a64c_op0.
46 (operand_general_constraint_met_p): Add SYSREG operand
48 (aarch64_print_operand): Print Morello MRS/MSR operands
50 (SR_MORELLO): New macro.
51 (aarch64_sys_regs): Use it. Add Morello system registers.
52 (aarch64_sys_reg_capreg_supported_p): New function.
53 * aarch64-opc.h (aarch64_field_kind): New field FLD_a64c_op0.
54 * aarch64-tbl.h (QL2_SRC_CA, QL2_DST_CA): New macros.
55 (aarch64_opcode_table): New instructions.
56 * aarch64-asm-2.c: Regenerate.
57 * aarch64-dis-2.c: Regenerate.
58 * aarch64-opc-2.c: Regenerate.
60 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
62 * aarch64-dis.c (aarch64_ext_regno): Reject A64 ADR when in
64 (aarch64_ext_imm): Select ADRDP in C64.
65 * aarch64-opc.c (fields): Add a64c_immhi field.
66 (validate_adr_reg_for_feature): New function.
67 (operand_general_constraint_met_p): Use it.
68 (aarch64_print_operand): Add A64C_ADDR_ADRDP.
69 * aarch64-opc.h (aarch64_field_kind): FLD_a64c_immhi.
70 * aarch64-tbl.h (aarch64_opcode_table): Add new instructions.
71 (AARCH64_OPERANDS): Add new operands.
72 * aarch64-asm-2.c: Regenerate.
73 * aarch64-dis-2.c: Regenerate.
74 * aarch64-opc-2.c: Regenerate.
76 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
78 * aarch64-tbl.h (aarch64_opcode_table): Change OP of LDUR/STUR
80 * aarch64-opc-2.c: Regenerate.
82 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
84 * aarch64-asm.c (aarch64_ins_addr_uimm): Shift only if
86 * aarch64-tbl.h (QL2_B_ADDR, QL2_X_ADDR, QL2_H_ADDR): New
88 (aarch64_opcode_table): New instructions.
89 * aarch64-asm-2.c: Regenerate.
90 * aarch64-dis-2.c: Regenerate.
91 * aarch64-opc-2.c: Regenerate.
93 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
95 * aarch64-asm.c (aarch64_ins_fregsz): New function.
96 (aarch64_ins_addr_simm): Add ldst_altbase to assert.
97 * aarch64-asm.h (ins_fregsz): New function declaration.
98 * aarch64-dis.c (aarch64_ext_fregsz): New function.
99 (aarch64_ext_addr_simm): Disable writeback for ldst_altbase.
100 * aarch64-dis.h (ext_fregsz): New function declaration.
101 * aarch64-opc.c (fields): Add altbase_sf2 and altbase_sf3.
102 (operand_general_constraint_met_p): Add CAPADDR_SIMM9.
103 (aarch64_print_operand): Add CAPADDR_SIMM9, Rsz2, Fsz, St.
104 * aarch64-opc.h (aarch64_field_kind): Add FLD_altbase_sf2, FLD_altbase_sf3.
105 * aarch64-tbl.h (aarch64_opcode_table): New instructions.
106 (AARCH64_OPERANDS): New operands.
107 * aarch64-asm-2.c: Regenerate.
108 * aarch64-dis-2.c: Regenerate.
109 * aarch64-opc-2.c: Regenerate.
111 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
113 * aarch64-asm.c (aarch64_ins_regsz): New function.
114 (aarch64_ins_ft): Support altbase loads.
115 (aarch64_ins_addr_uimm12): Rename to aarch64_ins_addr_uimm.
116 * aarch64-asm.h: (ins_regsz): New function declaration.
117 (ins_addr_uimm12): Rename to ins_addr_uimm.
118 * aarch64-dis.c (aarch64_ext_regsz): New function.
119 (aarch64_ext_ft): Support altbase loads.
120 (aarch64_ext_addr_uimm12): Rename to aarch64_ext_addr_uimm.
121 * aarch64-dis.h: (ext_regsz): New function declaration.
122 (dis_addr_uimm12): Rename to dis_addr_uimm.
123 * aarch64-opc.c (fields): Add altbase_sf.
124 (operand_general_constraint_met_p): Check constraints for
125 ldst_altbase, CAPADDR_REGOFF, CAPADDR_UIMM9.
126 (aarch64_print_operand): Print Rsz, CAPADDR_REGOFF,
128 * aarch64-opc.h (aarch64_field_kind): Add FLD_altbase_sf.
129 * aarch64-tbl.h (QL2_A64C_R_CAPADDR, QL2_A64C_FP_CAPADDR): New
131 (aarch64_opcode_table): New instructions.
132 (AARCH64_OPERANDS): New operands.
133 * aarch64-asm-2.c: Regenerate.
134 * aarch64-dis-2.c: Regenerate.
135 * aarch64-opc-2.c: Regenerate.
137 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
139 * aarch64-opc.c (get_altbase_reg_name): New function.
140 (aarch64_print_operand): Use it. Add Wt.
141 * aarch64-tbl.h (QL2_A64C_W_CAPADDR): New macro.
142 (aarch64_opcode_table): Add instructions.
143 (AARCH64_OPERANDS): New operand.
144 * aarch64-asm-2.c: Regenerate.
145 * aarch64-dis-2.c: Regenerate.
146 * aarch64-opc-2.c: Regenerate.
148 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
150 * aarch64-asm.c (aarch64_ins_addr_simm): Support scaling.
151 * aarch64-dis.c (aarch64_ext_addr_simm): Likewise.
152 * aarch64-opc.c (operand_general_constraint_met_p,
153 aarch64_print_operand): Add A64C_ADDR_SIMM9.
154 * aarch64-tbl.h (aarch64_opcode_table): New instructions.
155 (AARCH64_OPERANDS): New operands.
156 * aarch64-asm-2.c: Regenerate.
157 * aarch64-dis-2.c: Regenerate.
158 * aarch64-opc-2.c: Regenerate.
160 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
162 * aarch64-asm-2.c: Regenerate.
163 * aarch64-dis-2.c: Regenerate.
164 * aarch64-opc-2.c: Regenerate.
165 * aarch64-opc.c (fields): Add imm17.
166 (operand_general_constraint_met_p, aarch64_print_operand): Add
168 * aarch64-opc.h (aarch64_field_kind): Add FLD_imm17.
169 * aarch64-tbl.h (QL2_A64C_CA_PCREL): New macro.
170 (aarch64_opcode_table): New instruction.
171 (AARCH64_OPERANDS): New operand.
173 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
175 * aarch64-asm-2.c: Regenerate.
176 * aarch64-dis-2.c: Regenerate.
177 * aarch64-opc-2.c: Regenerate.
178 * aarch64-opc.c (fields): Add a64c_index2.
179 (operand_general_constraint_met_p, aarch64_print_operand): Add
181 * aarch64-opc.h (aarch64_field_kind): Add FLD_a64c_index2.
182 * aarch64-tbl.h (QL2_A64C_CA_ADDR, QL2_A64C_X_ADDR,
183 QL3_A64C_W_CA_ADDR, QL4_A64C_W_CA_CA_ADDR): New macros.
184 (aarch64_opcode_table): New instructions.
185 (AARCH64_OPERANDS): New operands.
187 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
189 * aarch64-asm.c (aarch64_ins_addr_simple): Fix comment.
190 (aarch64_ins_addr_simm): Support capability address operands.
191 * aarch64-dis.c (aarch64_ext_addr_simple): Fix comment.
192 (aarch64_ext_addr_simm): Support capability address operands.
193 * aarch64-opc.c (fields): Add capaddr_simm7.
194 (operand_general_constraint_met_p): Add CAPADDR_SIMM7.
195 (aarch64_print_operand): Add CAPADDR_SIMM7 and CAPADDR_SIMPLE.
196 * aarch64-opc.h (aarch64_field_kind): Add FLD_capaddr_simm7.
197 * aarch64-tbl.h (QL1_A64C_CAPADDR, QL2_A64C_CA_CAPADDR): New
199 (aarch64_opcode_table): New instructions.
200 (AARCH64_OPERANDS): New operands.
201 * aarch64-asm-2.c: Regenerate.
202 * aarch64-dis-2.c: Regenerate.
203 * aarch64-opc-2.c: Regenerate.
205 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
207 * aarch64-asm.c (aarch64_ins_form): New function.
208 * aarch64-asm.h (ins_form): New function declaration.
209 * aarch64-dis.c (aarch64_ext_form): New function.
210 * aarch64-dis.h (ext_form): New function declaraion.
211 * aarch64-opc.c (fields): New field form.
212 (aarch64_forms): Initialise array.
213 (get_form_from_value, get_form_from_str): New functions.
214 (aarch64_print_operand): Add FORM.
215 * aarch64-opc.h (aarch64_field_kind): Add FLD_form.
216 * aarch64-tbl.h (aarch64_opcode_table): New instructions.
217 (AARCH64_OPERANDS): New operands.
218 * aarch64-asm-2.c: Regenerate.
219 * aarch64-dis-2.c: Regenerate.
220 * aarch64-opc-2.c: Regenerate.
222 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
224 * aarch64-asm.c (aarch64_ins_aimm): Fix comment.
225 * aarch64-dis.c (aarch64_ext_a64c_imm6): New function.
226 * aarch64-dis.h (ext_a64c_imm6): New function.
227 * aarch64-opc.c (fields): New field a64c_shift.
228 (operand_general_constraint_met_p, aarch64_print_operand): Add
230 * aarch64-opc.h (aarch64_field_kind): Add new field.
231 * aarch64-tbl.h (aarch64_opcode_table): New instructions.
232 (AARCH64_OPERANDS): New operands.
233 * aarch64-asm-2.c: Regenerate.
234 * aarch64-dis-2.c: Regenerate.
235 * aarch64-opc-2.c: Regenerate.
237 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
239 * aarch64-asm.c (aarch64_ins_perm): New function.
240 * aarch64-asm.h (ins_perm): New function.
241 * aarch64-dis.c (aarch64_ext_perm): New function.
242 * aarch64-dis.h (ext_perm): New function.
243 * aarch64-opc.c (fields): New field perm.
244 (get_perm_str, get_perm_bit): New functions.
245 (aarch64_print_operand): Add PERM.
246 * aarch64-opc.h (aarch64_field_kind): Add perm.
247 * aarch64-tbl.h (QL_I2SAMEQ): New macro.
248 (aarch64_opcode_table): New instructions.
249 (AARCH64_OPERANDS): New operands.
250 * aarch64-asm-2.c: Regenerate.
251 * aarch64-dis-2.c: Regenerate.
252 * aarch64-opc-2.c: Regenerate.
254 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
256 * aarch64-tbl.h (QL2_A64C_X_CA, QL2_A64C_CA_X, QL2_A64C_X_X,
257 QL3_A64C_X_CA_CA, QL3_A64C_CA_CA_ADDR, QL4_A64C_CSEL): New
259 (aarch64_opcode_table): New instructions.
260 * aarch64-asm-2.c: Regenerate.
261 * aarch64-dis-2.c: Regenerate.
262 * aarch64-opc-2.c: Regenerate.
264 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
266 * aarch64-dis.c (aarch64_ext_a64c_immv): New function.
267 (aarch64_ext_regno): Set PRESENT flag for A64 RET.
268 * aarch64-dis.h (aarch64_ext_a64c_immv): New function.
269 * aarch64-opc.c (operand_general_constraint_met_p): Add
270 A64C_IMMV4. Remove ATTRIBUTE_UNUSED. Reject A64 RET without
272 (aarch64_match_operands_constraint): Remove ATTRIBUTE_UNUSED.
273 (aarch64_print_operand): Add A64C_IMMV4, Cam_SP and CST_REG.
274 * aarch64-tbl.h (QL1_A64C_CA, QL3_A64C_CA_CA_CA): New macros.
275 (aarch64_opcode_table): New instructions.
276 (AARCH64_OPERANDS): New operands.
277 * aarch64-asm-2.c: Regenerate.
278 * aarch64-dis-2.c: Regenerate.
279 * aarch64-opc-2.c: Regenerate.
281 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
283 * aarch64-opc.c (fields): Add a64c_imm8.
284 (aarch64_print_operand): Add A64C_IMM8.
285 * aarch64-opc.h (aarch64_field_kind): Add a64c_imm8.
286 * aarch64-tbl.h (QL3_A64C_CA_CA_X): New macro.
287 (aarch64_opcode_table): New instructions.
288 (AARCH64_OPERANDS): Add A64C_IMM8.
289 * aarch64-asm-2.c: Regenerate.
290 * aarch64-dis-2.c: Regenerate.
291 * aarch64-opc-2.c: Regenerate.
293 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
295 * aarch64-dis.c (aarch64_ext_regno, aarch64_ext_reg_extended):
296 Identify capability register class.
297 (do_ext_aimm): New function.
298 (arch64_ext_aimm): Call it.
299 (aarch64_ext_a64c_aimm): New function.
300 * aarch64-dis.h (ext_a64c_aimm): New function.
301 * aarch64-opc.c (fields): Add a64c_shift_ai field.
302 (operand_general_constraint_met_p, aarch64_print_operand): Add
303 A64C_AIMM and A64C_Rm_EXT.
304 * aarch64-opc.h (aarch64_field_kind): Add a64c_shift_ai.
305 * aarch64-tbl.h (QL3_A64C_CA_CA_NIL, QL3_A64C_CA_CA_R): New
307 (aarch64_opcode_table): New instructions.
308 (AARCH64_OPERANDS): Add new operands.
309 * aarch64-asm-2.c: Regenerate.
310 * aarch64-dis-2.c: Regenerate.
311 * aarch64-opc-2.c: Regenerate.
313 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
315 * aarch64-asm.c (do_special_encoding): Recognise capability
317 * aarch64-opc.c (aarch64_opnd_qualifiers): Capability operand
319 (aarch64_print_operand): Support capability operands.
320 * aarch64-opc.h (select_operand_for_sf_field_coding):
321 Recognise capability registers.
322 * aarch64-tbl.h (QL2_A64C_CA_CA): New macro.
323 (aarch64_opcode_table): Add mov and cpy.
324 (AARCH64_OPERANDS): Add capability register operands.
325 * aarch64-asm-2.c: Regenerate.
326 * aarch64-dis-2.c: Regenerate.
327 * aarch64-opc-2.c: Regenerate.
329 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
331 * aarch64-dis.c: Include elf/aarch64.h.
332 (get_sym_code_type): Identify C64 functions.
334 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
336 * aarch64-asm.c (aarch64_opcode_encode): Add CPU variant
338 * aarch64-dis.c (map_type): Add MAP_C64.
339 (MAYBE_C64): New macro.
340 (determine_disassembling_preference, print_operands): Use it.
341 (aarch64_symbol_is_valid): Test for $c.
342 (get_sym_code_type): Recognise MAP_C64.
343 (select_aarch64_variant): Clear AARCH64_FEATURE_C64.
344 (determine_disassembling_preference, aarch64_opcode_decode):
345 Adjust calls to aarch64_match_operands_constraint.
346 * aarch64-opc.c (get_altbase_reg_name, get_base_reg_name): New
348 (aarch64_print_operand): Use them.
349 (aarch64_match_operands_constraint): Likewise.
350 * aarch64-opc.h (aarch64_match_operands_constraint): Add CPU
353 2020-10-20 Siddhesh Poyarekar <siddesh.poyarekar@arm.com>
355 * aarch64-opc.c (fields): New capability register fields.
356 (aarch64_opnd_qualifiers): Capability operand qualifiers.
357 (int_reg): Add capability register bank.
358 (get_int_reg_name): Adjust for capability registers.
359 (get_cap_reg_name): New function.
360 (aarch64_print_operand): Support printing capability operands.
361 * aarch64-opc.h (aarch64_field_kind): Add capability operand
363 (OPD_F_MAYBE_CSP): New macro.
364 (operand_maybe_cap_stack_pointer): New function.
365 * aarch64-tbl.h (QL2_A64C_CA_CA, A64C, A64C_INSN): New macros.
366 (aarch64_feature_a64c): New feature set.
368 2020-10-16 Lili Cui <lili.cui@intel.com>
370 * i386-opc.tbl: Rename CpuVEX_PREFIX to PseudoVexPrefix
371 and move it from cpu_flags to opcode_modifiers.
372 Use VexW0 and VexVVVV in the AVX-VNNI instructions.
373 * i386-gen.c: Likewise.
374 * i386-opc.h: Likewise.
375 * i386-opc.h: Likewise.
376 * i386-init.h: Regenerated.
377 * i386-tbl.h: Likewise.
379 2020-10-14 H.J. Lu <hongjiu.lu@intel.com>
380 Lili Cui <lili.cui@intel.com>
382 * i386-dis.c (PREFIX_VEX_0F3850): New.
383 (PREFIX_VEX_0F3851): Likewise.
384 (PREFIX_VEX_0F3852): Likewise.
385 (PREFIX_VEX_0F3853): Likewise.
386 (VEX_W_0F3850_P_2): Likewise.
387 (VEX_W_0F3851_P_2): Likewise.
388 (VEX_W_0F3852_P_2): Likewise.
389 (VEX_W_0F3853_P_2): Likewise.
390 (prefix_table): Add PREFIX_VEX_0F3850, PREFIX_VEX_0F3851,
391 PREFIX_VEX_0F3852 and PREFIX_VEX_0F3853.
392 (vex_table): Add VEX_W_0F3850_P_2, VEX_W_0F3851_P_2,
393 VEX_W_0F3852_P_2 and VEX_W_0F3853_P_2.
394 (putop): Add support for "XV" to print "{vex3}" pseudo prefix.
395 * i386-gen.c (cpu_flag_init): Clear the CpuAVX_VNNI bit in
396 CPU_UNKNOWN_FLAGS. Add CPU_AVX_VNNI_FLAGS and
397 CPU_ANY_AVX_VNNI_FLAGS.
398 (cpu_flags): Add CpuAVX_VNNI and CpuVEX_PREFIX.
399 * i386-opc.h (CpuAVX_VNNI): New.
400 (CpuVEX_PREFIX): Likewise.
401 (i386_cpu_flags): Add cpuavx_vnni and cpuvex_prefix.
402 * i386-opc.tbl: Add Intel AVX VNNI instructions.
403 * i386-init.h: Regenerated.
404 * i386-tbl.h: Likewise.
406 2020-10-14 Lili Cui <lili.cui@intel.com>
407 H.J. Lu <hongjiu.lu@intel.com>
409 * i386-dis.c (PREFIX_0F3A0F): New.
410 (MOD_0F3A0F_PREFIX_1): Likewise.
411 (REG_0F3A0F_PREFIX_1_MOD_3): Likewise.
412 (RM_0F3A0F_P_1_MOD_3_REG_0): Likewise.
413 (prefix_table): Add PREFIX_0F3A0F.
414 (mod_table): Add MOD_0F3A0F_PREFIX_1.
415 (reg_table): Add REG_0F3A0F_PREFIX_1_MOD_3.
416 (rm_table): Add RM_0F3A0F_P_1_MOD_3_REG_0.
417 * i386-gen.c (cpu_flag_init): Add HRESET_FLAGS,
418 CPU_ANY_HRESET_FLAGS.
419 (cpu_flags): Add CpuHRESET.
420 (output_i386_opcode): Allow 4 byte base_opcode.
421 * i386-opc.h (enum): Add CpuHRESET.
422 (i386_cpu_flags): Add cpuhreset.
423 * i386-opc.tbl: Add Intel HRESET instruction.
424 * i386-init.h: Regenerate.
425 * i386-tbl.h: Likewise.
427 2020-10-14 Lili Cui <lili.cui@intel.com>
429 * i386-dis.c (enum): Add
430 PREFIX_MOD_3_0F01_REG_5_RM_4,
431 PREFIX_MOD_3_0F01_REG_5_RM_5,
432 PREFIX_MOD_3_0F01_REG_5_RM_6,
433 PREFIX_MOD_3_0F01_REG_5_RM_7,
434 X86_64_0F01_REG_5_MOD_3_RM_4_PREFIX_1,
435 X86_64_0F01_REG_5_MOD_3_RM_5_PREFIX_1,
436 X86_64_0F01_REG_5_MOD_3_RM_6_PREFIX_1,
437 X86_64_0F01_REG_5_MOD_3_RM_7_PREFIX_1,
438 X86_64_0FC7_REG_6_MOD_3_PREFIX_1.
439 (prefix_table): New instructions (see prefixes above).
441 * i386-gen.c (cpu_flag_init): Add CPU_UINTR_FLAGS,
443 (cpu_flags): Add CpuUINTR.
444 * i386-opc.h (enum): Add CpuUINTR.
445 (i386_cpu_flags): Add cpuuintr.
446 * i386-opc.tbl: Add UINTR insns.
447 * i386-init.h: Regenerate.
448 * i386-tbl.h: Likewise.
450 2020-10-14 H.J. Lu <hongjiu.lu@intel.com>
452 * i386-gen.c (process_i386_opcode_modifier): Return 1 for
453 non-VEX/EVEX/prefix encoding.
454 (output_i386_opcode): Fail if non-VEX/EVEX/prefix base_opcode
456 * i386-opc.tbl: Replace the prefix byte in non-VEX/EVEX
457 base_opcode with PREFIX_0X66, PREFIX_0XF2 or PREFIX_0XF3.
458 * i386-tbl.h: Regenerated.
460 2020-10-13 H.J. Lu <hongjiu.lu@intel.com>
462 * i386-gen.c (opcode_modifiers): Replace VexOpcode with
464 * i386-opc.h (VexOpcode): Renamed to ...
465 (OpcodePrefix): This.
467 (PREFIX_0X66): Likewise.
468 (PREFIX_0XF2): Likewise.
469 (PREFIX_0XF3): Likewise.
470 * i386-opc.tbl (Prefix_0X66): New.
471 (Prefix_0XF2): Likewise.
472 (Prefix_0XF3): Likewise.
473 Replace VexOpcode= with OpcodePrefix=. Use Prefix_0X66 on xorpd.
474 Use Prefix_0XF3 on cvtdq2pd. Use Prefix_0XF2 on cvtpd2dq.
475 * i386-tbl.h: Regenerated.
477 2020-10-05 Samanta Navarro <ferivoz@riseup.net>
479 * cgen-asm.c: Fix spelling mistakes.
480 * cgen-dis.c: Fix spelling mistakes.
481 * tic30-dis.c: Fix spelling mistakes.
483 2020-10-05 H.J. Lu <hongjiu.lu@intel.com>
486 * i386-dis.c (putop): Always display suffix for %LQ in 64bit.
488 2020-10-05 H.J. Lu <hongjiu.lu@intel.com>
491 * i386-dis.c (print_insn): Clear modrm if not needed.
492 (putop): Check need_modrm for modrm.mod != 3. Don't check
493 need_modrm for modrm.mod == 3.
495 2020-09-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
497 * aarch64-opc.c: Added ETMv4 system registers TRCACATRn, TRCACVRn,
498 TRCAUTHSTATUS, TRCAUXCTLR, TRCBBCTLR, TRCCCCTLR, TRCCIDCCTLR0, TRCCIDCCTLR1,
499 TRCCIDCVRn, TRCCIDR0, TRCCIDR1, TRCCIDR2, TRCCIDR3, TRCCLAIMCLR, TRCCLAIMSET,
500 TRCCNTCTLRn, TRCCNTRLDVRn, TRCCNTVRn, TRCCONFIGR, TRCDEVAFF0, TRCDEVAFF1,
501 TRCDEVARCH, TRCDEVID, TRCDEVTYPE, TRCDVCMRn, TRCDVCVRn, TRCEVENTCTL0R,
502 TRCEVENTCTL1R, TRCEXTINSELR, TRCIDR0, TRCIDR1, TRCIDR2, TRCIDR3, TRCIDR4,
503 TRCIDR5, TRCIDR6, TRCIDR7, TRCIDR8, TRCIDR9, TRCIDR10, TRCIDR11, TRCIDR12,
504 TRCIDR13, TRCIMSPEC0, TRCIMSPECn, TRCITCTRL, TRCLAR WOTRCLSR, TRCOSLAR
505 WOTRCOSLSR, TRCPDCR, TRCPDSR, TRCPIDR0, TRCPIDR1, TRCPIDR2, TRCPIDR3,
506 TRCPIDR4, TRCPIDR[5,6,7], TRCPRGCTLR, TRCP,CSELR, TRCQCTLR, TRCRSCTLRn,
507 TRCSEQEVRn, TRCSEQRSTEVR, TRCSEQSTR, TRCSSCCRn, TRCSSCSRn, TRCSSPCICRn,
508 TRCSTALLCTLR, TRCSTATR, TRCSYNCPR, TRCTRACEIDR, TRCTSCTLR, TRCVDARCCTLR,
509 TRCVDCTLR, TRCVDSACCTLR, TRCVICTLR, TRCVIIECTLR, TRCVIPCSSCTLR, TRCVISSCTLR,
510 TRCVMIDCCTLR0, TRCVMIDCCTLR1 and TRCVMIDCVRn.
512 2020-09-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
514 * aarch64-opc.c: Add ETE system registers TRCEXTINSELR<0-3> and TRCRSR.
516 2020-09-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
518 * aarch64-opc.c: Add TRBE system registers TRBIDR_EL1 , TRBBASER_EL1 ,
519 TRBLIMITR_EL1 , TRBMAR_EL1 , TRBPTR_EL1, TRBSR_EL1 and TRBTRG_EL1.
521 2020-09-26 Alan Modra <amodra@gmail.com>
523 * csky-opc.h: Formatting.
524 (GENERAL_REG_BANK): Correct spelling. Update use throughout file.
525 (get_register_name): Mask arch with CSKY_ARCH_MASK for shift,
527 (get_register_number): Likewise.
528 * csky-dis.c (get_gr_name, get_cr_name): Don't mask mach_flag.
530 2020-09-24 Lili Cui <lili.cui@intel.com>
533 * i386-dis.c (enum): Put MOD_VEX_0F38* together.
535 2020-09-24 Andrew Burgess <andrew.burgess@embecosm.com>
537 * csky-dis.c (csky_output_operand): Enclose body of if in curly
540 2020-09-24 Lili Cui <lili.cui@intel.com>
542 * i386-dis.c (enum): Add PREFIX_0F01_REG_1_RM_5,
543 PREFIX_0F01_REG_1_RM_6, PREFIX_0F01_REG_1_RM_7,
544 X86_64_0F01_REG_1_RM_5_P_2, X86_64_0F01_REG_1_RM_6_P_2,
545 X86_64_0F01_REG_1_RM_7_P_2.
546 (prefix_table): Likewise.
547 (x86_64_table): Likewise.
548 (rm_table): Likewise.
549 * i386-gen.c (cpu_flag_init): Add CPU_TDX_FLAGS
550 and CPU_ANY_TDX_FLAGS.
551 (cpu_flags): Add CpuTDX.
552 * i386-opc.h (enum): Add CpuTDX.
553 (i386_cpu_flags): Add cputdx.
554 * i386-opc.tbl: Add TDX insns.
555 * i386-init.h: Regenerate.
556 * i386-tbl.h: Likewise.
558 2020-09-17 Cooper Qu <<cooper.qu@linux.alibaba.com>>
560 * csky-dis.c (using_abi): New.
561 (parse_csky_dis_options): New function.
562 (get_gr_name): New function.
563 (get_cr_name): New function.
564 (csky_output_operand): Use get_gr_name and get_cr_name to
565 disassemble and add handle of OPRND_TYPE_IMM5b_LS.
566 (print_insn_csky): Parse disassembler options.
567 * csky-opc.h (OPRND_TYPE_IMM5b_LS): New enum.
568 (GENARAL_REG_BANK): Define.
569 (REG_SUPPORT_ALL): Define.
570 (REG_SUPPORT_ALL): New.
572 (REG_SUPPORT_A): Define.
573 (REG_SUPPORT_B): Define.
574 (REG_SUPPORT_C): Define.
575 (REG_SUPPORT_D): Define.
576 (REG_SUPPORT_E): Define.
577 (csky_abiv1_general_regs): New.
578 (csky_abiv1_control_regs): New.
579 (csky_abiv2_general_regs): New.
580 (csky_abiv2_control_regs): New.
581 (get_register_name): New function.
582 (get_register_number): New function.
583 (csky_get_general_reg_name): New function.
584 (csky_get_general_regno): New function.
585 (csky_get_control_reg_name): New function.
586 (csky_get_control_regno): New function.
587 (csky_v2_opcodes): Prefer two oprerans format for bclri and
588 bseti, strengthen the operands legality check of addc, zext
591 2020-09-23 Lili Cui <lili.cui@intel.com>
593 * i386-dis.c (enum): Add REG_0F38D8_PREFIX_1,
594 MOD_0F38FA_PREFIX_1, MOD_0F38FB_PREFIX_1,
595 MOD_0F38DC_PREFIX_1, MOD_0F38DD_PREFIX_1,
596 MOD_0F38DE_PREFIX_1, MOD_0F38DF_PREFIX_1,
597 PREFIX_0F38D8, PREFIX_0F38FA, PREFIX_0F38FB.
598 (reg_table): New instructions (see prefixes above).
599 (prefix_table): Likewise.
600 (three_byte_table): Likewise.
601 (mod_table): Likewise
602 * i386-gen.c (cpu_flag_init): Add CPU_KL_FLAGS, CPU_WIDE_KL_FLAGS,
603 CPU_ANY_KL_FLAGS and CPU_ANY_WIDE_KL_FLAGS.
604 (cpu_flags): Likewise.
605 (operand_type_init): Likewise.
606 * i386-opc.h (enum): Add CpuKL and CpuWide_KL.
607 (i386_cpu_flags): Add cpukl and cpuwide_kl.
608 * i386-opc.tbl: Add KL and WIDE_KL insns.
609 * i386-init.h: Regenerate.
610 * i386-tbl.h: Likewise.
612 2020-09-21 Alan Modra <amodra@gmail.com>
614 * rx-dis.c (flag_names): Add missing comma.
615 (register_names, flag_names, double_register_names),
616 (double_register_high_names, double_register_low_names),
617 (double_control_register_names, double_condition_names): Remove
620 2020-09-18 David Faust <david.faust@oracle.com>
622 * bpf-desc.c: Regenerate.
623 * bpf-desc.h: Likewise.
624 * bpf-opc.c: Likewise.
625 * bpf-opc.h: Likewise.
627 2020-09-16 Andrew Burgess <andrew.burgess@embecosm.com>
629 * csky-dis.c (csky_get_disassembler): Don't return NULL when there
632 2020-09-16 Alan Modra <amodra@gmail.com>
634 * ppc-dis.c (ppc_symbol_is_valid): Adjust elf_symbol_from invocation.
636 2020-09-10 Nick Clifton <nickc@redhat.com>
638 * ppc-dis.c (ppc_symbol_is_valid): New function. Returns false
639 for hidden, local, no-type symbols.
640 (disassemble_init_powerpc): Point the symbol_is_valid field in the
641 info structure at the new function.
643 2020-09-10 Cooper Qu <cooper.qu@linux.alibaba.com>
645 * csky-opc.h (csky_v2_opcodes): Add L2Cache instructions.
646 * testsuite/gas/csky/cskyv2_ck860.d : Adjust to icache.iva
649 2020-09-10 Nick Clifton <nickc@redhat.com>
651 * csky-dis.c (csky_output_operand): Coerce the immediate values to
652 long before printing.
654 2020-09-10 Alan Modra <amodra@gmail.com>
656 * csky-dis.c (csky_output_operand): Don't sprintf str to itself.
658 2020-09-07 Cooper Qu <cooper.qu@linux.alibaba.com>
660 * csky-opc.h (csky_v2_opcodes): Change mvtc and mulsw's
663 2020-09-07 Cooper Qu <cooper.qu@linux.alibaba.com>
665 * csky-dis.c (csky_output_operand): Add handlers for
666 OPRND_TYPE_HFLOAT_FMOVI, OPRND_TYPE_SFLOAT_FMOVI and
667 OPRND_TYPE_DFLOAT_FMOVI. Refine OPRND_TYPE_FREGLIST_DASH
668 to support FPUV3 instructions.
669 * csky-opc.h (enum operand_type): New enum OPRND_TYPE_IMM9b,
670 OPRND_TYPE_HFLOAT_FMOVI, OPRND_TYPE_SFLOAT_FMOVI and
671 OPRND_TYPE_DFLOAT_FMOVI.
672 (OPRND_MASK_4_5, OPRND_MASK_6, OPRND_MASK_6_7, OPRND_MASK_6_8,
673 OPRND_MASK_7, OPRND_MASK_7_8, OPRND_MASK_17_24,
674 OPRND_MASK_20, OPRND_MASK_20_21, OPRND_MASK_20_22,
675 OPRND_MASK_20_23, OPRND_MASK_20_24, OPRND_MASK_20_25,
676 OPRND_MASK_0_3or5_8, OPRND_MASK_0_3or6_7, OPRND_MASK_0_3or25,
677 OPRND_MASK_0_4or21_24, OPRND_MASK_5or20_21,
678 OPRND_MASK_5or20_22, OPRND_MASK_5or20_23, OPRND_MASK_5or20_24,
679 OPRND_MASK_5or20_25, OPRND_MASK_8_9or21_25,
680 OPRND_MASK_8_9or16_25, OPRND_MASK_4_6or20, OPRND_MASK_5_7or20,
681 OPRND_MASK_4_5or20or25, OPRND_MASK_4_6or20or25,
682 OPRND_MASK_4_7or20or25, OPRND_MASK_6_9or17_24,
683 OPRND_MASK_6_7or20, OPRND_MASK_6or20, OPRND_MASK_7or20,
684 OPRND_MASK_5or8_9or16_25, OPRND_MASK_5or8_9or20_25): Define.
685 (csky_v2_opcodes): Add FPUV3 instructions.
687 2020-09-08 Alex Coplan <alex.coplan@arm.com>
689 * aarch64-dis.c (print_operands): Pass CPU features to
690 aarch64_print_operand().
691 * aarch64-opc.c (aarch64_print_operand): Use CPU features to determine
692 preferred disassembly of system registers.
693 (SR_RNG): Refactor to use new SR_FEAT2 macro.
699 (SR_EXPAND_ELx): New.
700 (SR_EXPAND_EL12): New.
701 (aarch64_sys_regs): Specify which registers are only on
702 A-profile, add R-profile system registers.
706 (aarch64_sys_ins_reg_supported_p): Reject EL3 registers for
709 2020-09-08 Alex Coplan <alex.coplan@arm.com>
711 * aarch64-tbl.h (aarch64_feature_v8_r): New.
714 (aarch64_opcode_table): Add dfb.
715 * aarch64-opc-2.c: Regenerate.
716 * aarch64-asm-2.c: Regenerate.
717 * aarch64-dis-2.c: Regenerate.
719 2020-09-08 Alex Coplan <alex.coplan@arm.com>
721 * aarch64-dis.c (arch_variant): New.
722 (determine_disassembling_preference): Disassemble according to
724 (select_aarch64_variant): New.
725 (print_insn_aarch64): Set feature set.
727 2020-09-02 Alan Modra <amodra@gmail.com>
729 * v850-opc.c (insert_i5div1, insert_i5div2, insert_i5div3),
730 (insert_d5_4, insert_d8_6, insert_d8_7, insert_v8, insert_d9),
731 (insert_u16_loop, insert_d16_15, insert_d16_16, insert_d17_16),
732 (insert_d22, insert_d23, insert_d23_align1, insert_i9, insert_u9),
733 (insert_spe, insert_r4, insert_POS, insert_WIDTH, insert_SELID),
734 (insert_VECTOR8, insert_VECTOR5, insert_CACHEOP, insert_PREFOP),
735 (nsert_IMM10U, insert_SRSEL1, insert_SRSEL2): Use unsigned long
736 for value parameter and update code to suit.
737 (extract_d9, extract_d16_15, extract_d16_16, extract_d17_16),
738 (extract_d22, extract_d23, extract_i9): Use unsigned long variables.
740 2020-09-02 Alan Modra <amodra@gmail.com>
742 * i386-dis.c (OP_E_memory): Don't cast to signed type when
744 (get32, get32s): Use unsigned types in shift expressions.
746 2020-09-02 Alan Modra <amodra@gmail.com>
748 * csky-dis.c (print_insn_csky): Use unsigned type for "given".
750 2020-09-02 Alan Modra <amodra@gmail.com>
752 * crx-dis.c: Whitespace.
753 (print_arg): Use unsigned type for longdisp and mask variables,
754 and for left shift constant.
756 2020-09-02 Alan Modra <amodra@gmail.com>
758 * cgen-ibld.in (insert_normal, extract_normal): Use 1UL in left shift.
759 * bpf-ibld.c: Regenerate.
760 * epiphany-ibld.c: Regenerate.
761 * fr30-ibld.c: Regenerate.
762 * frv-ibld.c: Regenerate.
763 * ip2k-ibld.c: Regenerate.
764 * iq2000-ibld.c: Regenerate.
765 * lm32-ibld.c: Regenerate.
766 * m32c-ibld.c: Regenerate.
767 * m32r-ibld.c: Regenerate.
768 * mep-ibld.c: Regenerate.
769 * mt-ibld.c: Regenerate.
770 * or1k-ibld.c: Regenerate.
771 * xc16x-ibld.c: Regenerate.
772 * xstormy16-ibld.c: Regenerate.
774 2020-09-02 Alan Modra <amodra@gmail.com>
776 * bfin-dis.c (MASKBITS): Use SIGNBIT.
778 2020-09-02 Cooper Qu <cooper.qu@linux.alibaba.com>
780 * csky-opc.h (csky_v2_opcodes): Move divul and divsl
781 to CSKYV2_ISA_3E3R3 instruction set.
783 2020-09-02 Cooper Qu <cooper.qu@linux.alibaba.com>
785 * csky-opc.h (csky_v2_opcodes): Fix Encode of mulsws.
787 2020-09-01 Alan Modra <amodra@gmail.com>
789 * mep-ibld.c: Regenerate.
791 2020-08-31 Cooper Qu <cooper.qu@linux.alibaba.com>
793 * csky-dis.c (csky_output_operand): Assign dis_info.value for
796 2020-08-30 Alan Modra <amodra@gmail.com>
798 * cr16-dis.c: Formatting.
799 (parameter): Delete struct typedef. Use dwordU instead
801 (make_argument <arg_idxr>): Simplify detection of cbitb, sbitb
803 (make_argument <arg_cr>): Extract 20-bit field not 16-bit.
805 2020-08-29 Alan Modra <amodra@gmail.com>
808 * csky-opc.h (MAX_OPRND_NUM): Define to 5.
809 (union csky_operand): Use MAX_OPRND_NUM to size oprnds array.
811 2020-08-28 Alan Modra <amodra@gmail.com>
815 * cgen-ibld.in (insert_1): Use 1UL in forming mask.
816 (extract_normal): Likewise.
817 (insert_normal): Likewise, and move past zero length test.
818 (put_insn_int_value): Handle mask for zero length, use 1UL.
819 * bpf-ibld.c, * epiphany-ibld.c, * fr30-ibld.c, * frv-ibld.c,
820 * ip2k-ibld.c, * iq2000-ibld.c, * lm32-ibld.c, * m32c-ibld.c,
821 * m32r-ibld.c, * mep-ibld.c, * mt-ibld.c, * or1k-ibld.c,
822 * xc16x-ibld.c, * xstormy16-ibld.c: Regenerate.
824 2020-08-28 Cooper Qu <cooper.qu@linux.alibaba.com>
826 * csky-dis.c (CSKY_DEFAULT_ISA): Define.
827 (csky_dis_info): Add member isa.
828 (csky_find_inst_info): Skip instructions that do not belong to
830 (csky_get_disassembler): Get infomation from attribute section.
831 (print_insn_csky): Set defualt ISA flag.
832 * csky.h (CSKY_ISA_VDSP_2): Rename from CSKY_ISA_VDSP_V2.
833 * csky-opc.h (struct csky_opcode): Change isa_flag16 and
834 isa_flag32'type to unsigned 64 bits.
836 2020-08-26 Jose E. Marchesi <jemarch@gnu.org>
838 * disassemble.c (enum epbf_isa_attr): Add ISA_XBPFBE, ISA_EBPFMAX.
840 2020-08-26 David Faust <david.faust@oracle.com>
842 * bpf-desc.c: Regenerate.
843 * bpf-desc.h: Likewise.
844 * bpf-opc.c: Likewise.
845 * bpf-opc.h: Likewise.
846 * disassemble.c (disassemble_init_for_target): Set bits for xBPF
847 ISA when appropriate.
849 2020-08-25 Alan Modra <amodra@gmail.com>
852 * vax-dis.c (parse_disassembler_options): Always add at least one
853 to entry_addr_total_slots.
855 2020-08-24 Cooper Qu <cooper.qu@linux.alibaba.com>
857 * csky-dis.c (csky_find_inst_info): Skip CK860's instructions
858 in other CPUs to speed up disassembling.
859 * csky-opc.h (csky_v2_opcodes): Add CK860's instructions,
860 Change plsli.u16 to plsli.16, change sync's operand format.
862 2020-08-21 Cooper Qu <cooper.qu@linux.alibaba.com>
864 * csky-opc.h (csky_v2_opcodes): Add instruction bnezad.
866 2020-08-21 Nick Clifton <nickc@redhat.com>
868 * aarch64-dis.c (get_sym_code_type): Return FALSE for non-ELF
871 2020-08-21 Cooper Qu <cooper.qu@linux.alibaba.com>
873 * csky-opc.h (csky_v2_opcodes): Add two operands form for bloop.
875 2020-08-19 Alan Modra <amodra@gmail.com>
877 * ppc-opc.c (powerpc_opcodes): Replace OBF with BF for vcmpsq,
880 2020-08-18 Peter Bergner <bergner@linux.ibm.com>
882 * ppc-opc.c (powerpc_opcodes) <xvcvbf16sp>: Rename from this...
883 <xvcvbf16spn>: ...to this.
885 2020-08-12 Alex Coplan <alex.coplan@arm.com>
887 * aarch64-opc.c (aarch64_sys_regs): Add MPAM registers.
889 2020-08-12 Nick Clifton <nickc@redhat.com>
891 * po/sr.po: Updated Serbian translation.
893 2020-08-11 Alan Modra <amodra@gmail.com>
895 * ppc-opc.c (powerpc_opcodes): Move cctpl, cctpm and cctph.
897 2020-08-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
899 * aarch64-opc.c (aarch64_print_operand):
900 (aarch64_sys_reg_deprecated_p): Functions paramaters changed.
901 (aarch64_sys_reg_supported_p): Function removed.
902 (aarch64_sys_ins_reg_supported_p): Functions paramaters changed.
903 (aarch64_sys_ins_reg_supported_p): Merged aarch64_sys_reg_supported_p
906 2020-08-10 Alan Modra <amodra@gmail.com>
908 * ppc-opc.c (powerpc_opcodes): Add many mtspr and mfspr extended
911 2020-08-10 Alan Modra <amodra@gmail.com>
913 * ppc-opc.c (powerpc_opcodes): Add exser, msgsndu, msgclru.
914 Enable icbt for power5, miso for power8.
916 2020-08-10 Alan Modra <amodra@gmail.com>
918 * ppc-opc.c (powerpc_opcodes): Prioritise mtfprd and mtvrd over
919 mtvsrd, and similarly for mfvsrd.
921 2020-08-04 Christian Groessler <chris@groessler.org>
922 Tadashi G. Takaoka <tadashi.g.takaoka@gmail.com>
924 * z8kgen.c (opt): Fix "sout imm16,rs" and "soutb imm16,rbs"
925 opcodes (special "out" to absolute address).
926 * z8k-opc.h: Regenerate.
928 2020-07-30 H.J. Lu <hongjiu.lu@intel.com>
931 * i386-opc.h (Prefix_Disp8): New.
932 (Prefix_Disp16): Likewise.
933 (Prefix_Disp32): Likewise.
934 (Prefix_Load): Likewise.
935 (Prefix_Store): Likewise.
936 (Prefix_VEX): Likewise.
937 (Prefix_VEX3): Likewise.
938 (Prefix_EVEX): Likewise.
939 (Prefix_REX): Likewise.
940 (Prefix_NoOptimize): Likewise.
941 * i386-opc.tbl: Use Prefix_XXX on pseudo prefixes. Add {disp16}.
942 * i386-tbl.h: Regenerated.
944 2020-07-29 Andreas Arnez <arnez@linux.ibm.com>
946 * s390-mkopc.c (insertExpandedMnemonic): Handle unreachable
947 default case with abort() instead of printing an error message and
948 continuing, to avoid a maybe-uninitialized warning.
950 2020-07-24 Nick Clifton <nickc@redhat.com>
952 * po/de.po: Updated German translation.
954 2020-07-21 Jan Beulich <jbeulich@suse.com>
956 * i386-dis.c (OP_E_memory): Revert previous change.
958 2020-07-15 H.J. Lu <hongjiu.lu@intel.com>
961 * i386-dis.c (OP_E_memory): Don't display eiz with no scale
962 without base nor index registers.
964 2020-07-15 Jan Beulich <jbeulich@suse.com>
966 * i386-dis.c (putop): Move 'V' and 'W' handling.
968 2020-07-15 Jan Beulich <jbeulich@suse.com>
970 * i386-dis.c (dis386): Adjust 'V' description. Use P-based
971 construct for push/pop of register.
972 (putop): Honor cond when handling 'P'. Drop handling of plain
975 2020-07-15 Jan Beulich <jbeulich@suse.com>
977 * i386-dis.c (dis386): Adjust 'P', 'T', 'U', and '@'
978 description. Drop '&' description. Use P for push of immediate,
979 pushf/popf, enter, and leave. Use %LP for lret/retf.
980 (dis386_twobyte): Use P for push/pop of fs/gs.
981 (reg_table): Use P for push/pop. Use @ for near call/jmp.
982 (x86_64_table): Use P for far call/jmp.
983 (putop): Drop handling of 'U' and '&'. Move and adjust handling
984 of '@'. Adjust handling of 'P' and 'T'. Drop case_P and case_Q
986 (OP_J): Drop marking of REX_W as used for v_mode (ISA-dependent)
987 and dqw_mode (unconditional).
989 2020-07-14 H.J. Lu <hongjiu.lu@intel.com>
992 * i386-dis.c (OP_E_memory): Without base nor index registers,
993 32-bit displacement to 64 bits.
995 2020-07-14 Claudiu Zissulescu <claziss@gmail.com>
997 * arc-dis.c (print_insn_arc): Detect and emit a warning when a
998 faulty double register pair is detected.
1000 2020-07-14 Jan Beulich <jbeulich@suse.com>
1002 * i386-dis.c (OP_D): Print dr<N> instead of db<N> in Intel mode.
1004 2020-07-14 Jan Beulich <jbeulich@suse.com>
1006 * i386-dis.c (OP_R, Rm): Delete.
1007 (MOD_0F24, MOD_0F26): Rename to ...
1008 (X86_64_0F24, X86_64_0F26): ... respectively.
1009 (dis386): Update 'L' and 'Z' comments.
1010 (dis386_twobyte): Replace Rm by Em. Change opcode 0F24 and 0F26
1012 (mod_table): Move opcode 0F24 and 0F26 entries ...
1013 (x86_64_table): ... here.
1014 (putop): Drop handling of 'L'. Set modrm.mod to 3 for 'Z'. Move
1017 2020-07-14 Jan Beulich <jbeulich@suse.com>
1019 * i386-dis.c (Rd, Rdq, MaskR): Delete.
1020 (MOD_EVEX_0F3828_P_1, MOD_EVEX_0F382A_P_1_W_1,
1021 MOD_EVEX_0F3838_P_1, MOD_EVEX_0F383A_P_1_W_0,
1022 MOD_EVEX_0F387A_W_0, MOD_EVEX_0F387B_W_0,
1023 MOD_EVEX_0F387C): New enumerators.
1024 (reg_table): Use Edq for rdssp.
1025 (prefix_table): Use Edq for incssp.
1026 (mod_table): Use Rm for move to/from %tr. Use MaskE for kand*,
1027 kandn*, knot*, kor*, kxnor*, kxor*, kadd*, kunpck*, kortest*,
1028 ktest*, and kshift*. Use Edq / MaskE for kmov*.
1029 * i386-dis-evex.h: Reference mod_table[] for opcode 0F387C.
1030 * i386-dis-evex-mod.h: New entries for opcodes 0F3828, 0F382A,
1031 0F3838, 0F383A, 0F387A, 0F387B, and 0F387C.
1032 * i386-dis-evex-prefix.h: Reference mod_table[] for opcodes
1033 0F3828_P_1 and 0F3838_P_1.
1034 * i386-dis-evex-w.h: Reference mod_table[] for opcodes
1035 0F382A_P_1, 0F383A_P_1, 0F387A, and 0F387B.
1037 2020-07-14 Jan Beulich <jbeulich@suse.com>
1039 * i386-dis.c (PREFIX_0F01_REG_7_MOD_3_RM_3,
1040 PREFIX_0FAE_REG_5_MOD_0, PREFIX_0FC3_MOD_0, PREFIX_0F38C8,
1041 PREFIX_0F38C9, PREFIX_0F38CA, PREFIX_0F38CB, PREFIX_0F38CC,
1042 PREFIX_0F38CD, PREFIX_0F38F9, PREFIX_0F3ACC, PREFIX_VEX_0F77,
1043 PREFIX_VEX_0F38F2, PREFIX_VEX_0F38F3_REG_1,
1044 PREFIX_VEX_0F38F3_REG_2, PREFIX_VEX_0F38F3_REG_3): Delete.
1045 (MOD_0F38F9_PREFIX_0, VEX_LEN_0F77_P_0, VEX_LEN_0F38F2_P_0,
1046 VEX_LEN_0F38F3_R_1_P_0, VEX_LEN_0F38F3_R_2_P_0,
1047 VEX_LEN_0F38F3_R_3_P_0): Rename to ...
1048 (MOD_0F38F9, VEX_LEN_0F77, VEX_LEN_0F38F2, VEX_LEN_0F38F3_R_1,
1049 VEX_LEN_0F38F3_R_2, VEX_LEN_0F38F3_R_3): ... these respectively.
1050 (reg_table, prefix_table, three_byte_table, vex_table,
1051 vex_len_table, mod_table, rm_table): Replace / remove respective
1053 (intel_operand_size, OP_E_register, OP_G): Avoid undue setting
1054 of PREFIX_DATA in used_prefixes.
1056 2020-07-14 Jan Beulich <jbeulich@suse.com>
1058 * i386-dis.c (MOD_VEX_0F3A30_L_0_W_0, MOD_VEX_0F3A30_L_0_W_1,
1059 MOD_VEX_0F3A31_L_0_W_0, MOD_VEX_0F3A31_L_0_W_1,
1060 MOD_VEX_0F3A32_L_0_W_0, MOD_VEX_0F3A32_L_0_W_1,
1061 MOD_VEX_0F3A33_L_0_W_0, MOD_VEX_0F3A33_L_0_W_1): Replace by ...
1062 (MOD_VEX_0F3A30_L_0, MOD_VEX_0F3A31_L_0,
1063 MOD_VEX_0F3A32_L_0, MOD_VEX_0F3A33_L_0): ... these.
1064 (VEX_W_0F3A30_L_0, VEX_W_0F3A31_L_0, VEX_W_0F3A32_L_0,
1065 VEX_W_0F3A33_L_0): Delete.
1066 (dis386): Adjust "BW" description.
1067 (vex_len_table): Refer to mod_table[] for opcodes 0F3A30,
1068 0F3A31, 0F3A32, and 0F3A33.
1069 (vex_w_table): Delete opcode 0F3A30, 0F3A31, 0F3A32, and 0F3A33
1071 (mod_table): Replace opcode 0F3A30, 0F3A31, 0F3A32, and 0F3A33
1074 2020-07-14 Jan Beulich <jbeulich@suse.com>
1076 * i386-dis.c (PREFIX_0F6C, PREFIX_0F6D, PREFIX_0F73_REG_3,
1077 PREFIX_0F73_REG_7, PREFIX_0F3810, PREFIX_0F3814, PREFIX_0F3815,
1078 PREFIX_0F3817, PREFIX_0F3820, PREFIX_0F3821, PREFIX_0F3822,
1079 PREFIX_0F3823, PREFIX_0F3824, PREFIX_0F3825, PREFIX_0F3828,
1080 PREFIX_0F3829, PREFIX_0F382A, PREFIX_0F382B, PREFIX_0F3830,
1081 PREFIX_0F3831, PREFIX_0F3832, PREFIX_0F3833, PREFIX_0F3834,
1082 PREFIX_0F3835, PREFIX_0F3837, PREFIX_0F3838, PREFIX_0F3839,
1083 PREFIX_0F383A, PREFIX_0F383B, PREFIX_0F383C, PREFIX_0F383D,
1084 PREFIX_0F383E, PREFIX_0F383F, PREFIX_0F3840, PREFIX_0F3841,
1085 PREFIX_0F3880, PREFIX_0F3881, PREFIX_0F3882, PREFIX_0F38CF,
1086 PREFIX_0F38DB, PREFIX_0F38DC, PREFIX_0F38DD, PREFIX_0F38DE,
1087 PREFIX_0F38DF, PREFIX_0F38F5, PREFIX_0F3A08, PREFIX_0F3A09,
1088 PREFIX_0F3A0A, PREFIX_0F3A0B, PREFIX_0F3A0C, PREFIX_0F3A0D,
1089 PREFIX_0F3A0E, PREFIX_0F3A14, PREFIX_0F3A15, PREFIX_0F3A16,
1090 PREFIX_0F3A17, PREFIX_0F3A20, PREFIX_0F3A21, PREFIX_0F3A22,
1091 PREFIX_0F3A40, PREFIX_0F3A41, PREFIX_0F3A42, PREFIX_0F3A44,
1092 PREFIX_0F3A60, PREFIX_0F3A61, PREFIX_0F3A62, PREFIX_0F3A63,
1093 PREFIX_0F3ACE, PREFIX_0F3ACF, PREFIX_0F3ADF, PREFIX_VEX_0F60,
1094 PREFIX_VEX_0F61, PREFIX_VEX_0F62, PREFIX_VEX_0F63,
1095 PREFIX_VEX_0F64, PREFIX_VEX_0F65, PREFIX_VEX_0F66,
1096 PREFIX_VEX_0F67, PREFIX_VEX_0F68, PREFIX_VEX_0F69,
1097 PREFIX_VEX_0F6A, PREFIX_VEX_0F6B, PREFIX_VEX_0F6C,
1098 PREFIX_VEX_0F6D, PREFIX_VEX_0F6E, PREFIX_VEX_0F71_REG_2,
1099 PREFIX_VEX_0F71_REG_4, PREFIX_VEX_0F71_REG_6,
1100 PREFIX_VEX_0F72_REG_2, PREFIX_VEX_0F72_REG_4,
1101 PREFIX_VEX_0F72_REG_6, PREFIX_VEX_0F73_REG_2,
1102 PREFIX_VEX_0F73_REG_3, PREFIX_VEX_0F73_REG_6,
1103 PREFIX_VEX_0F73_REG_7, PREFIX_VEX_0F74,
1104 PREFIX_VEX_0F75, PREFIX_VEX_0F76, PREFIX_VEX_0FC4,
1105 PREFIX_VEX_0FC5, PREFIX_VEX_0FD1, PREFIX_VEX_0FD2,
1106 PREFIX_VEX_0FD3, PREFIX_VEX_0FD4, PREFIX_VEX_0FD5,
1107 PREFIX_VEX_0FD6, PREFIX_VEX_0FD7, PREFIX_VEX_0FD8,
1108 PREFIX_VEX_0FD9, PREFIX_VEX_0FDA, PREFIX_VEX_0FDB,
1109 PREFIX_VEX_0FDC, PREFIX_VEX_0FDD, PREFIX_VEX_0FDE,
1110 PREFIX_VEX_0FDF, PREFIX_VEX_0FE0, PREFIX_VEX_0FE1,
1111 PREFIX_VEX_0FE2, PREFIX_VEX_0FE3, PREFIX_VEX_0FE4,
1112 PREFIX_VEX_0FE5, PREFIX_VEX_0FE7, PREFIX_VEX_0FE8,
1113 PREFIX_VEX_0FE9, PREFIX_VEX_0FEA, PREFIX_VEX_0FEB,
1114 PREFIX_VEX_0FEC, PREFIX_VEX_0FED, PREFIX_VEX_0FEE,
1115 PREFIX_VEX_0FEF, PREFIX_VEX_0FF1, PREFIX_VEX_0FF2,
1116 PREFIX_VEX_0FF3, PREFIX_VEX_0FF4, PREFIX_VEX_0FF5,
1117 PREFIX_VEX_0FF6, PREFIX_VEX_0FF7, PREFIX_VEX_0FF8,
1118 PREFIX_VEX_0FF9, PREFIX_VEX_0FFA, PREFIX_VEX_0FFB,
1119 PREFIX_VEX_0FFC, PREFIX_VEX_0FFD, PREFIX_VEX_0FFE,
1120 PREFIX_VEX_0F3800, PREFIX_VEX_0F3801, PREFIX_VEX_0F3802,
1121 PREFIX_VEX_0F3803, PREFIX_VEX_0F3804, PREFIX_VEX_0F3805,
1122 PREFIX_VEX_0F3806, PREFIX_VEX_0F3807, PREFIX_VEX_0F3808,
1123 PREFIX_VEX_0F3809, PREFIX_VEX_0F380A, PREFIX_VEX_0F380B,
1124 PREFIX_VEX_0F380C, PREFIX_VEX_0F380D, PREFIX_VEX_0F380E,
1125 PREFIX_VEX_0F380F, PREFIX_VEX_0F3813, PREFIX_VEX_0F3816,
1126 PREFIX_VEX_0F3817, PREFIX_VEX_0F3818, PREFIX_VEX_0F3819,
1127 PREFIX_VEX_0F381A, PREFIX_VEX_0F381C, PREFIX_VEX_0F381D,
1128 PREFIX_VEX_0F381E, PREFIX_VEX_0F3820, PREFIX_VEX_0F3821,
1129 PREFIX_VEX_0F3822, PREFIX_VEX_0F3823, PREFIX_VEX_0F3824,
1130 PREFIX_VEX_0F3825, PREFIX_VEX_0F3828, PREFIX_VEX_0F3829,
1131 PREFIX_VEX_0F382A, PREFIX_VEX_0F382B, PREFIX_VEX_0F382C,
1132 PREFIX_VEX_0F382D, PREFIX_VEX_0F382E, PREFIX_VEX_0F382F,
1133 PREFIX_VEX_0F3830, PREFIX_VEX_0F3831, PREFIX_VEX_0F3832,
1134 PREFIX_VEX_0F3833, PREFIX_VEX_0F3834, PREFIX_VEX_0F3835,
1135 PREFIX_VEX_0F3836, PREFIX_VEX_0F3837, PREFIX_VEX_0F3838,
1136 PREFIX_VEX_0F3839, PREFIX_VEX_0F383A, PREFIX_VEX_0F383B,
1137 PREFIX_VEX_0F383C, PREFIX_VEX_0F383D, PREFIX_VEX_0F383E,
1138 PREFIX_VEX_0F383F, PREFIX_VEX_0F3840, PREFIX_VEX_0F3841,
1139 PREFIX_VEX_0F3845, PREFIX_VEX_0F3846, PREFIX_VEX_0F3847,
1140 PREFIX_VEX_0F3858, PREFIX_VEX_0F3859, PREFIX_VEX_0F385A,
1141 PREFIX_VEX_0F3878, PREFIX_VEX_0F3879, PREFIX_VEX_0F388C,
1142 PREFIX_VEX_0F388E, PREFIX_VEX_0F3890, PREFIX_VEX_0F3891,
1143 PREFIX_VEX_0F3892, PREFIX_VEX_0F3893, PREFIX_VEX_0F3896,
1144 PREFIX_VEX_0F3897, PREFIX_VEX_0F3898, PREFIX_VEX_0F3899,
1145 PREFIX_VEX_0F389A, PREFIX_VEX_0F389B, PREFIX_VEX_0F389C,
1146 PREFIX_VEX_0F389D, PREFIX_VEX_0F389E, PREFIX_VEX_0F389F,
1147 PREFIX_VEX_0F38A6, PREFIX_VEX_0F38A7, PREFIX_VEX_0F38A8,
1148 PREFIX_VEX_0F38A9, PREFIX_VEX_0F38AA, PREFIX_VEX_0F38AB,
1149 PREFIX_VEX_0F38AC, PREFIX_VEX_0F38AD, PREFIX_VEX_0F38AE,
1150 PREFIX_VEX_0F38AF, PREFIX_VEX_0F38B6, PREFIX_VEX_0F38B7,
1151 PREFIX_VEX_0F38B8, PREFIX_VEX_0F38B9, PREFIX_VEX_0F38BA,
1152 PREFIX_VEX_0F38BB, PREFIX_VEX_0F38BC, PREFIX_VEX_0F38BD,
1153 PREFIX_VEX_0F38BE, PREFIX_VEX_0F38BF, PREFIX_VEX_0F38CF,
1154 PREFIX_VEX_0F38DB, PREFIX_VEX_0F38DC, PREFIX_VEX_0F38DD,
1155 PREFIX_VEX_0F38DE, PREFIX_VEX_0F38DF, PREFIX_VEX_0F3A00,
1156 PREFIX_VEX_0F3A01, PREFIX_VEX_0F3A02, PREFIX_VEX_0F3A04,
1157 PREFIX_VEX_0F3A05, PREFIX_VEX_0F3A06, PREFIX_VEX_0F3A08,
1158 PREFIX_VEX_0F3A09, PREFIX_VEX_0F3A0A, PREFIX_VEX_0F3A0B,
1159 PREFIX_VEX_0F3A0C, PREFIX_VEX_0F3A0D, PREFIX_VEX_0F3A0E,
1160 PREFIX_VEX_0F3A0F, PREFIX_VEX_0F3A14, PREFIX_VEX_0F3A15,
1161 PREFIX_VEX_0F3A16, PREFIX_VEX_0F3A17, PREFIX_VEX_0F3A18,
1162 PREFIX_VEX_0F3A19, PREFIX_VEX_0F3A1D, PREFIX_VEX_0F3A20,
1163 PREFIX_VEX_0F3A21, PREFIX_VEX_0F3A22, PREFIX_VEX_0F3A30,
1164 PREFIX_VEX_0F3A31, PREFIX_VEX_0F3A32, PREFIX_VEX_0F3A33,
1165 PREFIX_VEX_0F3A38, PREFIX_VEX_0F3A39, PREFIX_VEX_0F3A40,
1166 PREFIX_VEX_0F3A41, PREFIX_VEX_0F3A42, PREFIX_VEX_0F3A44,
1167 PREFIX_VEX_0F3A46, PREFIX_VEX_0F3A48, PREFIX_VEX_0F3A49,
1168 PREFIX_VEX_0F3A4A, PREFIX_VEX_0F3A4B, PREFIX_VEX_0F3A4C,
1169 PREFIX_VEX_0F3A5C, PREFIX_VEX_0F3A5D, PREFIX_VEX_0F3A5E,
1170 PREFIX_VEX_0F3A5F, PREFIX_VEX_0F3A60, PREFIX_VEX_0F3A61,
1171 PREFIX_VEX_0F3A62, PREFIX_VEX_0F3A63, PREFIX_VEX_0F3A68,
1172 PREFIX_VEX_0F3A69, PREFIX_VEX_0F3A6A, PREFIX_VEX_0F3A6B,
1173 PREFIX_VEX_0F3A6C, PREFIX_VEX_0F3A6D, PREFIX_VEX_0F3A6E,
1174 PREFIX_VEX_0F3A6F, PREFIX_VEX_0F3A78, PREFIX_VEX_0F3A79,
1175 PREFIX_VEX_0F3A7A, PREFIX_VEX_0F3A7B, PREFIX_VEX_0F3A7C,
1176 PREFIX_VEX_0F3A7D, PREFIX_VEX_0F3A7E, PREFIX_VEX_0F3A7F,
1177 PREFIX_VEX_0F3ACE, PREFIX_VEX_0F3ACF, PREFIX_VEX_0F3ADF,
1178 PREFIX_EVEX_0F64, PREFIX_EVEX_0F65, PREFIX_EVEX_0F66,
1179 PREFIX_EVEX_0F6E, PREFIX_EVEX_0F71_REG_2,
1180 PREFIX_EVEX_0F71_REG_4, PREFIX_EVEX_0F71_REG_6,
1181 PREFIX_EVEX_0F72_REG_0, PREFIX_EVEX_0F72_REG_1,
1182 PREFIX_EVEX_0F72_REG_2, PREFIX_EVEX_0F72_REG_4,
1183 PREFIX_EVEX_0F72_REG_6, PREFIX_EVEX_0F73_REG_2,
1184 PREFIX_EVEX_0F73_REG_3, PREFIX_EVEX_0F73_REG_6,
1185 PREFIX_EVEX_0F73_REG_7, PREFIX_EVEX_0F74, PREFIX_EVEX_0F75,
1186 PREFIX_EVEX_0F76, PREFIX_EVEX_0FC4, PREFIX_EVEX_0FC5,
1187 PREFIX_EVEX_0FD6, PREFIX_EVEX_0FDB, PREFIX_EVEX_0FDF,
1188 PREFIX_EVEX_0FE2, PREFIX_EVEX_0FE7, PREFIX_EVEX_0FEB,
1189 PREFIX_EVEX_0FEF, PREFIX_EVEX_0F380D, PREFIX_EVEX_0F3816,
1190 PREFIX_EVEX_0F3819, PREFIX_EVEX_0F381A, PREFIX_EVEX_0F381B,
1191 PREFIX_EVEX_0F381E, PREFIX_EVEX_0F381F, PREFIX_EVEX_0F382C,
1192 PREFIX_EVEX_0F382D, PREFIX_EVEX_0F3836, PREFIX_EVEX_0F3837,
1193 PREFIX_EVEX_0F383B, PREFIX_EVEX_0F383D, PREFIX_EVEX_0F383F,
1194 PREFIX_EVEX_0F3840, PREFIX_EVEX_0F3842, PREFIX_EVEX_0F3843,
1195 PREFIX_EVEX_0F3844, PREFIX_EVEX_0F3845, PREFIX_EVEX_0F3846,
1196 PREFIX_EVEX_0F3847, PREFIX_EVEX_0F384C, PREFIX_EVEX_0F384D,
1197 PREFIX_EVEX_0F384E, PREFIX_EVEX_0F384F, PREFIX_EVEX_0F3850,
1198 PREFIX_EVEX_0F3851, PREFIX_EVEX_0F3854, PREFIX_EVEX_0F3855,
1199 PREFIX_EVEX_0F3859, PREFIX_EVEX_0F385A, PREFIX_EVEX_0F385B,
1200 PREFIX_EVEX_0F3862, PREFIX_EVEX_0F3863, PREFIX_EVEX_0F3864,
1201 PREFIX_EVEX_0F3865, PREFIX_EVEX_0F3866, PREFIX_EVEX_0F3870,
1202 PREFIX_EVEX_0F3871, PREFIX_EVEX_0F3873, PREFIX_EVEX_0F3875,
1203 PREFIX_EVEX_0F3876, PREFIX_EVEX_0F3877, PREFIX_EVEX_0F387A,
1204 PREFIX_EVEX_0F387B, PREFIX_EVEX_0F387C, PREFIX_EVEX_0F387D,
1205 PREFIX_EVEX_0F387E, PREFIX_EVEX_0F387F, PREFIX_EVEX_0F3883,
1206 PREFIX_EVEX_0F3888, PREFIX_EVEX_0F3889, PREFIX_EVEX_0F388A,
1207 PREFIX_EVEX_0F388B, PREFIX_EVEX_0F388D, PREFIX_EVEX_0F388F,
1208 PREFIX_EVEX_0F3890, PREFIX_EVEX_0F3891, PREFIX_EVEX_0F3892,
1209 PREFIX_EVEX_0F3893, PREFIX_EVEX_0F38A0, PREFIX_EVEX_0F38A1,
1210 PREFIX_EVEX_0F38A2, PREFIX_EVEX_0F38A3, PREFIX_EVEX_0F38B4,
1211 PREFIX_EVEX_0F38B5, PREFIX_EVEX_0F38C4,
1212 PREFIX_EVEX_0F38C6_REG_1, PREFIX_EVEX_0F38C6_REG_2,
1213 PREFIX_EVEX_0F38C6_REG_5, PREFIX_EVEX_0F38C6_REG_6,
1214 PREFIX_EVEX_0F38C7_REG_1, PREFIX_EVEX_0F38C7_REG_2,
1215 PREFIX_EVEX_0F38C7_REG_5, PREFIX_EVEX_0F38C7_REG_6,
1216 PREFIX_EVEX_0F38C8, PREFIX_EVEX_0F38CA, PREFIX_EVEX_0F38CB,
1217 PREFIX_EVEX_0F38CC, PREFIX_EVEX_0F38CD, PREFIX_EVEX_0F3A00,
1218 PREFIX_EVEX_0F3A01, PREFIX_EVEX_0F3A03, PREFIX_EVEX_0F3A05,
1219 PREFIX_EVEX_0F3A08, PREFIX_EVEX_0F3A09, PREFIX_EVEX_0F3A0A,
1220 PREFIX_EVEX_0F3A0B, PREFIX_EVEX_0F3A14, PREFIX_EVEX_0F3A15,
1221 PREFIX_EVEX_0F3A16, PREFIX_EVEX_0F3A17, PREFIX_EVEX_0F3A18,
1222 PREFIX_EVEX_0F3A19, PREFIX_EVEX_0F3A1A, PREFIX_EVEX_0F3A1B,
1223 PREFIX_EVEX_0F3A1E, PREFIX_EVEX_0F3A1F, PREFIX_EVEX_0F3A20,
1224 PREFIX_EVEX_0F3A21, PREFIX_EVEX_0F3A22, PREFIX_EVEX_0F3A23,
1225 PREFIX_EVEX_0F3A25, PREFIX_EVEX_0F3A26, PREFIX_EVEX_0F3A27,
1226 PREFIX_EVEX_0F3A38, PREFIX_EVEX_0F3A39, PREFIX_EVEX_0F3A3A,
1227 PREFIX_EVEX_0F3A3B, PREFIX_EVEX_0F3A3E, PREFIX_EVEX_0F3A3F,
1228 PREFIX_EVEX_0F3A42, PREFIX_EVEX_0F3A43, PREFIX_EVEX_0F3A50,
1229 PREFIX_EVEX_0F3A51, PREFIX_EVEX_0F3A54, PREFIX_EVEX_0F3A55,
1230 PREFIX_EVEX_0F3A56, PREFIX_EVEX_0F3A57, PREFIX_EVEX_0F3A66,
1231 PREFIX_EVEX_0F3A67, PREFIX_EVEX_0F3A70, PREFIX_EVEX_0F3A71,
1232 PREFIX_EVEX_0F3A72, PREFIX_EVEX_0F3A73): Delete.
1233 (MOD_0F382A_PREFIX_2, MOD_0F38F5_PREFIX_2,
1234 MOD_VEX_0FD7_PREFIX_2, MOD_VEX_0FE7_PREFIX_2,
1235 MOD_VEX_0F381A_PREFIX_2, MOD_VEX_0F382A_PREFIX_2,
1236 MOD_VEX_0F382C_PREFIX_2, MOD_VEX_0F382D_PREFIX_2,
1237 MOD_VEX_0F382E_PREFIX_2, MOD_VEX_0F382F_PREFIX_2,
1238 MOD_VEX_0F385A_PREFIX_2, MOD_VEX_0F388C_PREFIX_2,
1239 MOD_VEX_0F388E_PREFIX_2, MOD_VEX_W_0_0F3A30_P_2_LEN_0,
1240 MOD_VEX_W_1_0F3A30_P_2_LEN_0, MOD_VEX_W_0_0F3A31_P_2_LEN_0,
1241 MOD_VEX_W_1_0F3A31_P_2_LEN_0, MOD_VEX_W_0_0F3A32_P_2_LEN_0,
1242 MOD_VEX_W_1_0F3A32_P_2_LEN_0, MOD_VEX_W_0_0F3A33_P_2_LEN_0,
1243 MOD_VEX_W_1_0F3A33_P_2_LEN_0, MOD_EVEX_0F381A_P_2_W_0,
1244 MOD_EVEX_0F381A_P_2_W_1, MOD_EVEX_0F381B_P_2_W_0,
1245 MOD_EVEX_0F381B_P_2_W_1, MOD_EVEX_0F385A_P_2_W_0,
1246 MOD_EVEX_0F385A_P_2_W_1, MOD_EVEX_0F385B_P_2_W_0,
1247 MOD_EVEX_0F385B_P_2_W_1, VEX_LEN_0F6E_P_2,
1248 VEX_LEN_0FC4_P_2, VEX_LEN_0FC5_P_2, VEX_LEN_0FD6_P_2,
1249 VEX_LEN_0FF7_P_2, VEX_LEN_0F3816_P_2, VEX_LEN_0F3819_P_2,
1250 VEX_LEN_0F381A_P_2_M_0, VEX_LEN_0F3836_P_2,
1251 VEX_LEN_0F3841_P_2, VEX_LEN_0F385A_P_2_M_0,
1252 VEX_LEN_0F38DB_P_2, VEX_LEN_0F3A00_P_2, VEX_LEN_0F3A01_P_2,
1253 VEX_LEN_0F3A06_P_2, VEX_LEN_0F3A14_P_2, VEX_LEN_0F3A15_P_2,
1254 VEX_LEN_0F3A16_P_2, VEX_LEN_0F3A17_P_2, VEX_LEN_0F3A18_P_2,
1255 VEX_LEN_0F3A19_P_2, VEX_LEN_0F3A20_P_2, VEX_LEN_0F3A21_P_2,
1256 VEX_LEN_0F3A22_P_2, VEX_LEN_0F3A30_P_2, VEX_LEN_0F3A31_P_2,
1257 VEX_LEN_0F3A32_P_2, VEX_LEN_0F3A33_P_2, VEX_LEN_0F3A38_P_2,
1258 VEX_LEN_0F3A39_P_2, VEX_LEN_0F3A41_P_2, VEX_LEN_0F3A46_P_2,
1259 VEX_LEN_0F3A60_P_2, VEX_LEN_0F3A61_P_2, VEX_LEN_0F3A62_P_2,
1260 VEX_LEN_0F3A63_P_2, VEX_LEN_0F3ADF_P_2, EVEX_LEN_0F6E_P_2,
1261 EVEX_LEN_0FC4_P_2, EVEX_LEN_0FC5_P_2, EVEX_LEN_0FD6_P_2,
1262 EVEX_LEN_0F3816_P_2, EVEX_LEN_0F3819_P_2_W_0,
1263 EVEX_LEN_0F3819_P_2_W_1, EVEX_LEN_0F381A_P_2_W_0_M_0,
1264 EVEX_LEN_0F381A_P_2_W_1_M_0, EVEX_LEN_0F381B_P_2_W_0_M_0,
1265 EVEX_LEN_0F381B_P_2_W_1_M_0, EVEX_LEN_0F3836_P_2,
1266 EVEX_LEN_0F385A_P_2_W_0_M_0, EVEX_LEN_0F385A_P_2_W_1_M_0,
1267 EVEX_LEN_0F385B_P_2_W_0_M_0, EVEX_LEN_0F385B_P_2_W_1_M_0,
1268 EVEX_LEN_0F38C6_REG_1_PREFIX_2, EVEX_LEN_0F38C6_REG_2_PREFIX_2,
1269 EVEX_LEN_0F38C6_REG_5_PREFIX_2, EVEX_LEN_0F38C6_REG_6_PREFIX_2,
1270 EVEX_LEN_0F38C7_R_1_P_2_W_0, EVEX_LEN_0F38C7_R_1_P_2_W_1,
1271 EVEX_LEN_0F38C7_R_2_P_2_W_0, EVEX_LEN_0F38C7_R_2_P_2_W_1,
1272 EVEX_LEN_0F38C7_R_5_P_2_W_0, EVEX_LEN_0F38C7_R_5_P_2_W_1,
1273 EVEX_LEN_0F38C7_R_6_P_2_W_0, EVEX_LEN_0F38C7_R_6_P_2_W_1,
1274 EVEX_LEN_0F3A00_P_2_W_1, EVEX_LEN_0F3A01_P_2_W_1,
1275 EVEX_LEN_0F3A14_P_2, EVEX_LEN_0F3A15_P_2, EVEX_LEN_0F3A16_P_2,
1276 EVEX_LEN_0F3A17_P_2, EVEX_LEN_0F3A18_P_2_W_0,
1277 EVEX_LEN_0F3A18_P_2_W_1, EVEX_LEN_0F3A19_P_2_W_0,
1278 EVEX_LEN_0F3A19_P_2_W_1, EVEX_LEN_0F3A1A_P_2_W_0,
1279 EVEX_LEN_0F3A1A_P_2_W_1, EVEX_LEN_0F3A1B_P_2_W_0,
1280 EVEX_LEN_0F3A1B_P_2_W_1, EVEX_LEN_0F3A20_P_2,
1281 EVEX_LEN_0F3A21_P_2_W_0, EVEX_LEN_0F3A22_P_2,
1282 EVEX_LEN_0F3A23_P_2_W_0, EVEX_LEN_0F3A23_P_2_W_1,
1283 EVEX_LEN_0F3A38_P_2_W_0, EVEX_LEN_0F3A38_P_2_W_1,
1284 EVEX_LEN_0F3A39_P_2_W_0, EVEX_LEN_0F3A39_P_2_W_1,
1285 EVEX_LEN_0F3A3A_P_2_W_0, EVEX_LEN_0F3A3A_P_2_W_1,
1286 EVEX_LEN_0F3A3B_P_2_W_0, EVEX_LEN_0F3A3B_P_2_W_1,
1287 EVEX_LEN_0F3A43_P_2_W_0, EVEX_LEN_0F3A43_P_2_W_1
1288 VEX_W_0F380C_P_2, VEX_W_0F380D_P_2, VEX_W_0F380E_P_2,
1289 VEX_W_0F380F_P_2, VEX_W_0F3813_P_2, VEX_W_0F3816_P_2,
1290 VEX_W_0F3818_P_2, VEX_W_0F3819_P_2,
1291 VEX_W_0F381A_P_2_M_0_L_0, VEX_W_0F382C_P_2_M_0,
1292 VEX_W_0F382D_P_2_M_0, VEX_W_0F382E_P_2_M_0,
1293 VEX_W_0F382F_P_2_M_0, VEX_W_0F3836_P_2,
1294 VEX_W_0F3846_P_2, VEX_W_0F3858_P_2, VEX_W_0F3859_P_2,
1295 VEX_W_0F385A_P_2_M_0_L_0, VEX_W_0F3878_P_2,
1296 VEX_W_0F3879_P_2, VEX_W_0F38CF_P_2, VEX_W_0F3A00_P_2,
1297 VEX_W_0F3A01_P_2, VEX_W_0F3A02_P_2, VEX_W_0F3A04_P_2,
1298 VEX_W_0F3A05_P_2, VEX_W_0F3A06_P_2_L_0,
1299 VEX_W_0F3A18_P_2_L_0, VEX_W_0F3A19_P_2_L_0,
1300 VEX_W_0F3A1D_P_2, VEX_W_0F3A30_P_2_LEN_0,
1301 VEX_W_0F3A31_P_2_LEN_0, VEX_W_0F3A32_P_2_LEN_0,
1302 VEX_W_0F3A33_P_2_LEN_0, VEX_W_0F3A38_P_2_L_0,
1303 VEX_W_0F3A39_P_2_L_0, VEX_W_0F3A46_P_2_L_0,
1304 VEX_W_0F3A4A_P_2, VEX_W_0F3A4B_P_2, VEX_W_0F3A4C_P_2,
1305 VEX_W_0F3ACE_P_2, VEX_W_0F3ACF_P_2, EVEX_W_0F66_P_2,
1306 EVEX_W_0F72_R_2_P_2, EVEX_W_0F72_R_6_P_2,
1307 EVEX_W_0F73_R_2_P_2, EVEX_W_0F73_R_6_P_2,
1308 EVEX_W_0F76_P_2, EVEX_W_0FD6_P_2, EVEX_W_0FE7_P_2,
1309 EVEX_W_0F380D_P_2, EVEX_W_0F3819_P_2,
1310 EVEX_W_0F381A_P_2, EVEX_W_0F381B_P_2,
1311 EVEX_W_0F381E_P_2, EVEX_W_0F381F_P_2,
1312 EVEX_W_0F3837_P_2, EVEX_W_0F3859_P_2,
1313 EVEX_W_0F385A_P_2, EVEX_W_0F385B_P_2,
1314 EVEX_W_0F3870_P_2, EVEX_W_0F387A_P_2,
1315 EVEX_W_0F387B_P_2, EVEX_W_0F3883_P_2,
1316 EVEX_W_0F3891_P_2, EVEX_W_0F3893_P_2,
1317 EVEX_W_0F38A1_P_2, EVEX_W_0F38A3_P_2,
1318 EVEX_W_0F38C7_R_1_P_2, EVEX_W_0F38C7_R_2_P_2,
1319 EVEX_W_0F38C7_R_5_P_2, EVEX_W_0F38C7_R_6_P_2,
1320 EVEX_W_0F3A00_P_2, EVEX_W_0F3A01_P_2,
1321 EVEX_W_0F3A05_P_2, EVEX_W_0F3A08_P_2,
1322 EVEX_W_0F3A09_P_2, EVEX_W_0F3A0A_P_2,
1323 EVEX_W_0F3A0B_P_2, EVEX_W_0F3A18_P_2,
1324 EVEX_W_0F3A19_P_2, EVEX_W_0F3A1A_P_2,
1325 EVEX_W_0F3A1B_P_2, EVEX_W_0F3A21_P_2,
1326 EVEX_W_0F3A23_P_2, EVEX_W_0F3A38_P_2,
1327 EVEX_W_0F3A39_P_2, EVEX_W_0F3A3A_P_2,
1328 EVEX_W_0F3A3B_P_2, EVEX_W_0F3A42_P_2,
1329 EVEX_W_0F3A43_P_2, EVEX_W_0F3A70_P_2,
1330 EVEX_W_0F3A72_P_2): Rename to ...
1331 (MOD_0F382A, MOD_0F38F5, MOD_VEX_0FD7, MOD_VEX_0FE7,
1332 MOD_VEX_0F381A, MOD_VEX_0F382A, MOD_VEX_0F382C, MOD_VEX_0F382D,
1333 MOD_VEX_0F382E, MOD_VEX_0F382F, MOD_VEX_0F385A, MOD_VEX_0F388C,
1334 MOD_VEX_0F388E, MOD_VEX_0F3A30_L_0_W_0,
1335 MOD_VEX_0F3A30_L_0_W_1, MOD_VEX_0F3A31_L_0_W_0,
1336 MOD_VEX_0F3A31_L_0_W_1, MOD_VEX_0F3A32_L_0_W_0,
1337 MOD_VEX_0F3A32_L_0_W_1, MOD_VEX_0F3A33_L_0_W_0,
1338 MOD_VEX_0F3A33_L_0_W_1, MOD_EVEX_0F381A_W_0,
1339 MOD_EVEX_0F381A_W_1, MOD_EVEX_0F381B_W_0, MOD_EVEX_0F381B_W_1,
1340 MOD_EVEX_0F385A_W_0, MOD_EVEX_0F385A_W_1, MOD_EVEX_0F385B_W_0,
1341 MOD_EVEX_0F385B_W_1, VEX_LEN_0F6E, VEX_LEN_0FC4, VEX_LEN_0FC5,
1342 VEX_LEN_0FD6, VEX_LEN_0FF7, VEX_LEN_0F3816, VEX_LEN_0F3819,
1343 VEX_LEN_0F381A_M_0, VEX_LEN_0F3836, VEX_LEN_0F3841,
1344 VEX_LEN_0F385A_M_0, VEX_LEN_0F38DB, VEX_LEN_0F3A00,
1345 VEX_LEN_0F3A01, VEX_LEN_0F3A06, VEX_LEN_0F3A14, VEX_LEN_0F3A15,
1346 VEX_LEN_0F3A16, VEX_LEN_0F3A17, VEX_LEN_0F3A18, VEX_LEN_0F3A19,
1347 VEX_LEN_0F3A20, VEX_LEN_0F3A21, VEX_LEN_0F3A22, VEX_LEN_0F3A30,
1348 VEX_LEN_0F3A31, VEX_LEN_0F3A32, VEX_LEN_0F3A33, VEX_LEN_0F3A38,
1349 VEX_LEN_0F3A39, VEX_LEN_0F3A41, VEX_LEN_0F3A46, VEX_LEN_0F3A60,
1350 VEX_LEN_0F3A61, VEX_LEN_0F3A62, VEX_LEN_0F3A63, VEX_LEN_0F3ADF,
1351 EVEX_LEN_0F6E, EVEX_LEN_0FC4, EVEX_LEN_0FC5, EVEX_LEN_0FD6,
1352 EVEX_LEN_0F3816, EVEX_LEN_0F3819_W_0, EVEX_LEN_0F3819_W_1,
1353 EVEX_LEN_0F381A_W_0_M_0, EVEX_LEN_0F381A_W_1_M_0,
1354 EVEX_LEN_0F381B_W_0_M_0, EVEX_LEN_0F381B_W_1_M_0,
1355 EVEX_LEN_0F3836, EVEX_LEN_0F385A_W_0_M_0,
1356 EVEX_LEN_0F385A_W_1_M_0, EVEX_LEN_0F385B_W_0_M_0,
1357 EVEX_LEN_0F385B_W_1_M_0, EVEX_LEN_0F38C6_R_1_M_0,
1358 EVEX_LEN_0F38C6_R_2_M_0, EVEX_LEN_0F38C6_R_5_M_0,
1359 EVEX_LEN_0F38C6_R_6_M_0, EVEX_LEN_0F38C7_R_1_M_0_W_0,
1360 EVEX_LEN_0F38C7_R_1_M_0_W_1, EVEX_LEN_0F38C7_R_2_M_0_W_0,
1361 EVEX_LEN_0F38C7_R_2_M_0_W_1, EVEX_LEN_0F38C7_R_5_M_0_W_0,
1362 EVEX_LEN_0F38C7_R_5_M_0_W_1, EVEX_LEN_0F38C7_R_6_M_0_W_0,
1363 EVEX_LEN_0F38C7_R_6_M_0_W_1, EVEX_LEN_0F3A00_W_1,
1364 EVEX_LEN_0F3A01_W_1, EVEX_LEN_0F3A14, EVEX_LEN_0F3A15,
1365 EVEX_LEN_0F3A16, EVEX_LEN_0F3A17, EVEX_LEN_0F3A18_W_0,
1366 EVEX_LEN_0F3A18_W_1, EVEX_LEN_0F3A19_W_0,
1367 EVEX_LEN_0F3A19_W_1, EVEX_LEN_0F3A1A_W_0,
1368 EVEX_LEN_0F3A1A_W_1, EVEX_LEN_0F3A1B_W_0,
1369 EVEX_LEN_0F3A1B_W_1, EVEX_LEN_0F3A20, EVEX_LEN_0F3A21_W_0,
1370 EVEX_LEN_0F3A22, EVEX_LEN_0F3A23_W_0, EVEX_LEN_0F3A23_W_1,
1371 EVEX_LEN_0F3A38_W_0, EVEX_LEN_0F3A38_W_1,
1372 EVEX_LEN_0F3A39_W_0, EVEX_LEN_0F3A39_W_1,
1373 EVEX_LEN_0F3A3A_W_0, EVEX_LEN_0F3A3A_W_1,
1374 EVEX_LEN_0F3A3B_W_0, EVEX_LEN_0F3A3B_W_1,
1375 EVEX_LEN_0F3A43_W_0, EVEX_LEN_0F3A43_W_1
1376 VEX_W_0F380C, VEX_W_0F380D, VEX_W_0F380E, VEX_W_0F380F,
1377 VEX_W_0F3813, VEX_W_0F3816_L_1, VEX_W_0F3818,
1378 VEX_W_0F3819_L_1, VEX_W_0F381A_M_0_L_1, VEX_W_0F382C_M_0,
1379 VEX_W_0F382D_M_0, VEX_W_0F382E_M_0, VEX_W_0F382F_M_0,
1380 VEX_W_0F3836, VEX_W_0F3846, VEX_W_0F3858, VEX_W_0F3859,
1381 VEX_W_0F385A_M_0_L_0, VEX_W_0F3878, VEX_W_0F3879,
1382 VEX_W_0F38CF, VEX_W_0F3A00_L_1, VEX_W_0F3A01_L_1,
1383 VEX_W_0F3A02, VEX_W_0F3A04, VEX_W_0F3A05, VEX_W_0F3A06_L_1,
1384 VEX_W_0F3A18_L_1, VEX_W_0F3A19_L_1, VEX_W_0F3A1D,
1385 VEX_W_0F3A30_L_0, VEX_W_0F3A31_L_0, VEX_W_0F3A32_L_0,
1386 VEX_W_0F3A33_L_0, VEX_W_0F3A38_L_1, VEX_W_0F3A39_L_1,
1387 VEX_W_0F3A46_L_1, VEX_W_0F3A4A, VEX_W_0F3A4B, VEX_W_0F3A4C,
1388 VEX_W_0F3ACE, VEX_W_0F3ACF, EVEX_W_0F66, EVEX_W_0F72_R_2,
1389 EVEX_W_0F72_R_6, EVEX_W_0F73_R_2, EVEX_W_0F73_R_6,
1390 EVEX_W_0F76, EVEX_W_0FD6_L_0, EVEX_W_0FE7, EVEX_W_0F380D,
1391 EVEX_W_0F3819, EVEX_W_0F381A, EVEX_W_0F381B, EVEX_W_0F381E,
1392 EVEX_W_0F381F, EVEX_W_0F3837, EVEX_W_0F3859, EVEX_W_0F385A,
1393 EVEX_W_0F385B, EVEX_W_0F3870, EVEX_W_0F387A, EVEX_W_0F387B,
1394 EVEX_W_0F3883, EVEX_W_0F3891, EVEX_W_0F3893, EVEX_W_0F38A1,
1395 EVEX_W_0F38A3, EVEX_W_0F38C7_R_1_M_0,
1396 EVEX_W_0F38C7_R_2_M_0, EVEX_W_0F38C7_R_5_M_0,
1397 EVEX_W_0F38C7_R_6_M_0, EVEX_W_0F3A00, EVEX_W_0F3A01,
1398 EVEX_W_0F3A05, EVEX_W_0F3A08, EVEX_W_0F3A09, EVEX_W_0F3A0A,
1399 EVEX_W_0F3A0B, EVEX_W_0F3A18, EVEX_W_0F3A19, EVEX_W_0F3A1A,
1400 EVEX_W_0F3A1B, EVEX_W_0F3A21, EVEX_W_0F3A23, EVEX_W_0F3A38,
1401 EVEX_W_0F3A39, EVEX_W_0F3A3A, EVEX_W_0F3A3B, EVEX_W_0F3A42,
1402 EVEX_W_0F3A43, EVEX_W_0F3A70, EVEX_W_0F3A72): ... these
1404 (dis386_twobyte, three_byte_table, vex_table, vex_len_table,
1405 vex_w_table, mod_table): Replace / remove respective entries.
1406 (print_insn): Move up dp->prefix_requirement handling. Handle
1408 * i386-dis-evex.h, i386-dis-evex-len.h, i386-dis-evex-mod.h,
1409 i386-dis-evex-prefix.h, i386-dis-evex-reg.h, i386-dis-evex-w.h:
1410 Replace / remove respective entries.
1412 2020-07-14 Jan Beulich <jbeulich@suse.com>
1414 * i386-dis.c (PREFIX_EVEX_0F2C, PREFIX_EVEX_0F2D,
1415 PREFIX_EVEX_0F2E, PREFIX_EVEX_0F2F): Delete.
1416 (prefix_table): Add EXxEVexS operand to vcvttss2si, vcvttsd2si,
1417 vcvtss2si, vcvtsd2si, vucomiss, and vucomisd table entries.
1418 Retain X macro and PREFIX_OPCODE use from tjhe EVEX table for
1420 * i386-dis-evex.h (evex_table): Reference VEX table for opcodes
1421 0F2C, 0F2D, 0F2E, and 0F2F.
1422 * i386-dis-evex-prefix.h: Delete opcode 0F2C, 0F2D, 0F2E, and
1425 2020-07-14 Jan Beulich <jbeulich@suse.com>
1427 * i386-dis.c (OP_VexR, VexScalarR): New.
1428 (OP_EX_Vex, OP_XMM_Vex, EXdVexScalarS, EXqVexScalarS,
1429 XMVexScalar, d_scalar_swap_mode, q_scalar_swap_mode,
1430 need_vex_reg): Delete.
1431 (prefix_table): Replace VexScalar by VexScalarR and
1432 XMVexScalar by XMScalar for vmovss and vmovsd. Replace
1433 EXdVexScalarS by EXdS and EXqVexScalarS by EXqS.
1434 (vex_len_table): Replace EXqVexScalarS by EXqS.
1435 (get_valid_dis386): Don't set need_vex_reg.
1436 (print_insn): Don't initialize need_vex_reg.
1437 (intel_operand_size, OP_E_memory): Drop d_scalar_swap_mode and
1438 q_scalar_swap_mode cases.
1439 (OP_EX): Don't check for d_scalar_swap_mode and
1441 (OP_VEX): Done check need_vex_reg.
1442 * i386-dis-evex-w.h: Replace VexScalar by VexScalarR and
1443 XMVexScalar by XMScalar for vmovss and vmovsd. Replace
1444 EXdVexScalarS by EXdS and EXqVexScalarS by EXqS.
1446 2020-07-14 Jan Beulich <jbeulich@suse.com>
1448 * i386-dis.c (Vex128, Vex256, vex128_mode, vex256_mode): Delete.
1449 (VEX_W_0F381A_P_2_M_0, VEX_W_0F385A_P_2_M_0, VEX_W_0F3A06_P_2,
1450 VEX_W_0F3A18_P_2, VEX_W_0F3A19_P_2, VEX_W_0F3A38_P_2,
1451 VEX_W_0F3A39_P_2, VEX_W_0F3A46_P_2): Rename to ...
1452 (VEX_W_0F381A_P_2_M_0_L_0, VEX_W_0F385A_P_2_M_0_L_0,
1453 VEX_W_0F3A06_P_2_L_0, VEX_W_0F3A18_P_2_L_0,
1454 VEX_W_0F3A19_P_2_L_0, VEX_W_0F3A38_P_2_L_0,
1455 VEX_W_0F3A39_P_2_L_0, VEX_W_0F3A46_P_2_L_0): ... respectively.
1456 (vex_table): Replace Vex128 by Vex.
1457 (vex_len_table): Likewise. Adjust referenced enum names.
1458 (vex_w_table): Replace Vex128 and Vex256 by Vex. Adjust
1459 referenced enum names.
1460 (OP_VEX): Drop vex128_mode and vex256_mode cases.
1461 * i386-dis-evex-len.h (evex_len_table): Replace Vex128 by Vex.
1463 2020-07-14 Jan Beulich <jbeulich@suse.com>
1465 * i386-dis.c (dis386): "LW" description now applies to "DQ".
1466 (putop): Handle "DQ". Don't handle "LW" anymore.
1467 (prefix_table, mod_table): Replace %LW by %DQ.
1468 * i386-dis-evex-len.h, i386-dis-evex-prefix.h: Likewise.
1470 2020-07-14 Jan Beulich <jbeulich@suse.com>
1472 * i386-dis.c (OP_E_memory): Move xmm_mw_mode, xmm_mb_mode,
1473 dqd_mode, xmm_md_mode, d_mode, d_swap_mode, and
1474 d_scalar_swap_mode case handling. Move shift adjsutment into
1475 the case its applicable to.
1477 2020-07-14 Jan Beulich <jbeulich@suse.com>
1479 * i386-dis.c (EVEX_W_0F3862_P_2, EVEX_W_0F3863_P_2): Delete.
1480 (EXbScalar, EXwScalar): Fold to ...
1481 (EXbwUnit): ... this.
1482 (b_scalar_mode, w_scalar_mode): Fold to ...
1483 (bw_unit_mode): ... this.
1484 (intel_operand_size, OP_E_memory): Replace b_scalar_mode /
1485 w_scalar_mode handling by bw_unit_mode one.
1486 * i386-dis-evex-w.h: Move entries for opcodes 0F3862 and 0F3863
1488 * i386-dis-evex-prefix.h: ... here.
1490 2020-07-14 Jan Beulich <jbeulich@suse.com>
1492 * i386-dis.c (PCMPESTR_Fixup): Delete.
1493 (dis386): Adjust "LQ" description.
1494 (prefix_table): Make %LQ apply to AT&T case only for cvtsi2ss,
1495 cvtsi2sd, ptwrite, vcvtsi2ss, and vcvtsi2sd. Replace use of
1496 PCMPESTR_Fixup by !%LQ and EXx for pcmpestrm, pcmpestri,
1497 vpcmpestrm, and vpcmpestri.
1498 (putop): Honor "cond" when handling LQ.
1499 * i386-dis-evex-prefix.h: Make %LQ apply to AT&T case only for
1500 vcvtsi2ss and vcvtusi2ss.
1501 * i386-dis-evex-w.h: Make %LQ apply to AT&T case only for
1502 vcvtsi2sd and vcvtusi2sd.
1504 2020-07-14 Jan Beulich <jbeulich@suse.com>
1506 * i386-dis.c (VCMP_Fixup, VCMP): Delete.
1507 (simd_cmp_op): Add const.
1508 (vex_cmp_op): Move up and drop initial 8 entries. Add const.
1509 (CMP_Fixup): Handle VEX case.
1510 (prefix_table): Replace VCMP by CMP.
1511 * i386-dis-evex-prefix.h, i386-dis-evex-w.h: Likewise.
1513 2020-07-14 Jan Beulich <jbeulich@suse.com>
1515 * i386-dis.c (MOVBE_Fixup): Delete.
1517 (prefix_table): Use Mv for movbe entries.
1519 2020-07-14 Jan Beulich <jbeulich@suse.com>
1521 * i386-dis.c (CRC32_Fixup): Delete.
1522 (prefix_table): Use Eb/Ev for crc32 entries.
1524 2020-07-14 Jan Beulich <jbeulich@suse.com>
1526 * i386-dis.c (OP_E_register, OP_G, OP_REG, CRC32_Fixup):
1527 Conditionalize invocations of "USED_REX (0)".
1529 2020-07-14 Jan Beulich <jbeulich@suse.com>
1531 * i386-dis.c (eBX, eCX, eDX, eSP, eBP, eSI, eDI, DL, BL, AH,
1532 CH, DH, BH, AX, DX): Delete.
1533 (OP_IMREG): Drop handling of eBX_reg, eCX_reg, eDX_reg, eSP_reg,
1534 eBP_reg, eSI_reg, eDI_reg, dl_reg, bl_reg, ah_reg, ch_reg,
1535 dh_reg, bh_reg, ax_reg, and dx_reg. Simplify what's left.
1537 2020-07-10 Lili Cui <lili.cui@intel.com>
1539 * i386-dis.c (TMM): New.
1542 (MVexSIBMEM): Likewise.
1543 (tmm_mode): Likewise.
1544 (vex_sibmem_mode): Likewise.
1545 (REG_VEX_0F3849_X86_64_P_0_W_0_M_1): Likewise.
1546 (MOD_VEX_0F3849_X86_64_P_0_W_0): Likewise.
1547 (MOD_VEX_0F3849_X86_64_P_2_W_0): Likewise.
1548 (MOD_VEX_0F3849_X86_64_P_3_W_0): Likewise.
1549 (MOD_VEX_0F384B_X86_64_P_1_W_0): Likewise.
1550 (MOD_VEX_0F384B_X86_64_P_2_W_0): Likewise.
1551 (MOD_VEX_0F384B_X86_64_P_3_W_0): Likewise.
1552 (MOD_VEX_0F385C_X86_64_P_1_W_0): Likewise.
1553 (MOD_VEX_0F385E_X86_64_P_0_W_0): Likewise.
1554 (MOD_VEX_0F385E_X86_64_P_1_W_0): Likewise.
1555 (MOD_VEX_0F385E_X86_64_P_2_W_0): Likewise.
1556 (MOD_VEX_0F385E_X86_64_P_3_W_0): Likewise.
1557 (RM_VEX_0F3849_X86_64_P_0_W_0_M_1_R_0): Likewise.
1558 (PREFIX_VEX_0F3849_X86_64): Likewise.
1559 (PREFIX_VEX_0F384B_X86_64): Likewise.
1560 (PREFIX_VEX_0F385C_X86_64): Likewise.
1561 (PREFIX_VEX_0F385E_X86_64): Likewise.
1562 (X86_64_VEX_0F3849): Likewise.
1563 (X86_64_VEX_0F384B): Likewise.
1564 (X86_64_VEX_0F385C): Likewise.
1565 (X86_64_VEX_0F385E): Likewise.
1566 (VEX_LEN_0F3849_X86_64_P_0_W_0_M_0): Likewise.
1567 (VEX_LEN_0F3849_X86_64_P_0_W_0_M_1_REG_0_RM_0): Likewise.
1568 (VEX_LEN_0F3849_X86_64_P_2_W_0_M_0): Likewise.
1569 (VEX_LEN_0F3849_X86_64_P_3_W_0_M_0): Likewise.
1570 (VEX_LEN_0F384B_X86_64_P_1_W_0_M_0): Likewise.
1571 (VEX_LEN_0F384B_X86_64_P_2_W_0_M_0): Likewise.
1572 (VEX_LEN_0F384B_X86_64_P_3_W_0_M_0): Likewise.
1573 (VEX_LEN_0F385C_X86_64_P_1_W_0_M_0): Likewise.
1574 (VEX_LEN_0F385E_X86_64_P_0_W_0_M_0): Likewise.
1575 (VEX_LEN_0F385E_X86_64_P_1_W_0_M_0): Likewise.
1576 (VEX_LEN_0F385E_X86_64_P_2_W_0_M_0): Likewise.
1577 (VEX_LEN_0F385E_X86_64_P_3_W_0_M_0): Likewise.
1578 (VEX_W_0F3849_X86_64_P_0): Likewise.
1579 (VEX_W_0F3849_X86_64_P_2): Likewise.
1580 (VEX_W_0F3849_X86_64_P_3): Likewise.
1581 (VEX_W_0F384B_X86_64_P_1): Likewise.
1582 (VEX_W_0F384B_X86_64_P_2): Likewise.
1583 (VEX_W_0F384B_X86_64_P_3): Likewise.
1584 (VEX_W_0F385C_X86_64_P_1): Likewise.
1585 (VEX_W_0F385E_X86_64_P_0): Likewise.
1586 (VEX_W_0F385E_X86_64_P_1): Likewise.
1587 (VEX_W_0F385E_X86_64_P_2): Likewise.
1588 (VEX_W_0F385E_X86_64_P_3): Likewise.
1589 (names_tmm): Likewise.
1590 (att_names_tmm): Likewise.
1591 (intel_operand_size): Handle void_mode.
1592 (OP_XMM): Handle tmm_mode.
1595 * i386-gen.c (cpu_flag_init): Add entries for CpuAMX_INT8,
1596 CpuAMX_BF16 and CpuAMX_TILE.
1597 (operand_type_shorthands): Add RegTMM.
1598 (operand_type_init): Likewise.
1599 (operand_types): Add Tmmword.
1600 (cpu_flag_init): Add CPU_AMX_INT8, CpuAMX_BF16 and CpuAMX_TILE.
1601 (cpu_flags): Add CpuAMX_INT8, CpuAMX_BF16 and CpuAMX_TILE.
1602 * i386-opc.h (CpuAMX_INT8): New.
1603 (CpuAMX_BF16): Likewise.
1604 (CpuAMX_TILE): Likewise.
1606 (Tmmword): Likewise.
1607 (i386_cpu_flags): Add cpuamx_int8, cpuamx_bf16 and cpuamx_tile.
1608 (i386_opcode_modifier): Extend width of fields vexvvvv and sib.
1609 (i386_operand_type): Add tmmword.
1610 * i386-opc.tbl: Add AMX instructions.
1611 * i386-reg.tbl: Add AMX registers.
1612 * i386-init.h: Regenerated.
1613 * i386-tbl.h: Likewise.
1615 2020-07-08 Jan Beulich <jbeulich@suse.com>
1617 * i386-dis.c (OP_LWPCB_E, OP_LWP_E): Delete.
1618 (REG_XOP_LWPCB, REG_XOP_LWP, REG_XOP_TBM_01, REG_XOP_TBM_02):
1620 (REG_0FXOP_09_12_M_1_L_0, REG_0FXOP_0A_12_L_0,
1621 REG_0FXOP_09_01_L_0, REG_0FXOP_09_02_L_0): ... these
1623 (MOD_VEX_0FXOP_09_12, VEX_LEN_0FXOP_08_85, VEX_LEN_0FXOP_08_86,
1624 VEX_LEN_0FXOP_08_87, VEX_LEN_0FXOP_08_8E, VEX_LEN_0FXOP_08_8F,
1625 VEX_LEN_0FXOP_08_95, VEX_LEN_0FXOP_08_96, VEX_LEN_0FXOP_08_97,
1626 VEX_LEN_0FXOP_08_9E, VEX_LEN_0FXOP_08_9F, VEX_LEN_0FXOP_08_A3,
1627 VEX_LEN_0FXOP_08_A6, VEX_LEN_0FXOP_08_B6, VEX_LEN_0FXOP_08_C0,
1628 VEX_LEN_0FXOP_08_C1, VEX_LEN_0FXOP_08_C2, VEX_LEN_0FXOP_08_C3,
1629 VEX_LEN_0FXOP_09_01, VEX_LEN_0FXOP_09_02, VEX_LEN_0FXOP_09_12_M_1,
1630 VEX_LEN_0FXOP_09_90, VEX_LEN_0FXOP_09_91, VEX_LEN_0FXOP_09_92,
1631 VEX_LEN_0FXOP_09_93, VEX_LEN_0FXOP_09_94, VEX_LEN_0FXOP_09_95,
1632 VEX_LEN_0FXOP_09_96, VEX_LEN_0FXOP_09_97, VEX_LEN_0FXOP_09_98,
1633 VEX_LEN_0FXOP_09_99, VEX_LEN_0FXOP_09_9A, VEX_LEN_0FXOP_09_9B,
1634 VEX_LEN_0FXOP_09_C1, VEX_LEN_0FXOP_09_C2, VEX_LEN_0FXOP_09_C3,
1635 VEX_LEN_0FXOP_09_C6, VEX_LEN_0FXOP_09_C7, VEX_LEN_0FXOP_09_CB,
1636 VEX_LEN_0FXOP_09_D1, VEX_LEN_0FXOP_09_D2, VEX_LEN_0FXOP_09_D3,
1637 VEX_LEN_0FXOP_09_D6, VEX_LEN_0FXOP_09_D7, VEX_LEN_0FXOP_09_DB,
1638 VEX_LEN_0FXOP_09_E1, VEX_LEN_0FXOP_09_E2, VEX_LEN_0FXOP_09_E3,
1639 VEX_LEN_0FXOP_0A_12, VEX_W_0FXOP_08_85_L_0,
1640 VEX_W_0FXOP_08_86_L_0, VEX_W_0FXOP_08_87_L_0,
1641 VEX_W_0FXOP_08_8E_L_0, VEX_W_0FXOP_08_8F_L_0,
1642 VEX_W_0FXOP_08_95_L_0, VEX_W_0FXOP_08_96_L_0,
1643 VEX_W_0FXOP_08_97_L_0, VEX_W_0FXOP_08_9E_L_0,
1644 VEX_W_0FXOP_08_9F_L_0, VEX_W_0FXOP_08_A6_L_0,
1645 VEX_W_0FXOP_08_B6_L_0, VEX_W_0FXOP_08_C0_L_0,
1646 VEX_W_0FXOP_08_C1_L_0, VEX_W_0FXOP_08_C2_L_0,
1647 VEX_W_0FXOP_08_C3_L_0, VEX_W_0FXOP_08_CC_L_0,
1648 VEX_W_0FXOP_08_CD_L_0, VEX_W_0FXOP_08_CE_L_0,
1649 VEX_W_0FXOP_08_CF_L_0, VEX_W_0FXOP_08_EC_L_0,
1650 VEX_W_0FXOP_08_ED_L_0, VEX_W_0FXOP_08_EE_L_0,
1651 VEX_W_0FXOP_08_EF_L_0, VEX_W_0FXOP_09_C1_L_0,
1652 VEX_W_0FXOP_09_C2_L_0, VEX_W_0FXOP_09_C3_L_0,
1653 VEX_W_0FXOP_09_C6_L_0, VEX_W_0FXOP_09_C7_L_0,
1654 VEX_W_0FXOP_09_CB_L_0, VEX_W_0FXOP_09_D1_L_0,
1655 VEX_W_0FXOP_09_D2_L_0, VEX_W_0FXOP_09_D3_L_0,
1656 VEX_W_0FXOP_09_D6_L_0, VEX_W_0FXOP_09_D7_L_0,
1657 VEX_W_0FXOP_09_DB_L_0, VEX_W_0FXOP_09_E1_L_0,
1658 VEX_W_0FXOP_09_E2_L_0, VEX_W_0FXOP_09_E3_L_0): New enumerators.
1659 (reg_table): Re-order XOP entries. Adjust their operands.
1660 (xop_table): Replace 08_85, 08_86, 08_87, 08_8E, 08_8F, 08_95,
1661 08_96, 08_97, 08_9E, 08_9F, 08_A3, 08_A6, 08_B6, 08_C0, 08_C1,
1662 08_C2, 08_C3, 09_01, 09_02, 09_12, 09_90, 09_91, 09_92, 09_93,
1663 09_94, 09_95, 09_96, 09_97, 09_98, 09_99, 09_9A, 09_9B, 09_C1,
1664 09_C2, 09_C3, 09_C6, 09_C7, 09_CB, 09_D1, 09_D2, 09_D3, 09_D6,
1665 09_D7, 09_DB, 09_E1, 09_E2, 09_E3, and VEX_LEN_0FXOP_0A_12
1666 entries by references ...
1667 (vex_len_table): ... to resepctive new entries here. For several
1668 new and existing entries reference ...
1669 (vex_w_table): ... new entries here.
1670 (mod_table): New MOD_VEX_0FXOP_09_12 entry.
1672 2020-07-08 Jan Beulich <jbeulich@suse.com>
1674 * i386-dis.c (XMVexScalarI4): Define.
1675 (VEX_LEN_0F3A6A_P_2, VEX_LEN_0F3A6B_P_2, VEX_LEN_0F3A6E_P_2,
1676 VEX_LEN_0F3A6F_P_2, VEX_LEN_0F3A7A_P_2, VEX_LEN_0F3A7B_P_2,
1677 VEX_LEN_0F3A7E_P_2, VEX_LEN_0F3A7F_P_2): Delete.
1678 (vex_len_table): Move scalar FMA4 entries ...
1679 (prefix_table): ... here.
1680 (OP_REG_VexI4): Handle scalar_mode.
1681 * i386-opc.tbl: Use VexLIG for scalar FMA4 insns.
1682 * i386-tbl.h: Re-generate.
1684 2020-07-08 Jan Beulich <jbeulich@suse.com>
1686 * i386-dis.c (OP_Vex_2src_1, OP_Vex_2src_2, Vex_2src_1,
1687 Vex_2src_2): Delete.
1688 (OP_VexW, VexW): New.
1689 (xop_table): Use EXx for rotates by immediate. Use EXx and VexW
1690 for shifts and rotates by register.
1692 2020-07-08 Jan Beulich <jbeulich@suse.com>
1694 * i386-dis.c (OP_EX_VexImmW, OP_XMM_VexW, EXVexImmW, XMVexW,
1695 VEX_W_0F3A48_P_2, VEX_W_0F3A49_P_2, vex_w_done, get_vex_imm8,
1696 OP_EX_VexReg): Delete.
1697 (OP_VexI4, VexI4): New.
1698 (vex_w_table): Move vpermil2ps and vpermil2pd entries ...
1699 (prefix_table): ... here.
1700 (print_insn): Drop setting of vex_w_done.
1702 2020-07-08 Jan Beulich <jbeulich@suse.com>
1704 * i386-dis.c (OP_EX_VexW, EXVexW, EXdVexW, EXqVexW): Delete.
1705 (prefix_table, vex_len_table): Replace operands for FMA4 insns.
1706 (xop_table): Replace operands of 4-operand insns.
1707 (OP_REG_VexI4): Move VEX.W based operand swaping here.
1709 2020-07-07 Claudiu Zissulescu <claziss@synopsys.com>
1711 * arc-opc.c (insert_rbd): New function.
1714 * arc-tbl.h (vadd2, vadd4h, vmac2h, vmpy2h, vsub4h): Update
1717 2020-07-07 Jan Beulich <jbeulich@suse.com>
1719 * i386-dis.c (EVEX_W_0F3826_P_1, EVEX_W_0F3826_P_2,
1720 EVEX_W_0F3828_P_1, EVEX_W_0F3829_P_1, EVEX_W_0F3854_P_2,
1721 EVEX_W_0F3866_P_2, EVEX_W_0F3875_P_2, EVEX_W_0F387D_P_2,
1722 EVEX_W_0F388D_P_2, EVEX_W_0F3A3E_P_2, EVEX_W_0F3A3F_P_2):
1724 (putop): Handle "BW".
1725 * i386-dis-evex-w.h: Move entries for opcodes 0F3826, 0F3826,
1726 0F3828, 0F3829, 0F3854, 0F3866, 0F3875, 0F387D, 0F388D, 0F3A3E,
1728 * i386-dis-evex-prefix.h: ... here.
1730 2020-07-06 Jan Beulich <jbeulich@suse.com>
1732 * i386-dis.c (VEX_LEN_0FXOP_09_80, VEX_LEN_0FXOP_09_81): Delete.
1733 (VEX_LEN_0FXOP_09_82_W_0, VEX_LEN_0FXOP_09_83_W_0,
1734 VEX_W_0FXOP_09_80, VEX_W_0FXOP_09_81, VEX_W_0FXOP_09_82,
1735 VEX_W_0FXOP_09_83): New enumerators.
1736 (xop_table): Reference the above.
1737 (vex_len_table): Replace vfrczp* entries by vfrczs* ones.
1738 (vex_w_table): New VEX_W_0FXOP_09_80, VEX_W_0FXOP_09_81,
1739 VEX_W_0FXOP_09_82, and VEX_W_0FXOP_09_83 entries.
1740 (get_valid_dis386): Return bad_opcode for XOP.PP != 0.
1742 2020-07-06 Jan Beulich <jbeulich@suse.com>
1744 * i386-dis.c (EVEX_W_0F3838_P_1,
1745 EVEX_W_0F3839_P_1, EVEX_W_0F3840_P_2, EVEX_W_0F3855_P_2,
1746 EVEX_W_0F3868_P_3, EVEX_W_0F3871_P_2, EVEX_W_0F3873_P_2,
1747 EVEX_W_0F3A50_P_2, EVEX_W_0F3A51_P_2, EVEX_W_0F3A56_P_2,
1748 EVEX_W_0F3A57_P_2, EVEX_W_0F3A66_P_2, EVEX_W_0F3A67_P_2,
1749 EVEX_W_0F3A71_P_2, EVEX_W_0F3A73_P_2): Delete.
1750 (putop): Centralize management of last[]. Delete SAVE_LAST.
1751 * i386-dis-evex-w.h: Move entries for opcodes 0F3838, 0F3839,
1752 0F3840, 0F3855, 0F3868, 0F3871, 0F3873, 0F3A50, 0F3A51, 0F3A56,
1753 0F3A57, 0F3A66, 0F3A67, 0F3A71, and 0F3A73 ...
1754 * i386-dis-evex-prefix.h: here.
1756 2020-07-06 Jan Beulich <jbeulich@suse.com>
1758 * i386-dis.c (MOD_EVEX_0F381A_P_2_W_0, MOD_EVEX_0F381A_P_2_W_1,
1759 MOD_EVEX_0F381B_P_2_W_0, MOD_EVEX_0F381B_P_2_W_1,
1760 MOD_EVEX_0F385A_P_2_W_0, MOD_EVEX_0F385A_P_2_W_1,
1761 MOD_EVEX_0F385B_P_2_W_0, MOD_EVEX_0F385B_P_2_W_1): New
1763 (EVEX_LEN_0F381A_P_2_W_0, EVEX_LEN_0F381A_P_2_W_1,
1764 EVEX_LEN_0F381B_P_2_W_0, EVEX_LEN_0F381B_P_2_W_1,
1765 EVEX_LEN_0F385A_P_2_W_0, EVEX_LEN_0F385A_P_2_W_1,
1766 EVEX_LEN_0F385B_P_2_W_0, EVEX_LEN_0F385B_P_2_W_1): Rename to ...
1767 (EVEX_LEN_0F381A_P_2_W_0_M_0, EVEX_LEN_0F381A_P_2_W_1_M_0,
1768 EVEX_LEN_0F381B_P_2_W_0_M_0, EVEX_LEN_0F381B_P_2_W_1_M_0,
1769 EVEX_LEN_0F385A_P_2_W_0_M_0, EVEX_LEN_0F385A_P_2_W_1_M_0,
1770 EVEX_LEN_0F385B_P_2_W_0_M_0, EVEX_LEN_0F385B_P_2_W_1_M_0): ...
1771 these, respectively.
1772 * i386-dis-evex-len.h: Adjust comments.
1773 * i386-dis-evex-mod.h: New MOD_EVEX_0F381A_P_2_W_0,
1774 MOD_EVEX_0F381A_P_2_W_1, MOD_EVEX_0F381B_P_2_W_0,
1775 MOD_EVEX_0F381B_P_2_W_1, MOD_EVEX_0F385A_P_2_W_0,
1776 MOD_EVEX_0F385A_P_2_W_1, MOD_EVEX_0F385B_P_2_W_0, and
1777 MOD_EVEX_0F385B_P_2_W_1 table entries.
1778 * i386-dis-evex-w.h: Reference mod_table[] for
1779 EVEX_W_0F381A_P_2, EVEX_W_0F381B_P_2, EVEX_W_0F385A_P_2, and
1782 2020-07-06 Jan Beulich <jbeulich@suse.com>
1784 * i386-dis-evex-len.h (vbroadcastf32x8, vbroadcasti32x8,
1785 vinsertf32x8, vinsertf64x4, vextractf32x8, vextractf64x4): Use
1787 (vinserti32x8, vinserti64x4, vextracti32x8, vextracti64x4):
1788 Likewise. Mark 256-bit entries invalid.
1790 2020-07-06 Jan Beulich <jbeulich@suse.com>
1792 * i386-dis.c (PREFIX_EVEX_0F62, PREFIX_EVEX_0F6A,
1793 PREFIX_EVEX_0F6B, PREFIX_EVEX_0F6C, PREFIX_EVEX_0F6D,
1794 PREFIX_EVEX_0FD2, PREFIX_EVEX_0FD3, PREFIX_EVEX_0FD4,
1795 PREFIX_EVEX_0FF2, PREFIX_EVEX_0FF3, PREFIX_EVEX_0FF4,
1796 PREFIX_EVEX_0FFA, PREFIX_EVEX_0FFB, PREFIX_EVEX_0FFE,
1797 PREFIX_EVEX_0F382B): Delete.
1798 (EVEX_W_0F62_P_2, EVEX_W_0F6A_P_2, EVEX_W_0F6B_P_2,
1799 EVEX_W_0F6C_P_2, EVEX_W_0F6D_P_2, EVEX_W_0FD2_P_2,
1800 EVEX_W_0FD3_P_2, EVEX_W_0FD4_P_2, EVEX_W_0FF2_P_2,
1801 EVEX_W_0FF3_P_2, EVEX_W_0FF4_P_2, EVEX_W_0FFA_P_2,
1802 EVEX_W_0FFB_P_2, EVEX_W_0FFE_P_2, EVEX_W_0F382B_P_2): Rename
1804 (EVEX_W_0F62, EVEX_W_0F6A, EVEX_W_0F6B, EVEX_W_0F6C,
1805 EVEX_W_0F6D, EVEX_W_0FD2, EVEX_W_0FD3, EVEX_W_0FD4,
1806 EVEX_W_0FF2, EVEX_W_0FF3, EVEX_W_0FF4, EVEX_W_0FFA,
1807 EVEX_W_0FFB, EVEX_W_0FFE, EVEX_W_0F382B): ... these
1809 * i386-dis-evex.h (evex_table): Reference VEX_W table entries
1810 for opcodes 0F62, 0F6A, 0F6B, 0F6C, 0F6D, 0FD2, 0FD3, 0FD4,
1811 0FF2, 0FF3, 0FF4, 0FFA, 0FFB, 0FFE, 0F382B.
1812 * i386-dis-evex-prefix.h (PREFIX_EVEX_0F62, PREFIX_EVEX_0F6A,
1813 PREFIX_EVEX_0F6B, PREFIX_EVEX_0F6C, PREFIX_EVEX_0F6D,
1814 PREFIX_EVEX_0FD2, PREFIX_EVEX_0FD3, PREFIX_EVEX_0FD4,
1815 PREFIX_EVEX_0FF2, PREFIX_EVEX_0FF3, PREFIX_EVEX_0FF4,
1816 PREFIX_EVEX_0FFA, PREFIX_EVEX_0FFB, PREFIX_EVEX_0FFE,
1817 PREFIX_EVEX_0F382B): Remove table entries.
1818 * i386-dis-evex-w.h: Reference VEX table entries for opcodes
1819 0F62, 0F6A, 0F6B, 0F6C, 0F6D, 0FD2, 0FD3, 0FD4, 0FF2, 0FF3,
1820 0FF4, 0FFA, 0FFB, 0FFE, 0F382B.
1822 2020-07-06 Jan Beulich <jbeulich@suse.com>
1824 * i386-dis.c (EVEX_LEN_0F3816_P_2, EVEX_LEN_0F3836_P_2,
1825 EVEX_LEN_0F3A00_P_2_W_1, EVEX_LEN_0F3A01_P_2_W_1): New
1827 * i386-dis-evex-len.h (evex_len_table): New EVEX_LEN_0F3816_P_2,
1828 EVEX_LEN_0F3836_P_2, EVEX_LEN_0F3A00_P_2_W_1, and
1829 EVEX_LEN_0F3A01_P_2_W_1 table entries.
1830 * i386-dis-evex-prefix.h, i386-dis-evex-w.h: Reference the above
1833 2020-07-06 Jan Beulich <jbeulich@suse.com>
1835 * i386-dis.c (EVEX_LEN_0FC4_P_2, EVEX_LEN_0FC5_P_2,
1836 EVEX_LEN_0F3A14_P_2, EVEX_LEN_0F3A15_P_2, EVEX_LEN_0F3A16_P_2,
1837 EVEX_LEN_0F3A17_P_2, EVEX_LEN_0F3A20_P_2,
1838 EVEX_LEN_0F3A21_P_2_W_0, EVEX_LEN_0F3A22_P_2): New enumerators.
1839 * i386-dis-evex-len.h (evex_len_table): New EVEX_LEN_0FC4_P_2,
1840 EVEX_LEN_0FC5_P_2, EVEX_LEN_0F3A14_P_2, EVEX_LEN_0F3A15_P_2,
1841 EVEX_LEN_0F3A16_P_2, EVEX_LEN_0F3A17_P_2, EVEX_LEN_0F3A20_P_2,
1842 EVEX_LEN_0F3A21_P_2_W_0, and EVEX_LEN_0F3A22_P_2 table entries.
1843 * i386-dis-evex-prefix.h, i386-dis-evex-w.h: Reference the above
1846 2020-07-06 Jan Beulich <jbeulich@suse.com>
1848 * i386-dis.c (PREFIX_EVEX_0F3A1D, EVEX_W_0F3A1D_P_2): Delete.
1849 (VEX_W_0F3813_P_2, VEX_W_0F3A1D_P_2): New enumerators.
1850 (prefix_table): Reference VEX_W_0F3813_P_2 and VEX_W_0F3A1D_P_2
1852 (vex_w_table): New VEX_W_0F3813_P_2 and VEX_W_0F3A1D_P_2 table
1854 * i386-dis-evex.h (evex_table): Reference VEX table entry for
1856 * i386-dis-evex-prefix.h (PREFIX_EVEX_0F3A1D): Delete table
1858 * i386-dis-evex-w.h (EVEX_W_0F3A1D_P_2): Likewise.
1860 2020-07-06 Jan Beulich <jbeulich@suse.com>
1862 * i386-dis.c (PREFIX_EVEX_0F60, PREFIX_EVEX_0F61,
1863 PREFIX_EVEX_0F63, PREFIX_EVEX_0F67, PREFIX_EVEX_0F68,
1864 PREFIX_EVEX_0F69, PREFIX_EVEX_0FD1, PREFIX_EVEX_0FD5,
1865 PREFIX_EVEX_0FD8, PREFIX_EVEX_0FD9, PREFIX_EVEX_0FDA,
1866 PREFIX_EVEX_0FDC, PREFIX_EVEX_0FDD, PREFIX_EVEX_0FDE,
1867 PREFIX_EVEX_0FE0, PREFIX_EVEX_0FE1, PREFIX_EVEX_0FE3,
1868 PREFIX_EVEX_0FE4, PREFIX_EVEX_0FE5, PREFIX_EVEX_0FE8,
1869 PREFIX_EVEX_0FE9, PREFIX_EVEX_0FEA, PREFIX_EVEX_0FEC,
1870 PREFIX_EVEX_0FED, PREFIX_EVEX_0FEE, PREFIX_EVEX_0FF1,
1871 PREFIX_EVEX_0FF5, PREFIX_EVEX_0FF6, PREFIX_EVEX_0FF8,
1872 PREFIX_EVEX_0FF9, PREFIX_EVEX_0FFC, PREFIX_EVEX_0FFD,
1873 PREFIX_EVEX_0F3800, PREFIX_EVEX_0F3804, PREFIX_EVEX_0F380B,
1874 PREFIX_EVEX_0F380C, PREFIX_EVEX_0F3818, PREFIX_EVEX_0F381C,
1875 PREFIX_EVEX_0F381D, PREFIX_EVEX_0F383C, PREFIX_EVEX_0F383E,
1876 PREFIX_EVEX_0F3858, PREFIX_EVEX_0F3878, PREFIX_EVEX_0F3879,
1877 PREFIX_EVEX_0F3896, PREFIX_EVEX_0F3897, PREFIX_EVEX_0F3898,
1878 PREFIX_EVEX_0F3899, PREFIX_EVEX_0F389C, PREFIX_EVEX_0F389D,
1879 PREFIX_EVEX_0F389E, PREFIX_EVEX_0F389F, PREFIX_EVEX_0F38A6,
1880 PREFIX_EVEX_0F38A7, PREFIX_EVEX_0F38A8, PREFIX_EVEX_0F38A9,
1881 PREFIX_EVEX_0F38AC, PREFIX_EVEX_0F38AD, PREFIX_EVEX_0F38AE,
1882 PREFIX_EVEX_0F38AF, PREFIX_EVEX_0F38B6, PREFIX_EVEX_0F38B7,
1883 PREFIX_EVEX_0F38B8, PREFIX_EVEX_0F38B9, PREFIX_EVEX_0F38BA,
1884 PREFIX_EVEX_0F38BB, PREFIX_EVEX_0F38BC, PREFIX_EVEX_0F38BD,
1885 PREFIX_EVEX_0F38BE, PREFIX_EVEX_0F38BF, PREFIX_EVEX_0F38CF,
1886 PREFIX_EVEX_0F38DC, PREFIX_EVEX_0F38DD, PREFIX_EVEX_0F38DE,
1887 PREFIX_EVEX_0F38DF, PREFIX_EVEX_0F3A04, PREFIX_EVEX_0F3A0F,
1888 PREFIX_EVEX_0F3A44, PREFIX_EVEX_0F3ACE, PREFIX_EVEX_0F3ACF,
1889 EVEX_W_0F380C_P_2, EVEX_W_0F3818_P_2, EVEX_W_0F3858_P_2,
1890 EVEX_W_0F3878_P_2, EVEX_W_0F3879_P_2, EVEX_W_0F3A04_P_2,
1891 EVEX_W_0F3ACE_P_2, EVEX_W_0F3ACF_P_2): Delete.
1892 (prefix_table): Add EXxEVexR to FMA table entries.
1893 (OP_Rounding): Move abort() invocation.
1894 * i386-dis-evex.h (evex_table): Reference VEX table for opcodes
1895 0F60, 0F61, 0F63, 0F67, 0F68, 0F69, 0FD1, 0FD5, 0FD8, 0FD9,
1896 0FDA, 0FDC, 0FDD, 0FDE, 0FE0, 0FE1, 0FE3, 0FE4, 0FE5, 0FE8,
1897 0FE9, 0FEA, 0FEC, 0FED, 0FEE, 0FF1, 0FF5, 0FF6, 0FF8, 0FF9,
1898 0FFC, 0FFD, 0F3800, 0F3804, 0F380B, 0F380C, 0F3818, 0F381C,
1899 0F381D, 0F383C, 0F383E, 0F3858, 0F3878, 0F3879, 0F3896, 0F3897,
1900 0F3898, 0F3899, 0F389C, 0F389D, 0F389E, 0F389F, 0F38A6, 0F38A7,
1901 0F38A8, 0F38A9, 0F38AC, 0F38AD, 0F38AE, 0F38AF, 0F38B6, 0F38B7,
1902 0F38B8, 0F38B9, 0F38BA, 0F38BB, 0F38BC, 0F38BD, 0F38BE, 0F38BF,
1903 0F38CF, 0F38DC, 0F38DD, 0F38DE, 0F38DF, 0F3A04, 0F3A0F, 0F3A44,
1905 * i386-dis-evex-prefix.h (PREFIX_EVEX_0F60, PREFIX_EVEX_0F61,
1906 PREFIX_EVEX_0F63, PREFIX_EVEX_0F67, PREFIX_EVEX_0F68,
1907 PREFIX_EVEX_0F69, PREFIX_EVEX_0FD1, PREFIX_EVEX_0FD5,
1908 PREFIX_EVEX_0FD8, PREFIX_EVEX_0FD9, PREFIX_EVEX_0FDA,
1909 PREFIX_EVEX_0FDC, PREFIX_EVEX_0FDD, PREFIX_EVEX_0FDE,
1910 PREFIX_EVEX_0FE0, PREFIX_EVEX_0FE1, PREFIX_EVEX_0FE3,
1911 PREFIX_EVEX_0FE4, PREFIX_EVEX_0FE5, PREFIX_EVEX_0FE8,
1912 PREFIX_EVEX_0FE9, PREFIX_EVEX_0FEA, PREFIX_EVEX_0FEC,
1913 PREFIX_EVEX_0FED, PREFIX_EVEX_0FEE, PREFIX_EVEX_0FF1,
1914 PREFIX_EVEX_0FF5, PREFIX_EVEX_0FF6, PREFIX_EVEX_0FF8,
1915 PREFIX_EVEX_0FF9, PREFIX_EVEX_0FFC, PREFIX_EVEX_0FFD,
1916 PREFIX_EVEX_0F3800, PREFIX_EVEX_0F3804, PREFIX_EVEX_0F380B,
1917 PREFIX_EVEX_0F380C, PREFIX_EVEX_0F3818, PREFIX_EVEX_0F381C,
1918 PREFIX_EVEX_0F381D, PREFIX_EVEX_0F383C, PREFIX_EVEX_0F383E,
1919 PREFIX_EVEX_0F3858, PREFIX_EVEX_0F3878, PREFIX_EVEX_0F3879,
1920 PREFIX_EVEX_0F3896, PREFIX_EVEX_0F3897, PREFIX_EVEX_0F3898,
1921 PREFIX_EVEX_0F3899, PREFIX_EVEX_0F389C, PREFIX_EVEX_0F389D,
1922 PREFIX_EVEX_0F389E, PREFIX_EVEX_0F389F, PREFIX_EVEX_0F38A6,
1923 PREFIX_EVEX_0F38A7, PREFIX_EVEX_0F38A8, PREFIX_EVEX_0F38A9,
1924 PREFIX_EVEX_0F38AC, PREFIX_EVEX_0F38AD, PREFIX_EVEX_0F38AE,
1925 PREFIX_EVEX_0F38AF, PREFIX_EVEX_0F38B6, PREFIX_EVEX_0F38B7,
1926 PREFIX_EVEX_0F38B8, PREFIX_EVEX_0F38B9, PREFIX_EVEX_0F38BA,
1927 PREFIX_EVEX_0F38BB, PREFIX_EVEX_0F38BC, PREFIX_EVEX_0F38BD,
1928 PREFIX_EVEX_0F38BE, PREFIX_EVEX_0F38BF, PREFIX_EVEX_0F38CF,
1929 PREFIX_EVEX_0F38DC, PREFIX_EVEX_0F38DD, PREFIX_EVEX_0F38DE,
1930 PREFIX_EVEX_0F38DF, PREFIX_EVEX_0F3A04, PREFIX_EVEX_0F3A0F,
1931 PREFIX_EVEX_0F3A44, PREFIX_EVEX_0F3ACE, PREFIX_EVEX_0F3ACF):
1932 Delete table entries.
1933 * i386-dis-evex-w.h (EVEX_W_0F380C_P_2, EVEX_W_0F3818_P_2,
1934 EVEX_W_0F3858_P_2, EVEX_W_0F3878_P_2, EVEX_W_0F3879_P_2,
1935 EVEX_W_0F3A04_P_2, EVEX_W_0F3ACE_P_2, EVEX_W_0F3ACF_P_2):
1938 2020-07-06 Jan Beulich <jbeulich@suse.com>
1940 * i386-dis.c (EXqScalarS): Delete.
1941 (vex_len_table): Replace EXqScalarS by EXqVexScalarS.
1942 * i386-dis-evex-w.h (vmovq): Use EXqVexScalarS.
1944 2020-07-06 Jan Beulich <jbeulich@suse.com>
1946 * i386-dis.c (safe-ctype.h): Include.
1947 (EXdScalar, EXqScalar): Delete.
1948 (d_scalar_mode, q_scalar_mode): Delete.
1949 (prefix_table, vex_len_table): Use EXxmm_md in place of
1950 EXdScalar and EXxmm_mq in place of EXqScalar.
1951 (intel_operand_size, OP_E_memory, OP_EX): Remove uses of
1952 d_scalar_mode and q_scalar_mode.
1953 * i386-dis-evex-w.h (vmovss): Use EXxmm_md.
1954 (vmovsd): Use EXxmm_mq.
1956 2020-07-06 Yuri Chornoivan <yurchor@ukr.net>
1959 * arc-dis.c: Fix spelling mistake.
1960 * po/opcodes.pot: Regenerate.
1962 2020-07-06 Nick Clifton <nickc@redhat.com>
1964 * po/pt_BR.po: Updated Brazilian Portugugese translation.
1965 * po/uk.po: Updated Ukranian translation.
1967 2020-07-04 Nick Clifton <nickc@redhat.com>
1969 * configure: Regenerate.
1970 * po/opcodes.pot: Regenerate.
1972 2020-07-04 Nick Clifton <nickc@redhat.com>
1974 Binutils 2.35 branch created.
1976 2020-07-02 H.J. Lu <hongjiu.lu@intel.com>
1978 * i386-gen.c (opcode_modifiers): Add VexSwapSources.
1979 * i386-opc.h (VexSwapSources): New.
1980 (i386_opcode_modifier): Add vexswapsources.
1981 * i386-opc.tbl: Add VexSwapSources to BMI2 and BMI instructions
1982 with two source operands swapped.
1983 * i386-tbl.h: Regenerated.
1985 2020-06-30 Nelson Chu <nelson.chu@sifive.com>
1987 * riscv-dis.c (print_insn_args, case 'E'): Updated. Let the
1988 unprivileged CSR can also be initialized.
1990 2020-06-29 Alan Modra <amodra@gmail.com>
1992 * arm-dis.c: Use C style comments.
1993 * cr16-opc.c: Likewise.
1994 * ft32-dis.c: Likewise.
1995 * moxie-opc.c: Likewise.
1996 * tic54x-dis.c: Likewise.
1997 * s12z-opc.c: Remove useless comment.
1998 * xgate-dis.c: Likewise.
2000 2020-06-26 H.J. Lu <hongjiu.lu@intel.com>
2002 * i386-opc.tbl: Add a blank line.
2004 2020-06-26 H.J. Lu <hongjiu.lu@intel.com>
2006 * i386-gen.c (opcode_modifiers): Replace VecSIB with SIB.
2007 (VecSIB128): Renamed to ...
2009 (VecSIB256): Renamed to ...
2011 (VecSIB512): Renamed to ...
2013 (VecSIB): Renamed to ...
2015 (i386_opcode_modifier): Replace vecsib with sib.
2016 * i386-opc.tbl (VecSIB128): New.
2017 (VecSIB256): Likewise.
2018 (VecSIB512): Likewise.
2019 Replace VecSIB=1, VecSIB=2 and VecSIB=3 with VecSIB128, VecSIB256
2020 and VecSIB512, respectively.
2022 2020-06-26 Jan Beulich <jbeulich@suse.com>
2024 * i386-dis.c: Adjust description of I macro.
2025 (x86_64_table): Drop use of I.
2026 (float_mem): Replace use of I.
2027 (putop): Remove handling of I. Adjust setting/clearing of "alt".
2029 2020-06-26 Jan Beulich <jbeulich@suse.com>
2031 * i386-dis.c: (print_insn): Avoid straight assignment to
2032 priv.orig_sizeflag when processing -M sub-options.
2034 2020-06-25 Jan Beulich <jbeulich@suse.com>
2036 * i386-dis.c: Adjust description of J macro.
2037 (dis386, x86_64_table, mod_table): Replace J.
2038 (putop): Remove handling of J.
2040 2020-06-25 Jan Beulich <jbeulich@suse.com>
2042 * i386-dis.c: (float_mem): Reduce alternatives for fstpt and fldpt.
2044 2020-06-25 Jan Beulich <jbeulich@suse.com>
2046 * i386-dis.c: Adjust description of "LQ" macro.
2047 (dis386_twobyte): Use LQ for sysret.
2048 (putop): Adjust handling of LQ.
2050 2020-06-22 Nelson Chu <nelson.chu@sifive.com>
2052 * riscv-opc.c: Move the structures and functions to bfd/elfxx-riscv.c.
2053 * riscv-dis.c: Include elfxx-riscv.h.
2055 2020-06-18 H.J. Lu <hongjiu.lu@intel.com>
2057 * i386-dis.c (prefix_table): Revert the last vmgexit change.
2059 2020-06-17 Lili Cui <lili.cui@intel.com>
2061 * i386-dis.c (prefix_table): Delete the incorrect vmgexit.
2063 2020-06-14 H.J. Lu <hongjiu.lu@intel.com>
2066 * i386-dis.c (prefix_table): Replace xsuspldtrk with xsusldtrk.
2067 * i386-opc.tbl: Likewise.
2068 * i386-tbl.h: Regenerated.
2070 2020-06-12 Nelson Chu <nelson.chu@sifive.com>
2072 * riscv-opc.c (priv_specs): Remove v1.9 and PRIV_SPEC_CLASS_1P9.
2074 2020-06-11 Alex Coplan <alex.coplan@arm.com>
2076 * aarch64-opc.c (SYSREG): New macro for describing system registers.
2077 (SR_CORE): Likewise.
2078 (SR_FEAT): Likewise.
2080 (SR_V8_1): Likewise.
2081 (SR_V8_2): Likewise.
2082 (SR_V8_3): Likewise.
2083 (SR_V8_4): Likewise.
2086 (SR_SSBS): Likewise.
2088 (SR_ID_PFR2): Likewise.
2089 (SR_PROFILE): Likewise.
2090 (SR_MEMTAG): Likewise.
2091 (SR_SCXTNUM): Likewise.
2092 (aarch64_sys_regs): Refactor to store feature information in the table.
2093 (aarch64_sys_reg_supported_p): Collapse logic for system registers
2094 that now describe their own features.
2095 (aarch64_pstatefield_supported_p): Likewise.
2097 2020-06-09 H.J. Lu <hongjiu.lu@intel.com>
2099 * i386-dis.c (prefix_table): Fix a typo in comments.
2101 2020-06-09 Jan Beulich <jbeulich@suse.com>
2103 * i386-dis.c (rex_ignored): Delete.
2104 (ckprefix): Drop rex_ignored initialization.
2105 (get_valid_dis386): Drop setting of rex_ignored.
2106 (print_insn): Drop checking of rex_ignored. Don't record data
2107 size prefix as used with VEX-and-alike encodings.
2109 2020-06-09 Jan Beulich <jbeulich@suse.com>
2111 * i386-dis.c (MOD_0F12_PREFIX_2, MOD_0F16_PREFIX_2,
2112 MOD_VEX_0F12_PREFIX_2, MOD_VEX_0F16_PREFIX_2): New enumerators.
2113 (VEX_LEN_0F12_P_2, VEX_LEN_0F16_P_2): Delete.
2114 (VEX_LEN_0F12_P_2_M_0, VEX_LEN_0F16_P_2_M_0): Define.
2115 (prefix_table): Decode MOD for cases 2 of opcodes 0F12, 0F16,
2116 VEX_0F12, and VEX_0F16.
2117 (vex_len_table): Use X for vmovlp* and vmovh*s. Drop
2118 VEX_LEN_0F12_P_2 and VEX_LEN_0F16_P_2 entries.
2119 (mod_table): Use X for movlpX and movhpX. Drop PREFIX_OPCODE
2120 from movlps and movhlps. New MOD_0F12_PREFIX_2,
2121 MOD_0F16_PREFIX_2, MOD_VEX_0F12_PREFIX_2, and
2122 MOD_VEX_0F16_PREFIX_2 entries.
2124 2020-06-09 Jan Beulich <jbeulich@suse.com>
2126 * i386-dis.c (MOD_EVEX_0F12_PREFIX_2, MOD_EVEX_0F13,
2127 MOD_EVEX_0F16_PREFIX_2, MOD_EVEX_0F17, MOD_EVEX_0F2B): New enumerators.
2128 (PREFIX_EVEX_0F13, PREFIX_EVEX_0F14, PREFIX_EVEX_0F15,
2129 PREFIX_EVEX_0F17, PREFIX_EVEX_0F28, PREFIX_EVEX_0F29,
2130 PREFIX_EVEX_0F2B, PREFIX_EVEX_0F54, PREFIX_EVEX_0F55,
2131 PREFIX_EVEX_0F56, PREFIX_EVEX_0F57, PREFIX_EVEX_0FC6,
2132 EVEX_W_0F10_P_0, EVEX_W_0F10_P_2, EVEX_W_0F11_P_0,
2133 EVEX_W_0F11_P_2, EVEX_W_0F12_P_0_M_0, EVEX_W_0F12_P_2,
2134 EVEX_W_0F13_P_0, EVEX_W_0F13_P_2, EVEX_W_0F14_P_0,
2135 EVEX_W_0F14_P_2, EVEX_W_0F15_P_0, EVEX_W_0F15_P_2,
2136 EVEX_W_0F16_P_0_M_0, EVEX_W_0F16_P_2, EVEX_W_0F17_P_0,
2137 EVEX_W_0F17_P_2, EVEX_W_0F28_P_0, EVEX_W_0F28_P_2,
2138 EVEX_W_0F29_P_0, EVEX_W_0F29_P_2, EVEX_W_0F2B_P_0,
2139 EVEX_W_0F2B_P_2, EVEX_W_0F2E_P_0, EVEX_W_0F2E_P_2,
2140 EVEX_W_0F2F_P_0, EVEX_W_0F2F_P_2, EVEX_W_0F51_P_0,
2141 EVEX_W_0F51_P_2, EVEX_W_0F54_P_0, EVEX_W_0F54_P_2,
2142 EVEX_W_0F55_P_0, EVEX_W_0F55_P_2, EVEX_W_0F56_P_0,
2143 EVEX_W_0F56_P_2, EVEX_W_0F57_P_0, EVEX_W_0F57_P_2,
2144 EVEX_W_0F58_P_0, EVEX_W_0F58_P_2, EVEX_W_0F59_P_0,
2145 EVEX_W_0F59_P_2, EVEX_W_0F5C_P_0, EVEX_W_0F5C_P_2,
2146 EVEX_W_0F5D_P_0, EVEX_W_0F5D_P_2, EVEX_W_0F5E_P_0,
2147 EVEX_W_0F5E_P_2, EVEX_W_0F5F_P_0, EVEX_W_0F5F_P_2,
2148 EVEX_W_0FC2_P_0, EVEX_W_0FC2_P_2, EVEX_W_0FC6_P_0,
2149 EVEX_W_0FC6_P_2): Delete.
2150 (print_insn): Add EVEX.W vs embedded prefix consistency check
2151 to prefix validation.
2152 * i386-dis-evex.h (evex_table): Don't further descend for
2153 vunpcklpX, vunpckhpX, vmovapX, vandpX, vandnpX, vorpX, vxorpX,
2154 and vshufpX. Continue with MOD decoding for opcodes 0F13, 0F17,
2156 * i386-dis-evex-mod.h: Add/adjust vmovlpX/vmovhpX entries.
2157 * i386-dis-evex-prefix.h: Don't further descend for vmovupX,
2158 vucomisX, vcomisX, vsqrtpX, vaddpX, vmulpX, vsubpX, vminpX,
2159 vdivpX, vmaxpX, and vcmppX. Continue with MOD decoding for cases
2160 2 of PREFIX_EVEX_0F12, PREFIX_EVEX_0F16, and PREFIX_EVEX_0F29.
2161 Drop PREFIX_EVEX_0F13, PREFIX_EVEX_0F14, PREFIX_EVEX_0F15,
2162 PREFIX_EVEX_0F17, PREFIX_EVEX_0F28, PREFIX_EVEX_0F2B,
2163 PREFIX_EVEX_0F54, PREFIX_EVEX_0F55, PREFIX_EVEX_0F56,
2164 PREFIX_EVEX_0F57, and PREFIX_EVEX_0FC6 entries.
2165 * i386-dis-evex-w.h: Drop EVEX_W_0F10_P_0, EVEX_W_0F10_P_2,
2166 EVEX_W_0F11_P_0, EVEX_W_0F11_P_2, EVEX_W_0F12_P_0_M_0,
2167 EVEX_W_0F12_P_2, EVEX_W_0F12_P_3, EVEX_W_0F13_P_0,
2168 EVEX_W_0F13_P_2, EVEX_W_0F14_P_0, EVEX_W_0F14_P_2,
2169 EVEX_W_0F15_P_0, EVEX_W_0F15_P_2, EVEX_W_0F16_P_0_M_0,
2170 EVEX_W_0F16_P_2, EVEX_W_0F17_P_0, EVEX_W_0F17_P_2,
2171 EVEX_W_0F28_P_0, EVEX_W_0F28_P_2, EVEX_W_0F29_P_0,
2172 EVEX_W_0F29_P_2, EVEX_W_0F2B_P_0, EVEX_W_0F2B_P_2,
2173 EVEX_W_0F2E_P_0, EVEX_W_0F2E_P_2, EVEX_W_0F2F_P_0,
2174 EVEX_W_0F2F_P_2, EVEX_W_0F51_P_0, EVEX_W_0F51_P_2,
2175 EVEX_W_0F54_P_0, EVEX_W_0F54_P_2, EVEX_W_0F55_P_0,
2176 EVEX_W_0F55_P_2, EVEX_W_0F56_P_0, EVEX_W_0F56_P_2,
2177 EVEX_W_0F57_P_0, EVEX_W_0F57_P_2, EVEX_W_0F58_P_0,
2178 EVEX_W_0F58_P_2, EVEX_W_0F59_P_0, EVEX_W_0F59_P_2,
2179 EVEX_W_0F5C_P_0, EVEX_W_0F5C_P_2, EVEX_W_0F5D_P_0,
2180 EVEX_W_0F5D_P_2, EVEX_W_0F5E_P_0, EVEX_W_0F5E_P_2,
2181 EVEX_W_0F5F_P_0, EVEX_W_0F5F_P_2, EVEX_W_0FC2_P_0,
2182 EVEX_W_0FC2_P_2, EVEX_W_0FC6_P_0, and EVEX_W_0FC6_P_2 entries.
2184 2020-06-09 Jan Beulich <jbeulich@suse.com>
2186 * i386-dis.c (vex_table): Use PREFIX_OPCODE for vunpcklpX,
2187 vunpckhpX, vmovapX, vandpX, vandnpX, vorpX, vxorpX and vshufpX.
2188 (vex_len_table) : Likewise for vmovlpX, vmovhpX, vmovntpX, and
2190 (print_insn): Drop pointless check against bad_opcode. Split
2191 prefix validation into legacy and VEX-and-alike parts.
2192 (putop): Re-work 'X' macro handling.
2194 2020-06-09 Jan Beulich <jbeulich@suse.com>
2196 * i386-dis.c (MOD_0F51): Rename to ...
2197 (MOD_0F50): ... this.
2199 2020-06-08 Alex Coplan <alex.coplan@arm.com>
2201 * arm-dis.c (arm_opcodes): Add dfb.
2202 (thumb32_opcodes): Add dfb.
2204 2020-06-08 Jan Beulich <jbeulich@suse.com>
2206 * i386-opc.h (reg_entry): Const-qualify reg_name field.
2208 2020-06-06 Alan Modra <amodra@gmail.com>
2210 * ppc-dis.c (ppc_opts): Accept -mpwr10/-Mpwr10.
2212 2020-06-05 Alan Modra <amodra@gmail.com>
2214 * cgen-dis.c (hash_insn_array): Increase size of buf. Assert
2215 size is large enough.
2217 2020-06-04 Jose E. Marchesi <jose.marchesi@oracle.com>
2219 * disassemble.c (disassemble_init_for_target): Set endian_code for
2221 * bpf-desc.c: Regenerate.
2222 * bpf-opc.c: Likewise.
2223 * bpf-dis.c: Likewise.
2225 2020-06-03 Jose E. Marchesi <jose.marchesi@oracle.com>
2227 * cgen-opc.c (cgen_get_insn_value): Get an `endian' argument.
2228 (cgen_put_insn_value): Likewise.
2229 (cgen_lookup_insn): Pass endianness to cgen_{get,put}_insn_value.
2230 * cgen-dis.in (print_insn): Likewise.
2231 * cgen-ibld.in (insert_1): Likewise.
2232 (insert_1): Likewise.
2233 (insert_insn_normal): Likewise.
2234 (extract_1): Likewise.
2235 * bpf-dis.c: Regenerate.
2236 * bpf-ibld.c: Likewise.
2237 * bpf-ibld.c: Likewise.
2238 * cgen-dis.in: Likewise.
2239 * cgen-ibld.in: Likewise.
2240 * cgen-opc.c: Likewise.
2241 * epiphany-dis.c: Likewise.
2242 * epiphany-ibld.c: Likewise.
2243 * fr30-dis.c: Likewise.
2244 * fr30-ibld.c: Likewise.
2245 * frv-dis.c: Likewise.
2246 * frv-ibld.c: Likewise.
2247 * ip2k-dis.c: Likewise.
2248 * ip2k-ibld.c: Likewise.
2249 * iq2000-dis.c: Likewise.
2250 * iq2000-ibld.c: Likewise.
2251 * lm32-dis.c: Likewise.
2252 * lm32-ibld.c: Likewise.
2253 * m32c-dis.c: Likewise.
2254 * m32c-ibld.c: Likewise.
2255 * m32r-dis.c: Likewise.
2256 * m32r-ibld.c: Likewise.
2257 * mep-dis.c: Likewise.
2258 * mep-ibld.c: Likewise.
2259 * mt-dis.c: Likewise.
2260 * mt-ibld.c: Likewise.
2261 * or1k-dis.c: Likewise.
2262 * or1k-ibld.c: Likewise.
2263 * xc16x-dis.c: Likewise.
2264 * xc16x-ibld.c: Likewise.
2265 * xstormy16-dis.c: Likewise.
2266 * xstormy16-ibld.c: Likewise.
2268 2020-06-04 Jose E. Marchesi <jemarch@gnu.org>
2270 * cgen-dis.in (cpu_desc_list): New field `insn_endian'.
2271 (print_insn_): Handle instruction endian.
2272 * bpf-dis.c: Regenerate.
2273 * bpf-desc.c: Regenerate.
2274 * epiphany-dis.c: Likewise.
2275 * epiphany-desc.c: Likewise.
2276 * fr30-dis.c: Likewise.
2277 * fr30-desc.c: Likewise.
2278 * frv-dis.c: Likewise.
2279 * frv-desc.c: Likewise.
2280 * ip2k-dis.c: Likewise.
2281 * ip2k-desc.c: Likewise.
2282 * iq2000-dis.c: Likewise.
2283 * iq2000-desc.c: Likewise.
2284 * lm32-dis.c: Likewise.
2285 * lm32-desc.c: Likewise.
2286 * m32c-dis.c: Likewise.
2287 * m32c-desc.c: Likewise.
2288 * m32r-dis.c: Likewise.
2289 * m32r-desc.c: Likewise.
2290 * mep-dis.c: Likewise.
2291 * mep-desc.c: Likewise.
2292 * mt-dis.c: Likewise.
2293 * mt-desc.c: Likewise.
2294 * or1k-dis.c: Likewise.
2295 * or1k-desc.c: Likewise.
2296 * xc16x-dis.c: Likewise.
2297 * xc16x-desc.c: Likewise.
2298 * xstormy16-dis.c: Likewise.
2299 * xstormy16-desc.c: Likewise.
2301 2020-06-03 Nick Clifton <nickc@redhat.com>
2303 * po/sr.po: Updated Serbian translation.
2305 2020-06-03 Nelson Chu <nelson.chu@sifive.com>
2307 * riscv-opc.c (riscv_get_isa_spec_class): Change bfd_boolean to int.
2308 (riscv_get_priv_spec_class): Likewise.
2310 2020-06-01 Alan Modra <amodra@gmail.com>
2312 * bpf-desc.c: Regenerate.
2314 2020-05-28 Jose E. Marchesi <jose.marchesi@oracle.com>
2315 David Faust <david.faust@oracle.com>
2317 * bpf-desc.c: Regenerate.
2318 * bpf-opc.h: Likewise.
2319 * bpf-opc.c: Likewise.
2320 * bpf-dis.c: Likewise.
2322 2020-05-28 Alan Modra <amodra@gmail.com>
2324 * nios2-dis.c (nios2_print_insn_arg): Avoid shift left of negative
2327 2020-05-28 Alan Modra <amodra@gmail.com>
2329 * ns32k-dis.c (print_insn_arg): Handle d value of 'f' for
2331 (print_insn_ns32k): Revert last change.
2333 2020-05-28 Nick Clifton <nickc@redhat.com>
2335 * ns32k-dis.c (print_insn_ns32k): Change the arg_bufs array to
2338 2020-05-26 Sandra Loosemore <sandra@codesourcery.com>
2340 Fix extraction of signed constants in nios2 disassembler (again).
2342 * nios2-dis.c (nios2_print_insn_arg): Add explicit casts to
2343 extractions of signed fields.
2345 2020-05-26 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2347 * s390-opc.txt: Relocate vector load/store instructions with
2348 additional alignment parameter and change architecture level
2349 constraint from z14 to z13.
2351 2020-05-21 Alan Modra <amodra@gmail.com>
2353 * arc-ext.c: Replace "if (x) free (x)" with "free (x)" throughout.
2354 * sparc-dis.c: Likewise.
2355 * tic4x-dis.c: Likewise.
2356 * xtensa-dis.c: Likewise.
2357 * bpf-desc.c: Regenerate.
2358 * epiphany-desc.c: Regenerate.
2359 * fr30-desc.c: Regenerate.
2360 * frv-desc.c: Regenerate.
2361 * ip2k-desc.c: Regenerate.
2362 * iq2000-desc.c: Regenerate.
2363 * lm32-desc.c: Regenerate.
2364 * m32c-desc.c: Regenerate.
2365 * m32r-desc.c: Regenerate.
2366 * mep-asm.c: Regenerate.
2367 * mep-desc.c: Regenerate.
2368 * mt-desc.c: Regenerate.
2369 * or1k-desc.c: Regenerate.
2370 * xc16x-desc.c: Regenerate.
2371 * xstormy16-desc.c: Regenerate.
2373 2020-05-20 Nelson Chu <nelson.chu@sifive.com>
2375 * riscv-opc.c (riscv_ext_version_table): The table used to store
2376 all information about the supported spec and the corresponding ISA
2377 versions. Currently, only Zicsr is supported to verify the
2378 correctness of Z sub extension settings. Others will be supported
2379 in the future patches.
2380 (struct isa_spec_t, isa_specs): List for all supported ISA spec
2381 classes and the corresponding strings.
2382 (riscv_get_isa_spec_class): New function. Get the corresponding ISA
2383 spec class by giving a ISA spec string.
2384 * riscv-opc.c (struct priv_spec_t): New structure.
2385 (struct priv_spec_t priv_specs): List for all supported privilege spec
2386 classes and the corresponding strings.
2387 (riscv_get_priv_spec_class): New function. Get the corresponding
2388 privilege spec class by giving a spec string.
2389 (riscv_get_priv_spec_name): New function. Get the corresponding
2390 privilege spec string by giving a CSR version class.
2391 * riscv-dis.c: Updated since DECLARE_CSR is changed.
2392 * riscv-dis.c: Add new disassembler option -Mpriv-spec to dump the CSR
2393 according to the chosen version. Build a hash table riscv_csr_hash to
2394 store the valid CSR for the chosen pirv verison. Dump the direct
2395 CSR address rather than it's name if it is invalid.
2396 (parse_riscv_dis_option_without_args): New function. Parse the options
2398 (parse_riscv_dis_option): Call parse_riscv_dis_option_without_args to
2399 parse the options without arguments first, and then handle the options
2400 with arguments. Add the new option -Mpriv-spec, which has argument.
2401 * riscv-dis.c (print_riscv_disassembler_options): Add description
2402 about the new OBJDUMP option.
2404 2020-05-19 Peter Bergner <bergner@linux.ibm.com>
2406 * ppc-opc.c (insert_ls, extract_ls): Handle 3-bit L fields and new
2407 WC values on POWER10 sync, dcbf and wait instructions.
2408 (insert_pl, extract_pl): New functions.
2409 (L2OPT, LS, WC): Use insert_ls and extract_ls.
2410 (LS3): New , 3-bit L for sync.
2411 (LS3, L3OPT): New, 3-bit L for sync and dcbf.
2412 (SC2, PL): New, 2-bit SC and PL for sync and wait.
2413 (XWCPL_MASK, XL3RT_MASK, XSYNCLS_MASK): New instruction masks.
2414 (XOPL3, XWCPL, XSYNCLS): New opcode macros.
2415 (powerpc_opcodes) <dcbflp, dcbfps, dcbstps pause_short, phwsync,
2416 plwsync, stcisync, stncisync, stsync, waitrsv>: New extended mnemonics.
2417 <wait>: Enable PL operand on POWER10.
2418 <dcbf>: Enable L3OPT operand on POWER10.
2419 <sync>: Enable SC2 operand on POWER10.
2421 2020-05-19 Stafford Horne <shorne@gmail.com>
2424 * or1k-asm.c: Regenerate.
2425 * or1k-desc.c: Regenerate.
2426 * or1k-desc.h: Regenerate.
2427 * or1k-dis.c: Regenerate.
2428 * or1k-ibld.c: Regenerate.
2429 * or1k-opc.c: Regenerate.
2430 * or1k-opc.h: Regenerate.
2431 * or1k-opinst.c: Regenerate.
2433 2020-05-11 Alan Modra <amodra@gmail.com>
2435 * ppc-opc (powerpc_opcodes): Add xscmpeqqp, xscmpgeqp, xscmpgtqp,
2438 2020-05-11 Alan Modra <amodra@gmail.com>
2440 * ppc-opc.c (powerpc_opcodes): Add lxvrbx, lxvrhx, lxvrwx, lxvrdx,
2441 stxvrbx, stxvrhx, stxvrwx, stxvrdx.
2443 2020-05-11 Alan Modra <amodra@gmail.com>
2445 * ppc-opc.c (powerpc_opcodes): Add xvtlsbb.
2447 2020-05-11 Alan Modra <amodra@gmail.com>
2449 * ppc-opc.c (powerpc_opcodes): Add vstribl, vstribr, vstrihl, vstrihr,
2450 vclrlb, vclrrb, vstribl., vstribr., vstrihl., vstrihr..
2452 2020-05-11 Peter Bergner <bergner@linux.ibm.com>
2454 * ppc-opc.c (powerpc_opcodes) <setbc, setbcr, setnbc, setnbcr>: New
2457 2020-05-11 Alan Modra <amodra@gmail.com>
2459 * ppc-opc.c (UIM8, P_U8XX4_MASK): Define.
2460 (powerpc_opcodes): Add vgnb, vcfuged, vpextd, vpdepd, vclzdm,
2461 vctzdm, cntlzdm, pdepd, pextd, cfuged, cnttzdm.
2462 (prefix_opcodes): Add xxeval.
2464 2020-05-11 Alan Modra <amodra@gmail.com>
2466 * ppc-opc.c (powerpc_opcodes): Add xxgenpcvbm, xxgenpcvhm,
2467 xxgenpcvwm, xxgenpcvdm.
2469 2020-05-11 Alan Modra <amodra@gmail.com>
2471 * ppc-opc.c (MP, VXVAM_MASK): Define.
2472 (VXVAPS_MASK): Use VXVA_MASK.
2473 (powerpc_opcodes): Add mtvsrbmi, vexpandbm, vexpandhm, vexpandwm,
2474 vexpanddm, vexpandqm, vextractbm, vextracthm, vextractwm,
2475 vextractdm, vextractqm, mtvsrbm, mtvsrhm, mtvsrwm, mtvsrdm, mtvsrqm,
2476 vcntmbb, vcntmbh, vcntmbw, vcntmbd.
2478 2020-05-11 Alan Modra <amodra@gmail.com>
2479 Peter Bergner <bergner@linux.ibm.com>
2481 * ppc-opc.c (insert_xa6a, extract_xa6a, insert_xb6a, extract_xb6a):
2483 (powerpc_operands): Define ACC, PMSK8, PMSK4, PMSK2, XMSK, YMSK,
2484 YMSK2, XA6a, XA6ap, XB6a entries.
2485 (PMMIRR, P_X_MASK, P_XX1_MASK, P_GER_MASK): Define
2486 (P_GER2_MASK, P_GER4_MASK, P_GER8_MASK, P_GER64_MASK): Define.
2488 (powerpc_opcodes): Add xxmfacc, xxmtacc, xxsetaccz,
2489 xvi8ger4pp, xvi8ger4, xvf16ger2pp, xvf16ger2, xvf32gerpp, xvf32ger,
2490 xvi4ger8pp, xvi4ger8, xvi16ger2spp, xvi16ger2s, xvbf16ger2pp,
2491 xvbf16ger2, xvf64gerpp, xvf64ger, xvi16ger2, xvf16ger2np,
2492 xvf32gernp, xvi8ger4spp, xvi16ger2pp, xvbf16ger2np, xvf64gernp,
2493 xvf16ger2pn, xvf32gerpn, xvbf16ger2pn, xvf64gerpn, xvf16ger2nn,
2494 xvf32gernn, xvbf16ger2nn, xvf64gernn, xvcvbf16sp, xvcvspbf16.
2495 (prefix_opcodes): Add pmxvi8ger4pp, pmxvi8ger4, pmxvf16ger2pp,
2496 pmxvf16ger2, pmxvf32gerpp, pmxvf32ger, pmxvi4ger8pp, pmxvi4ger8,
2497 pmxvi16ger2spp, pmxvi16ger2s, pmxvbf16ger2pp, pmxvbf16ger2,
2498 pmxvf64gerpp, pmxvf64ger, pmxvi16ger2, pmxvf16ger2np, pmxvf32gernp,
2499 pmxvi8ger4spp, pmxvi16ger2pp, pmxvbf16ger2np, pmxvf64gernp,
2500 pmxvf16ger2pn, pmxvf32gerpn, pmxvbf16ger2pn, pmxvf64gerpn,
2501 pmxvf16ger2nn, pmxvf32gernn, pmxvbf16ger2nn, pmxvf64gernn.
2503 2020-05-11 Alan Modra <amodra@gmail.com>
2505 * ppc-opc.c (insert_imm32, extract_imm32): New functions.
2506 (insert_xts, extract_xts): New functions.
2507 (IMM32, UIM3, IX, UIM5, SH3, XTS, P8RR): Define.
2508 (P_XX4_MASK, P_UXX4_MASK, VSOP, P_VS_MASK, P_VSI_MASK): Define.
2509 (VXRC_MASK, VXSH_MASK): Define.
2510 (powerpc_opcodes): Add vinsbvlx, vsldbi, vextdubvlx, vextdubvrx,
2511 vextduhvlx, vextduhvrx, vextduwvlx, vextduwvrx, vextddvlx,
2512 vextddvrx, vinshvlx, vinswvlx, vinsw, vinsbvrx, vinshvrx,
2513 vinswvrx, vinsd, vinsblx, vsrdbi, vinshlx, vinswlx, vinsdlx,
2514 vinsbrx, vinshrx, vinswrx, vinsdrx, lxvkq.
2515 (prefix_opcodes): Add xxsplti32dx, xxspltidp, xxspltiw, xxblendvb,
2516 xxblendvh, xxblendvw, xxblendvd, xxpermx.
2518 2020-05-11 Alan Modra <amodra@gmail.com>
2520 * ppc-opc.c (powerpc_opcodes): Add vrlq, vdivuq, vmsumcud, vrlqmi,
2521 vmuloud, vcmpuq, vslq, vdivsq, vcmpsq, vrlqnm, vcmpequq, vmulosd,
2522 vsrq, vdiveuq, vcmpgtuq, vmuleud, vsraq, vdivesq, vcmpgtsq, vmulesd,
2523 vcmpequq., vextsd2q, vmoduq, vcmpgtuq., vmodsq, vcmpgtsq., xscvqpuqz,
2524 xscvuqqp, xscvqpsqz, xscvsqqp, dcffixqq, dctfixqq.
2526 2020-05-11 Alan Modra <amodra@gmail.com>
2528 * ppc-opc.c (insert_xtp, extract_xtp): New functions.
2529 (XTP, DQXP, DQXP_MASK): Define.
2530 (powerpc_opcodes): Add lxvp, stxvp, lxvpx, stxvpx.
2531 (prefix_opcodes): Add plxvp and pstxvp.
2533 2020-05-11 Alan Modra <amodra@gmail.com>
2535 * ppc-opc.c (powerpc_opcodes): Add vdivuw, vdivud, vdivsw, vmulld,
2536 vdivsd, vmulhuw, vdiveuw, vmulhud, vdiveud, vmulhsw, vdivesw,
2537 vmulhsd, vdivesd, vmoduw, vmodud, vmodsw, vmodsd.
2539 2020-05-11 Peter Bergner <bergner@linux.ibm.com>
2541 * ppc-opc.c (powerpc_opcodes) <brd, brh, brw>: New mnemonics.
2543 2020-05-11 Peter Bergner <bergner@linux.ibm.com>
2545 * ppc-opc.c (insert_l1opt, extract_l1opt): New functions.
2547 (powerpc_opcodes) <paste.>: Add L operand for cpu POWER10.
2549 2020-05-11 Peter Bergner <bergner@linux.ibm.com>
2551 * ppc-opc.c (powerpc_opcodes) <slbiag>: Add variant with L operand.
2553 2020-05-11 Alan Modra <amodra@gmail.com>
2555 * ppc-dis.c (powerpc_init_dialect): Default to "power10".
2557 2020-05-11 Alan Modra <amodra@gmail.com>
2559 * ppc-dis.c (ppc_opts): Add "power10" entry.
2560 (print_insn_powerpc): Update for PPC_OPCODE_POWER10 renaming.
2561 * ppc-opc.c (POWER10): Rename from POWERXX. Update all uses.
2563 2020-05-11 Nick Clifton <nickc@redhat.com>
2565 * po/fr.po: Updated French translation.
2567 2020-04-30 Alex Coplan <alex.coplan@arm.com>
2569 * aarch64-opc.h (enum aarch64_field_kind): Add FLD_imm16_2.
2570 * aarch64-opc.c (fields): Add entry for FLD_imm16_2.
2571 (operand_general_constraint_met_p): validate
2572 AARCH64_OPND_UNDEFINED.
2573 * aarch64-tbl.h (aarch64_opcode_table): Add udf instruction, entry
2575 * aarch64-asm-2.c: Regenerated.
2576 * aarch64-dis-2.c: Regenerated.
2577 * aarch64-opc-2.c: Regenerated.
2579 2020-04-29 Nick Clifton <nickc@redhat.com>
2582 * sh-opc.h: Also use unsigned 8-bit immediate values for the LDRC
2585 2020-04-29 Nick Clifton <nickc@redhat.com>
2587 * po/sv.po: Updated Swedish translation.
2589 2020-04-29 Nick Clifton <nickc@redhat.com>
2592 * sh-opc.h (IMM0_8): Replace with IMM0_8S and IMM0_8U. Use
2593 IMM0_8S for arithmetic insns and IMM0_8U for logical insns.
2594 * sh-dis.c (print_insn_sh): Change IMM0_8 case to IMM0_8S and add
2597 2020-04-21 Andreas Schwab <schwab@linux-m68k.org>
2600 * m68k-opc.c (m68k_opcodes): Allow pc-rel for second operand of
2601 cmpi only on m68020up and cpu32.
2603 2020-04-20 Sudakshina Das <sudi.das@arm.com>
2605 * aarch64-asm.c (aarch64_ins_none): New.
2606 * aarch64-asm.h (ins_none): New declaration.
2607 * aarch64-dis.c (aarch64_ext_none): New.
2608 * aarch64-dis.h (ext_none): New declaration.
2609 * aarch64-opc.c (aarch64_print_operand): Update case for
2610 AARCH64_OPND_BARRIER_PSB.
2611 * aarch64-tbl.h (aarch64_opcode_table): Add tsb.
2612 (AARCH64_OPERANDS): Update inserter/extracter for
2613 AARCH64_OPND_BARRIER_PSB to use new dummy functions.
2614 * aarch64-asm-2.c: Regenerated.
2615 * aarch64-dis-2.c: Regenerated.
2616 * aarch64-opc-2.c: Regenerated.
2618 2020-04-20 Sudakshina Das <sudi.das@arm.com>
2620 * aarch64-tbl.h (aarch64_feature_bti, BTI, BTI_INSN): Remove.
2621 (aarch64_feature_ras, RAS): Likewise.
2622 (aarch64_feature_stat_profile, STAT_PROFILE): Likewise.
2623 (aarch64_opcode_table): Update bti, xpaclri, pacia1716, pacib1716,
2624 autia1716, autib1716, esb, psb, dgh, paciaz, paciasp, pacibz, pacibsp,
2625 autiaz, autiasp, autibz, autibsp to be CORE_INSN.
2626 * aarch64-asm-2.c: Regenerated.
2627 * aarch64-dis-2.c: Regenerated.
2628 * aarch64-opc-2.c: Regenerated.
2630 2020-04-17 Fredrik Strupe <fredrik@strupe.net>
2632 * arm-dis.c (neon_opcodes): Fix VDUP instruction masks.
2633 (print_insn_neon): Support disassembly of conditional
2636 2020-02-16 David Faust <david.faust@oracle.com>
2638 * bpf-desc.c: Regenerate.
2639 * bpf-desc.h: Likewise.
2640 * bpf-opc.c: Regenerate.
2641 * bpf-opc.h: Likewise.
2643 2020-04-07 Lili Cui <lili.cui@intel.com>
2645 * i386-dis.c (enum): Add PREFIX_0F01_REG_5_MOD_3_RM_1,
2646 (prefix_table): New instructions (see prefixes above).
2647 (rm_table): Likewise
2648 * i386-gen.c (cpu_flag_init): Add CPU_TSXLDTRK_FLAGS,
2649 CPU_ANY_TSXLDTRK_FLAGS.
2650 (cpu_flags): Add CpuTSXLDTRK.
2651 * i386-opc.h (enum): Add CpuTSXLDTRK.
2652 (i386_cpu_flags): Add cputsxldtrk.
2653 * i386-opc.tbl: Add XSUSPLDTRK insns.
2654 * i386-init.h: Regenerate.
2655 * i386-tbl.h: Likewise.
2657 2020-04-02 Lili Cui <lili.cui@intel.com>
2659 * i386-dis.c (prefix_table): New instructions serialize.
2660 * i386-gen.c (cpu_flag_init): Add CPU_SERIALIZE_FLAGS,
2661 CPU_ANY_SERIALIZE_FLAGS.
2662 (cpu_flags): Add CpuSERIALIZE.
2663 * i386-opc.h (enum): Add CpuSERIALIZE.
2664 (i386_cpu_flags): Add cpuserialize.
2665 * i386-opc.tbl: Add SERIALIZE insns.
2666 * i386-init.h: Regenerate.
2667 * i386-tbl.h: Likewise.
2669 2020-03-26 Alan Modra <amodra@gmail.com>
2671 * disassemble.h (opcodes_assert): Declare.
2672 (OPCODES_ASSERT): Define.
2673 * disassemble.c: Don't include assert.h. Include opintl.h.
2674 (opcodes_assert): New function.
2675 * h8300-dis.c (bfd_h8_disassemble_init): Use OPCODES_ASSERT.
2676 (bfd_h8_disassemble): Reduce size of data array. Correctly
2677 calculate maxlen. Omit insn decoding when insn length exceeds
2678 maxlen. Exit from nibble loop when looking for E, before
2679 accessing next data byte. Move processing of E outside loop.
2680 Replace tests of maxlen in loop with assertions.
2682 2020-03-26 Alan Modra <amodra@gmail.com>
2684 * arc-dis.c (find_format): Init needs_limm. Simplify use of limm.
2686 2020-03-25 Alan Modra <amodra@gmail.com>
2688 * z80-dis.c (suffix): Init mybuf.
2690 2020-03-22 Alan Modra <amodra@gmail.com>
2692 * h8300-dis.c (bfd_h8_disassemble): Limit data[] access to that
2693 successflly read from section.
2695 2020-03-22 Alan Modra <amodra@gmail.com>
2697 * arc-dis.c (find_format): Use ISO C string concatenation rather
2698 than line continuation within a string. Don't access needs_limm
2699 before testing opcode != NULL.
2701 2020-03-22 Alan Modra <amodra@gmail.com>
2703 * ns32k-dis.c (print_insn_arg): Update comment.
2704 (print_insn_ns32k): Reduce size of index_offset array, and
2705 initialize, passing -1 to print_insn_arg for args that are not
2706 an index. Don't exit arg loop early. Abort on bad arg number.
2708 2020-03-22 Alan Modra <amodra@gmail.com>
2710 * s12z-dis.c (abstract_read_memory): Don't print error on EOI.
2711 * s12z-opc.c: Formatting.
2712 (operands_f): Return an int.
2713 (opr_n_bytes_p1): Return -1 on reaching buffer memory limit.
2714 (opr_n_bytes2, bfextins_n_bytes, mul_n_bytes, bm_n_bytes),
2715 (shift_n_bytes, mov_imm_opr_n_bytes, loop_prim_n_bytes),
2716 (exg_sex_discrim): Likewise.
2717 (create_immediate_operand, create_bitfield_operand),
2718 (create_register_operand_with_size, create_register_all_operand),
2719 (create_register_all16_operand, create_simple_memory_operand),
2720 (create_memory_operand, create_memory_auto_operand): Don't
2721 segfault on malloc failure.
2722 (z_ext24_decode): Return an int status, negative on fail, zero
2724 (x_imm1, imm1_decode, trap_decode, z_opr_decode, z_opr_decode2),
2725 (imm1234, reg_s_imm, reg_s_opr, z_imm1234_8base, z_imm1234_0base),
2726 (z_tfr, z_reg, reg_xy, lea_reg_xys_opr, lea_reg_xys, rel_15_7),
2727 (decode_rel_15_7, cmp_xy, sub_d6_x_y, sub_d6_y_x),
2728 (ld_18bit_decode, mul_decode, bm_decode, bm_rel_decode),
2729 (mov_imm_opr, ld_18bit_decode, exg_sex_decode),
2730 (loop_primitive_decode, shift_decode, psh_pul_decode),
2731 (bit_field_decode): Similarly.
2732 (z_decode_signed_value, decode_signed_value): Similarly. Add arg
2733 to return value, update callers.
2734 (x_opr_decode_with_size): Check all reads, returning NULL on fail.
2735 Don't segfault on NULL operand.
2736 (decode_operation): Return OP_INVALID on first fail.
2737 (decode_s12z): Check all reads, returning -1 on fail.
2739 2020-03-20 Alan Modra <amodra@gmail.com>
2741 * metag-dis.c (print_insn_metag): Don't ignore status from
2744 2020-03-20 Alan Modra <amodra@gmail.com>
2746 * nds32-dis.c (print_insn_nds32): Remove unnecessary casts.
2747 Initialize parts of buffer not written when handling a possible
2748 2-byte insn at end of section. Don't attempt decoding of such
2749 an insn by the 4-byte machinery.
2751 2020-03-20 Alan Modra <amodra@gmail.com>
2753 * ppc-dis.c (print_insn_powerpc): Only clear needed bytes of
2754 partially filled buffer. Prevent lookup of 4-byte insns when
2755 only VLE 2-byte insns are possible due to section size. Print
2756 ".word" rather than ".long" for 2-byte leftovers.
2758 2020-03-17 Sergey Belyashov <sergey.belyashov@gmail.com>
2761 * z80-dis.c: Fix disassembling ED+A4/AC/B4/BC opcodes.
2763 2020-03-13 Jan Beulich <jbeulich@suse.com>
2765 * i386-dis.c (X86_64_0D): Rename to ...
2766 (X86_64_0E): ... this.
2768 2020-03-09 H.J. Lu <hongjiu.lu@intel.com>
2770 * Makefile.am ($(srcdir)/i386-init.h): Also pass -P to $(CPP).
2771 * Makefile.in: Regenerated.
2773 2020-03-09 Jan Beulich <jbeulich@suse.com>
2775 * i386-opc.tbl (avx_irel): New. Use is for AVX512 vpcmp*
2777 * i386-tbl.h: Re-generate.
2779 2020-03-09 Jan Beulich <jbeulich@suse.com>
2781 * i386-opc.tbl (xop_elem, xop_irel, xop_sign): New. Use them for XOP vpcom*,
2782 vprot*, vpsha*, and vpshl*.
2783 * i386-tbl.h: Re-generate.
2785 2020-03-09 Jan Beulich <jbeulich@suse.com>
2787 * i386-opc.tbl (avx_frel): New. Use it for AVX/AVX512 vcmpps,
2788 vcmpss, vcmppd, and vcmpsd 3-operand pseudo-ops.
2789 * i386-tbl.h: Re-generate.
2791 2020-03-09 Jan Beulich <jbeulich@suse.com>
2793 * i386-gen.c (set_bitfield): Ignore zero-length field names.
2794 * i386-opc.tbl (sse_frel): New. Use it for SSE/SSE2 cmpps,
2795 cmpss, cmppd, and cmpsd 2-operand pseudo-ops.
2796 * i386-tbl.h: Re-generate.
2798 2020-03-09 Jan Beulich <jbeulich@suse.com>
2800 * i386-gen.c (struct template_arg, struct template_instance,
2801 struct template_param, struct template, templates,
2802 parse_template, expand_templates): New.
2803 (process_i386_opcodes): Various local variables moved to
2804 expand_templates. Call parse_template and expand_templates.
2805 * i386-opc.tbl (cc): New. Use it for Jcc, SETcc, and CMOVcc.
2806 * i386-tbl.h: Re-generate.
2808 2020-03-06 Jan Beulich <jbeulich@suse.com>
2810 * i386-opc.tbl (vcvtdq2pd, vcvtps2pd, vcvtudq2pd, vcvtps2ph,
2811 vcvtps2qq, vcvtps2uqq, vcvttps2qq, vcvttps2uqq): Fold separate
2812 register and memory source templates. Replace VexW= by VexW*
2814 * i386-tbl.h: Re-generate.
2816 2020-03-06 Jan Beulich <jbeulich@suse.com>
2818 * i386-opc.tbl: Drop IgnoreSize from various SIMD insns. Replace
2819 VexW= by VexW* and VexVVVV=1 by just VexVVVV where applicable.
2820 * i386-tbl.h: Re-generate.
2822 2020-03-06 Jan Beulich <jbeulich@suse.com>
2824 * i386-opc.tbl (fildll, fistpll, fisttpll): Add ATTSyntax.
2825 * i386-tbl.h: Re-generate.
2827 2020-03-06 Jan Beulich <jbeulich@suse.com>
2829 * i386-opc.tbl (movq): Drop NoRex64 from XMM/XMM SSE2AVX variants.
2830 (movmskps, pextrw, pinsrw, pmovmskb, movmskpd, extractps,
2831 pextrb, pinsrb, roundsd): Drop NoRex64 and where applicable use
2832 VexW0 on SSE2AVX variants.
2833 (vmovq): Drop NoRex64 from XMM/XMM variants.
2834 (vextractps, vmovmskpd, vmovmskps, vpextrb, vpextrw, vpinsrb,
2835 vpinsrw, vpmovmskb, vroundsd, vpmovmskb): Drop NoRex64 and where
2836 applicable use VexW0.
2837 * i386-tbl.h: Re-generate.
2839 2020-03-06 Jan Beulich <jbeulich@suse.com>
2841 * i386-gen.c (opcode_modifiers): Remove Rex64 field.
2842 * i386-opc.h (Rex64): Delete.
2843 (struct i386_opcode_modifier): Remove rex64 field.
2844 * i386-opc.tbl (crc32): Drop Rex64.
2845 Replace Rex64 with Size64 everywhere else.
2846 * i386-tbl.h: Re-generate.
2848 2020-03-06 Jan Beulich <jbeulich@suse.com>
2850 * i386-dis.c (OP_E_memory): Exclude recording of used address
2851 prefix for "bnd" modes only in 64-bit mode. Don't decode 16-bit
2852 addressed memory operands for MPX insns.
2854 2020-03-06 Jan Beulich <jbeulich@suse.com>
2856 * i386-opc.tbl (movmskps, mwait, vmread, vmwrite, invept,
2857 invvpid, invpcid, rdfsbase, rdgsbase, wrfsbase, wrgsbase, adcx,
2858 adox, mwaitx, rdpid, movdiri): Add IgnoreSize.
2859 (ptwrite): Split into non-64-bit and 64-bit forms.
2860 * i386-tbl.h: Re-generate.
2862 2020-03-06 Jan Beulich <jbeulich@suse.com>
2864 * i386-opc.tbl (tpause, umwait): Add IgnoreSize. Add 3-operand
2866 * i386-tbl.h: Re-generate.
2868 2020-03-04 Jan Beulich <jbeulich@suse.com>
2870 * i386-dis.c (PREFIX_0F01_REG_3_RM_1): New.
2871 (prefix_table): Move vmmcall here. Add vmgexit.
2872 (rm_table): Replace vmmcall entry by prefix_table[] escape.
2873 * i386-gen.c (cpu_flag_init): Add CPU_SEV_ES_FLAGS entry.
2874 (cpu_flags): Add CpuSEV_ES entry.
2875 * i386-opc.h (CpuSEV_ES): New.
2876 (union i386_cpu_flags): Add cpusev_es field.
2877 * i386-opc.tbl (vmgexit): New.
2878 * i386-init.h, i386-tbl.h: Re-generate.
2880 2020-03-03 H.J. Lu <hongjiu.lu@intel.com>
2882 * i386-gen.c (opcode_modifiers): Replace IgnoreSize/DefaultSize
2884 * i386-opc.h (IGNORESIZE): New.
2885 (DEFAULTSIZE): Likewise.
2886 (IgnoreSize): Removed.
2887 (DefaultSize): Likewise.
2888 (MnemonicSize): New.
2889 (i386_opcode_modifier): Replace ignoresize/defaultsize with
2891 * i386-opc.tbl (IgnoreSize): New.
2892 (DefaultSize): Likewise.
2893 * i386-tbl.h: Regenerated.
2895 2020-03-03 Sergey Belyashov <sergey.belyashov@gmail.com>
2898 * z80-dis.c: Fix disassembly of LD IY,(HL) and D (HL),IX
2901 2020-03-03 H.J. Lu <hongjiu.lu@intel.com>
2904 * i386-opc.tbl: Add IgnoreSize to cvtsi2sd, cvtsi2ss, vcvtsi2sd,
2905 vcvtsi2ss, vcvtusi2sd and vcvtusi2ss for AT&T syntax.
2906 * i386-tbl.h: Regenerated.
2908 2020-02-26 Alan Modra <amodra@gmail.com>
2910 * aarch64-asm.c: Indent labels correctly.
2911 * aarch64-dis.c: Likewise.
2912 * aarch64-gen.c: Likewise.
2913 * aarch64-opc.c: Likewise.
2914 * alpha-dis.c: Likewise.
2915 * i386-dis.c: Likewise.
2916 * nds32-asm.c: Likewise.
2917 * nfp-dis.c: Likewise.
2918 * visium-dis.c: Likewise.
2920 2020-02-25 Claudiu Zissulescu <claziss@gmail.com>
2922 * arc-regs.h (int_vector_base): Make it available for all ARC
2925 2020-02-20 Nelson Chu <nelson.chu@sifive.com>
2927 * riscv-dis.c (print_insn_args): Updated since the DECLARE_CSR is
2930 2020-02-19 Nelson Chu <nelson.chu@sifive.com>
2932 * riscv-opc.c (riscv_opcodes): Convert add/addi to the compressed
2933 c.mv/c.li if rs1 is zero.
2935 2020-02-17 H.J. Lu <hongjiu.lu@intel.com>
2937 * i386-gen.c (cpu_flag_init): Replace CpuABM with
2938 CpuLZCNT|CpuPOPCNT. Add CpuPOPCNT to CPU_SSE4_2_FLAGS. Add
2940 (cpu_flags): Remove CpuABM. Add CpuPOPCNT.
2941 * i386-opc.h (CpuABM): Removed.
2943 (i386_cpu_flags): Remove cpuabm. Add cpupopcnt.
2944 * i386-opc.tbl: Replace CpuABM|CpuSSE4_2 with CpuPOPCNT on
2945 popcnt. Remove CpuABM from lzcnt.
2946 * i386-init.h: Regenerated.
2947 * i386-tbl.h: Likewise.
2949 2020-02-17 Jan Beulich <jbeulich@suse.com>
2951 * i386-opc.tbl (vcvtsi2sd, vcvtsi2ss, vcvtusi2sd, vcvtusi2ss):
2952 Fold CpuNo64 and Cpu64 templates. Use VexLIG/EVexLIG and VexW0/
2953 VexW1 instead of open-coding them.
2954 * i386-tbl.h: Re-generate.
2956 2020-02-17 Jan Beulich <jbeulich@suse.com>
2958 * i386-opc.tbl (AddrPrefixOpReg): Define.
2959 (monitor, invlpga, vmload, vmrun, vmsave, clzero, monitorx,
2960 umonitor, movdir64b, enqcmd, enqcmds): Fold Cpu64 and CpuNo64
2961 templates. Drop NoRex64.
2962 * i386-tbl.h: Re-generate.
2964 2020-02-17 Jan Beulich <jbeulich@suse.com>
2967 * i386-opc.tbl (vcvtpd2dq, vcvtpd2ps, vcvttpd2dq, vcvtpd2udq,
2968 vcvttpd2udq, vcvtqq2ps, vcvtuqq2ps): Split XMM/YMM source forms
2969 into Intel syntax instance (with Unpsecified) and AT&T one
2971 (vcvtneps2bf16): Likewise, along with folding the two so far
2973 * i386-tbl.h: Re-generate.
2975 2020-02-16 H.J. Lu <hongjiu.lu@intel.com>
2977 * i386-gen.c (cpu_flag_init): Remove CPU_ANY_SSE3_FLAGS from
2978 CPU_ANY_SSE4A_FLAGS.
2980 2020-02-17 Alan Modra <amodra@gmail.com>
2982 * i386-gen.c (cpu_flag_init): Correct last change.
2984 2020-02-16 H.J. Lu <hongjiu.lu@intel.com>
2986 * i386-gen.c (cpu_flag_init): Add CPU_ANY_SSE4A_FLAGS. Remove
2989 2020-02-14 H.J. Lu <hongjiu.lu@intel.com>
2991 * i386-opc.tbl (movsx): Remove Intel syntax comments.
2994 2020-02-14 Jan Beulich <jbeulich@suse.com>
2997 * i386-opc.tbl (movsx): Fold patterns. Also allow Reg32 as
2998 destination for Cpu64-only variant.
2999 (movzx): Fold patterns.
3000 * i386-tbl.h: Re-generate.
3002 2020-02-13 Jan Beulich <jbeulich@suse.com>
3004 * i386-gen.c (cpu_flag_init): Move CpuSSE4a from
3005 CPU_ANY_SSE_FLAGS entry to CPU_ANY_SSE3_FLAGS one. Add
3006 CPU_ANY_SSE4_FLAGS entry.
3007 * i386-init.h: Re-generate.
3009 2020-02-12 Jan Beulich <jbeulich@suse.com>
3011 * i386-opc.tbl (vfpclasspd, vfpclassps): Add Intel sytax form
3012 with Unspecified, making the present one AT&T syntax only.
3013 * i386-tbl.h: Re-generate.
3015 2020-02-12 Jan Beulich <jbeulich@suse.com>
3017 * i386-opc.tbl (jmp): Fold CpuNo64 and Amd64 direct variants.
3018 * i386-tbl.h: Re-generate.
3020 2020-02-12 Jan Beulich <jbeulich@suse.com>
3023 * i386-dis.c (putop): Handle REX.W in '^' case for Intel64 mode.
3024 * i386-opc.tbl (lfs, lgs, lss, lcall, ljmp): Split into
3025 Amd64 and Intel64 templates.
3026 (call, jmp): Likewise for far indirect variants. Dro
3028 * i386-tbl.h: Re-generate.
3030 2020-02-11 Jan Beulich <jbeulich@suse.com>
3032 * i386-gen.c (opcode_modifiers): Remove ShortForm entry.
3033 * i386-opc.h (ShortForm): Delete.
3034 (struct i386_opcode_modifier): Remove shortform field.
3035 * i386-opc.tbl (mov, movabs, push, pop, xchg, inc, dec, fld,
3036 fst, fstp, fxch, fcom, fcomp, fucom, fucomp, fadd, faddp, fsub,
3037 fsubp, fsubr, fsubrp, fmul, fmulp, fdiv, fdivp, fdivr, fdivrp,
3038 ffreep, bswap, fcmov*, fcomi, fcomip, fucomi, fucomip, movq):
3040 * i386-tbl.h: Re-generate.
3042 2020-02-11 Jan Beulich <jbeulich@suse.com>
3044 * i386-opc.tbl (fcomi, fucomi, fcomip, fcompi, fucomip,
3045 fucompi): Drop ShortForm from operand-less templates.
3046 * i386-tbl.h: Re-generate.
3048 2020-02-11 Alan Modra <amodra@gmail.com>
3050 * cgen-ibld.in (extract_normal): Set *valuep on all return paths.
3051 * bpf-ibld.c, * epiphany-ibld.c, * fr30-ibld.c, * frv-ibld.c,
3052 * ip2k-ibld.c, * iq2000-ibld.c, * lm32-ibld.c, * m32c-ibld.c,
3053 * m32r-ibld.c, * mep-ibld.c, * mt-ibld.c, * or1k-ibld.c,
3054 * xc16x-ibld.c, * xstormy16-ibld.c: Regenerate.
3056 2020-02-10 Matthew Malcomson <matthew.malcomson@arm.com>
3058 * arm-dis.c (print_insn_cde): Define 'V' parse character.
3059 (cde_opcodes): Add VCX* instructions.
3061 2020-02-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
3062 Matthew Malcomson <matthew.malcomson@arm.com>
3064 * arm-dis.c (struct cdeopcode32): New.
3065 (CDE_OPCODE): New macro.
3066 (cde_opcodes): New disassembly table.
3067 (regnames): New option to table.
3068 (cde_coprocs): New global variable.
3069 (print_insn_cde): New
3070 (print_insn_thumb32): Use print_insn_cde.
3071 (parse_arm_disassembler_options): Parse coprocN args.
3073 2020-02-10 H.J. Lu <hongjiu.lu@intel.com>
3076 * i386-gen.c (opcode_modifiers): Replace AMD64 and Intel64
3078 * i386-opc.h (AMD64): Removed.
3079 (Intel64): Likewose.
3081 (INTEL64): Likewise.
3082 (INTEL64ONLY): Likewise.
3083 (i386_opcode_modifier): Replace amd64 and intel64 with isa64.
3084 * i386-opc.tbl (Amd64): New.
3085 (Intel64): Likewise.
3086 (Intel64Only): Likewise.
3087 Replace AMD64 with Amd64. Update sysenter/sysenter with
3088 Cpu64 and Intel64Only. Remove AMD64 from sysenter/sysenter.
3089 * i386-tbl.h: Regenerated.
3091 2020-02-07 Sergey Belyashov <sergey.belyashov@gmail.com>
3094 * z80-dis.c: Add support for GBZ80 opcodes.
3096 2020-02-04 Alan Modra <amodra@gmail.com>
3098 * d30v-dis.c (print_insn): Make "val" and "opnum" unsigned.
3100 2020-02-03 Alan Modra <amodra@gmail.com>
3102 * m32c-ibld.c: Regenerate.
3104 2020-02-01 Alan Modra <amodra@gmail.com>
3106 * frv-ibld.c: Regenerate.
3108 2020-01-31 Jan Beulich <jbeulich@suse.com>
3110 * i386-dis.c (EXxmm_mdq, xmm_mdq_mode): Delete.
3111 (intel_operand_size, OP_EX): Drop xmm_mdq_mode case label.
3112 (OP_E_memory): Replace xmm_mdq_mode case label by
3113 vex_scalar_w_dq_mode one.
3114 * i386-dis-evex-prefix.h: Replace EXxmm_mdq by EXVexWdqScalar.
3116 2020-01-31 Jan Beulich <jbeulich@suse.com>
3118 * i386-dis.c (EXVexWdq, vex_w_dq_mode): Delete.
3119 (vex_vsib_d_w_dq_mode, vex_vsib_q_w_dq_mode,
3120 vex_scalar_w_dq_mode): Don't refer to vex_w_dq_mode in comments.
3121 (intel_operand_size): Drop vex_w_dq_mode case label.
3123 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
3125 * aarch64-tbl.h (aarch64_opcode): Set C_MAX_ELEM for SVE bfcvt.
3126 Remove C_SCAN_MOVPRFX for SVE bfcvtnt.
3128 2020-01-30 Alan Modra <amodra@gmail.com>
3130 * m32c-ibld.c: Regenerate.
3132 2020-01-30 Jose E. Marchesi <jose.marchesi@oracle.com>
3134 * bpf-opc.c: Regenerate.
3136 2020-01-30 Jan Beulich <jbeulich@suse.com>
3138 * i386-dis.c (X86_64_C2, X86_64_C3): New enumerators.
3139 (dis386): Use them to replace C2/C3 table entries.
3140 (x86_64_table): Add X86_64_C2 and X86_64_C3 entries.
3141 * i386-opc.tbl (ret): Split Cpu64 entries into AMD64 and Intel64
3142 ones. Use Size64 instead of DefaultSize on Intel64 ones.
3143 * i386-tbl.h: Re-generate.
3145 2020-01-30 Jan Beulich <jbeulich@suse.com>
3147 * i386-opc.tbl (call): Drop DefaultSize from Intel64 JumpDword
3149 (fldenv, fnstenv, fstenv, fnsave, fsave, frstor): Drop
3151 * i386-tbl.h: Re-generate.
3153 2020-01-30 Alan Modra <amodra@gmail.com>
3155 * tic4x-dis.c (tic4x_dp): Make unsigned.
3157 2020-01-27 H.J. Lu <hongjiu.lu@intel.com>
3158 Jan Beulich <jbeulich@suse.com>
3161 * i386-dis.c (MOVSXD_Fixup): New function.
3162 (movsxd_mode): New enum.
3163 (x86_64_table): Use MOVSXD_Fixup and movsxd_mode on movsxd.
3164 (intel_operand_size): Handle movsxd_mode.
3165 (OP_E_register): Likewise.
3167 * i386-opc.tbl: Remove Rex64 and allow 32-bit destination
3168 register on movsxd. Add movsxd with 16-bit destination register
3169 for AMD64 and Intel64 ISAs.
3170 * i386-tbl.h: Regenerated.
3172 2020-01-27 Tamar Christina <tamar.christina@arm.com>
3175 * aarch64-tbl.h (struct aarch64_opcode): Re-order cfinv.
3176 * aarch64-asm-2.c: Regenerate
3177 * aarch64-dis-2.c: Likewise.
3178 * aarch64-opc-2.c: Likewise.
3180 2020-01-21 Jan Beulich <jbeulich@suse.com>
3182 * i386-opc.tbl (sysret): Drop DefaultSize.
3183 * i386-tbl.h: Re-generate.
3185 2020-01-21 Jan Beulich <jbeulich@suse.com>
3187 * i386-opc.tbl (vcvtneps2bf16x): Add Broadcast, Xmmword, and
3189 (vcvtneps2bf16y): Add Broadcast, Ymmword, and Dword.
3190 * i386-tbl.h: Re-generate.
3192 2020-01-20 Nick Clifton <nickc@redhat.com>
3194 * po/de.po: Updated German translation.
3195 * po/pt_BR.po: Updated Brazilian Portuguese translation.
3196 * po/uk.po: Updated Ukranian translation.
3198 2020-01-20 Alan Modra <amodra@gmail.com>
3200 * hppa-dis.c (fput_const): Remove useless cast.
3202 2020-01-20 Alan Modra <amodra@gmail.com>
3204 * arm-dis.c (print_insn_arm): Wrap 'T' value.
3206 2020-01-18 Nick Clifton <nickc@redhat.com>
3208 * configure: Regenerate.
3209 * po/opcodes.pot: Regenerate.
3211 2020-01-18 Nick Clifton <nickc@redhat.com>
3213 Binutils 2.34 branch created.
3215 2020-01-17 Christian Biesinger <cbiesinger@google.com>
3217 * opintl.h: Fix spelling error (seperate).
3219 2020-01-17 H.J. Lu <hongjiu.lu@intel.com>
3221 * i386-opc.tbl: Add {vex} pseudo prefix.
3222 * i386-tbl.h: Regenerated.
3224 2020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
3227 * arm-dis.c (coprocessor_opcodes): Use CORE_HIGH for MVE bits.
3228 (neon_opcodes): Likewise.
3229 (select_arm_features): Make sure we enable MVE bits when selecting
3230 armv8.1-m.main. Make sure we do not enable MVE bits when not selecting
3233 2020-01-16 Jan Beulich <jbeulich@suse.com>
3235 * i386-opc.tbl: Drop stale comment from XOP section.
3237 2020-01-16 Jan Beulich <jbeulich@suse.com>
3239 * i386-opc.tbl (movq): Add VexWIG to SSE2AVX XMM->XMM forms.
3240 (extractps): Add VexWIG to SSE2AVX forms.
3241 * i386-tbl.h: Re-generate.
3243 2020-01-16 Jan Beulich <jbeulich@suse.com>
3245 * i386-opc.tbl (pextrq, pinsrq): Drop IgnoreSize and Qword. Drop
3246 Size64 from and use VexW1 on SSE2AVX forms.
3247 (vpextrq, vpinsrq): Drop IgnoreSize and Qword. Drop Size64 from
3248 VEX-encoded forms. Add Cpu64 to EVEX-encoded forms. Use VexW1.
3249 * i386-tbl.h: Re-generate.
3251 2020-01-15 Alan Modra <amodra@gmail.com>
3253 * tic4x-dis.c (tic4x_version): Make unsigned long.
3254 (optab, optab_special, registernames): New file scope vars.
3255 (tic4x_print_register): Set up registernames rather than
3256 malloc'd registertable.
3257 (tic4x_disassemble): Delete optable and optable_special. Use
3258 optab and optab_special instead. Throw away old optab,
3259 optab_special and registernames when info->mach changes.
3261 2020-01-14 Sergey Belyashov <sergey.belyashov@gmail.com>
3264 * z80-dis.c (suffix): Use .db instruction to generate double
3267 2020-01-14 Alan Modra <amodra@gmail.com>
3269 * z8k-dis.c (unpack_instr): Formatting. Cast unsigned short
3270 values to unsigned before shifting.
3272 2020-01-13 Thomas Troeger <tstroege@gmx.de>
3274 * arm-dis.c (print_insn_arm): Fill in insn info fields for control
3276 (print_insn_thumb16, print_insn_thumb32): Likewise.
3277 (print_insn): Initialize the insn info.
3278 * i386-dis.c (print_insn): Initialize the insn info fields, and
3281 2020-01-13 Claudiu Zissulescu <claziss@gmail.com>
3283 * arc-opc.c (C_NE): Make it required.
3285 2020-01-13 Claudiu Zissulescu <claziss@gmail.com>
3287 * opcode/arc-dis.c (regnames): Correct ACCL/ACCH naming, fix typo
3288 reserved register name.
3290 2020-01-13 Alan Modra <amodra@gmail.com>
3292 * ns32k-dis.c (Is_gen): Use strchr, add 'f'.
3293 (print_insn_ns32k): Adjust ioffset for 'f' index_offset.
3295 2020-01-13 Alan Modra <amodra@gmail.com>
3297 * wasm32-dis.c (print_insn_wasm32): Localise variables. Store
3298 result of wasm_read_leb128 in a uint64_t and check that bits
3299 are not lost when copying to other locals. Use uint32_t for
3300 most locals. Use PRId64 when printing int64_t.
3302 2020-01-13 Alan Modra <amodra@gmail.com>
3304 * score-dis.c: Formatting.
3305 * score7-dis.c: Formatting.
3307 2020-01-13 Alan Modra <amodra@gmail.com>
3309 * score-dis.c (print_insn_score48): Use unsigned variables for
3310 unsigned values. Don't left shift negative values.
3311 (print_insn_score32): Likewise.
3312 * score7-dis.c (print_insn_score32, print_insn_score16): Likewise.
3314 2020-01-13 Alan Modra <amodra@gmail.com>
3316 * tic4x-dis.c (tic4x_print_register): Remove dead code.
3318 2020-01-13 Alan Modra <amodra@gmail.com>
3320 * fr30-ibld.c: Regenerate.
3322 2020-01-13 Alan Modra <amodra@gmail.com>
3324 * xgate-dis.c (print_insn): Don't left shift signed value.
3325 (ripBits): Formatting, use 1u.
3327 2020-01-10 Alan Modra <amodra@gmail.com>
3329 * tilepro-opc.c (parse_insn_tilepro): Make opval unsigned.
3330 * tilegx-opc.c (parse_insn_tilegx): Likewise. Delete raw_opval.
3332 2020-01-10 Alan Modra <amodra@gmail.com>
3334 * m10300-dis.c (disassemble): Move extraction of DREG, AREG, RREG,
3335 and XRREG value earlier to avoid a shift with negative exponent.
3336 * m10200-dis.c (disassemble): Similarly.
3338 2020-01-09 Nick Clifton <nickc@redhat.com>
3341 * z80-dis.c (ld_ii_ii): Use correct cast.
3343 2020-01-03 Sergey Belyashov <sergey.belyashov@gmail.com>
3346 * z80-dis.c (ld_ii_ii): Use character constant when checking
3349 2020-01-09 Jan Beulich <jbeulich@suse.com>
3351 * i386-dis.c (SEP_Fixup): New.
3353 (dis386_twobyte): Use it for sysenter/sysexit.
3354 (enum x86_64_isa): Change amd64 enumerator to value 1.
3355 (OP_J): Compare isa64 against intel64 instead of amd64.
3356 * i386-opc.tbl (sysenter, sysexit): Split into AMD64 and Intel64
3358 * i386-tbl.h: Re-generate.
3360 2020-01-08 Alan Modra <amodra@gmail.com>
3362 * z8k-dis.c: Include libiberty.h
3363 (instr_data_s): Make max_fetched unsigned.
3364 (z8k_lookup_instr): Make nibl_index and tabl_index unsigned.
3365 Don't exceed byte_info bounds.
3366 (output_instr): Make num_bytes unsigned.
3367 (unpack_instr): Likewise for nibl_count and loop.
3368 * z8kgen.c (gas <opcode_entry_type>): Make noperands, length and
3370 * z8k-opc.h: Regenerate.
3372 2020-01-07 Shahab Vahedi <shahab@synopsys.com>
3374 * arc-tbl.h (llock): Use 'LLOCK' as class.
3376 (scond): Use 'SCOND' as class.
3378 (llockd): Set data_size_mode to 'C_ZZ_D' which is 64-bit.
3381 2020-01-06 Alan Modra <amodra@gmail.com>
3383 * m32c-ibld.c: Regenerate.
3385 2020-01-06 Alan Modra <amodra@gmail.com>
3388 * z80-dis.c (suffix): Don't use a local struct buffer copy.
3389 Peek at next byte to prevent recursion on repeated prefix bytes.
3390 Ensure uninitialised "mybuf" is not accessed.
3391 (print_insn_z80): Don't zero n_fetch and n_used here,..
3392 (print_insn_z80_buf): ..do it here instead.
3394 2020-01-04 Alan Modra <amodra@gmail.com>
3396 * m32r-ibld.c: Regenerate.
3398 2020-01-04 Alan Modra <amodra@gmail.com>
3400 * cr16-dis.c (cr16_match_opcode): Avoid shift left of signed value.
3402 2020-01-04 Alan Modra <amodra@gmail.com>
3404 * crx-dis.c (match_opcode): Avoid shift left of signed value.
3406 2020-01-04 Alan Modra <amodra@gmail.com>
3408 * d30v-dis.c (print_insn): Avoid signed overflow in left shift.
3410 2020-01-03 Jan Beulich <jbeulich@suse.com>
3412 * aarch64-tbl.h (aarch64_opcode_table): Use
3413 SVE_ADDR_RX_LSL{1,2,3} for LD1RO{H,W,D}.
3415 2020-01-03 Jan Beulich <jbeulich@suse.com>
3417 * aarch64-tbl.h (aarch64_opcode_table): Correct SIMD
3418 forms of SUDOT and USDOT.
3420 2020-01-03 Jan Beulich <jbeulich@suse.com>
3422 * aarch64-tbl.h (aarch64_opcode_table): Drop 'i' from
3424 * aarch64-dis-2.c: Re-generate.
3426 2020-01-03 Jan Beulich <jbeulich@suse.com>
3428 * aarch64-tbl.h (aarch64_opcode_table): Correct 64-bit
3430 * aarch64-dis-2.c: Re-generate.
3432 2020-01-02 Sergey Belyashov <sergey.belyashov@gmail.com>
3434 * z80-dis.c: Add support for eZ80 and Z80 instructions.
3436 2020-01-01 Alan Modra <amodra@gmail.com>
3438 Update year range in copyright notice of all files.
3440 For older changes see ChangeLog-2019
3442 Copyright (C) 2020 Free Software Foundation, Inc.
3444 Copying and distribution of this file, with or without modification,
3445 are permitted in any medium without royalty provided the copyright
3446 notice and this notice are preserved.
3452 version-control: never