binutils-gdb/include/opcode
Sudakshina Das ff6054520c [PATCH, BINUTILS, AARCH64, 7/9] Add BTI instruction
This patch is part of the patch series to add support for ARMv8.5-A
extensions.
(https://developer.arm.com/products/architecture/cpu-architecture/a-profile/docs/ddi0596/a/a64-base-instructions-alphabetic-order/bti-branch-target-identification)

The Branch Target Identification instructions (BTI) are allocated to
existing HINT space, using HINT numbers 32, 34, 36, 38, such that
bits[7:6] of the instruction identify the compatibility of the BTI
instruction to different branches.

	BTI {<targets>}

where <targets> one of the following, specifying which type of
indirection is allowed:

	j : Can be a target of any BR Xn isntruction.
	c : Can be a target of any BLR Xn and BR {X16|X17}.
	jc: Can be a target of any free branch.

A BTI instruction without any <targets> is the strictest of all and
can not be a target of nay free branch.

*** include/ChangeLog ***

2018-10-09  Sudakshina Das  <sudi.das@arm.com>

	* opcode/aarch64.h (AARCH64_FEATURE_BTI): New.
	(AARCH64_ARCH_V8_5): Add AARCH64_FEATURE_BTI by default.
	(aarch64_opnd): Add AARCH64_OPND_BTI_TARGET.
	(HINT_OPD_CSYNC, HINT_OPD_C, HINT_OPD_J): New macros to
	define HINT #imm values.
	(HINT_OPD_JC, HINT_OPD_NULL): Likewise.

*** opcodes/ChangeLog ***

2018-10-09  Sudakshina Das  <sudi.das@arm.com>

	* aarch64-opc.h (HINT_OPD_NOPRINT, HINT_ENCODE): New.
	(HINT_FLAG, HINT_VALUE): New macros to encode NO_PRINT flag
	with the hint immediate.
	* aarch64-opc.c (aarch64_hint_options): New entries for
	c, j, jc and default (with HINT_OPD_F_NOPRINT flag) for BTI.
	(aarch64_print_operand): Add case for AARCH64_OPND_BTI_TARGET
	while checking for HINT_OPD_F_NOPRINT flag.
	* aarch64-dis.c (aarch64_ext_hint): Use new HINT_VALUE to
	extract value.
	* aarch64-tbl.h (aarch64_feature_bti, BTI, BTI_INSN): New.
	(aarch64_opcode_table): Add entry for BTI.
	(AARCH64_OPERANDS): Add new description for BTI targets.
	* aarch64-asm-2.c: Regenerate.
	* aarch64-dis-2.c: Regenerate.
	* aarch64-opc-2.c: Regenerate.

*** gas/ChangeLog ***

2018-10-09  Sudakshina Das  <sudi.das@arm.com>

	* config/tc-aarch64.c (parse_bti_operand): New.
	(process_omitted_operand): Add case for AARCH64_OPND_BTI_TARGET.
	(parse_operands): Likewise.
	* testsuite/gas/aarch64/system.d: Update for BTI.
	* testsuite/gas/aarch64/bti.s: New.
	* testsuite/gas/aarch64/bti.d: New.
	* testsuite/gas/aarch64/illegal-bti.d: New.
	* testsuite/gas/aarch64/illegal-bti.l: New.
2018-10-09 15:39:35 +01:00
..
aarch64.h [PATCH, BINUTILS, AARCH64, 7/9] Add BTI instruction 2018-10-09 15:39:35 +01:00
alpha.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
arc-attrs.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
arc-func.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
arc.h [ARC] Update handling AUX-registers. 2018-08-06 16:41:32 +03:00
arm.h [Arm, 3/3] Add Execution and Data Prediction instructions for AArch32 2018-10-05 11:31:21 +01:00
avr.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
bfin.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
cgen.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
ChangeLog-0415 binutils ChangeLog rotation 2016-01-01 22:59:17 +10:30
ChangeLog-9103 Add copyright notices 2012-12-10 12:48:03 +00:00
convex.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
cr16.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
cris.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
crx.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
csky.h Add support for the C_SKY series of processors. 2018-07-30 12:24:14 +01:00
d10v.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
d30v.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
dlx.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
ft32.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
h8300.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
hppa.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
i386.h x86: Remove support for old (<= 2.8.1) versions of gcc 2018-03-08 06:31:52 -08:00
ia64.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
m68hc11.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
m68k.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
metag.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
mips.h [MIPS] Add Loongson 2K1000 proccessor support. 2018-08-29 20:55:25 +08:00
mmix.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
mn10200.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
mn10300.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
moxie.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
msp430-decode.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
msp430.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
nds32.h Andes Technology has good news for you, we plan to update the nds32 port of binutils on upstream! 2018-09-20 13:32:58 +01:00
nfp.h Fix error messages in the NFP sources when building for 32-bit targets. 2018-05-15 13:28:06 +01:00
nios2.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
nios2r1.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
nios2r2.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
np1.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
ns32k.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
pdp11.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
pj.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
pn.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
ppc.h Use operand->extract to provide defaults for optional PowerPC operands 2018-08-21 16:05:36 +09:30
pru.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
pyr.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
riscv-opc.h RISC-V: Add fence.tso instruction 2018-10-02 08:26:32 -07:00
riscv.h RISC-V: Allow instruction require more than one extension 2018-08-30 13:23:12 -07:00
rl78.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
rx.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
s12z.h S12Z: Move opcode header to public include directory. 2018-08-18 07:50:03 +02:00
s390.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
score-datadep.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
score-inst.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
sparc.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
spu-insns.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
spu.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic4x.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic6x-control-registers.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic6x-insn-formats.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic6x-opcode-table.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic6x.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic30.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic54x.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tic80.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tilegx.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
tilepro.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
v850.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
vax.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
visium.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
wasm.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
xgate.h Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30