[PowerPC VLE] Add LSP (Lightweight Signal Processing) instruction support

include/
	* opcode/ppc.h (PPC_OPCODE_LSP): New define.
opcodes/
	* ppc-opc.c (insert_evuimm2_ex0): New function.
	(extract_evuimm2_ex0): Likewise.
	(insert_evuimm4_ex0): Likewise.
	(extract_evuimm4_ex0): Likewise.
	(insert_evuimm8_ex0): Likewise.
	(extract_evuimm8_ex0): Likewise.
	(insert_evuimm_lt16): Likewise.
	(extract_evuimm_lt16): Likewise.
	(insert_rD_rS_even): Likewise.
	(extract_rD_rS_even): Likewise.
	(insert_off_lsp): Likewise.
	(extract_off_lsp): Likewise.
	(RD_EVEN): New operand.
	(RS_EVEN): Likewise.
	(RSQ): Adjust.
	(EVUIMM_LT16): New operand.
	(HTM_SI): Adjust.
	(EVUIMM_2_EX0): New operand.
	(EVUIMM_4): Adjust.
	(EVUIMM_4_EX0): New operand.
	(EVUIMM_8): Adjust.
	(EVUIMM_8_EX0): New operand.
	(WS): Adjust.
	(VX_OFF): New operand.
	(VX_LSP): New macro.
	(VX_LSP_MASK): Likewise.
	(VX_LSP_OFF_MASK): Likewise.
	(PPC_OPCODE_LSP): Likewise.
	(vle_opcodes): Add LSP opcodes.
	* ppc-dis.c (ppc_mopt): Add PPC_OPCODE_LSP flag to "vle" entry.
gas/
	* testsuite/gas/ppc/lsp-checks.d,
	* testsuite/gas/ppc/lsp-checks.l,
	* testsuite/gas/ppc/lsp-checks.s: New test.
	* testsuite/gas/ppc/lsp.d,
	* testsuite/gas/ppc/lsp.s: New test.
	* testsuite/gas/ppc/ppc.exp: Run new tests.
This commit is contained in:
Alexander Fedotov 2017-08-21 15:45:59 +03:00 committed by Alan Modra
parent bf223d3e80
commit e3c2f928b8
12 changed files with 2531 additions and 6 deletions

View file

@ -215,6 +215,9 @@ extern const int vle_num_opcodes;
the underlying machine instruction. */
#define PPC_OPCODE_RAW 0x40000000000ull
/* Opcode is supported by PowerPC LSP */
#define PPC_OPCODE_LSP 0x80000000000ull
/* A macro to extract the major opcode from an instruction. */
#define PPC_OP(i) (((i) >> 26) & 0x3f)