aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorJose E. Marchesi <jose.marchesi@oracle.com>2020-01-30 13:59:04 +0100
committerJose E. Marchesi <jose.marchesi@oracle.com>2020-01-30 13:59:04 +0100
commitbd434cc4d94ec3d2f9fc1e7c00c27b074f962bc1 (patch)
treee540d06b08147d050683984b1d5438a4d3af1f42 /opcodes
parentaeab2b26dbea33221db4debaf31c97277cfaea5e (diff)
downloadfsf-binutils-gdb-bd434cc4d94ec3d2f9fc1e7c00c27b074f962bc1.zip
fsf-binutils-gdb-bd434cc4d94ec3d2f9fc1e7c00c27b074f962bc1.tar.gz
fsf-binutils-gdb-bd434cc4d94ec3d2f9fc1e7c00c27b074f962bc1.tar.bz2
cpu,opcodes,gas: fix neg and neg32 instructions in BPF
This patch fixes the neg/neg32 BPF instructions, which have K (=0) instead of X (=1) in their header source bit, despite operating on registes. cpu/ChangeLog: 2020-01-30 Jose E. Marchesi <jose.marchesi@oracle.com> * bpf.cpu (define-alu-insn-un): The unary BPF instructions (neg and neg32) use OP_SRC_K even if they operate only in registers. opcodes/ChangeLog: 2020-01-30 Jose E. Marchesi <jose.marchesi@oracle.com> * bpf-opc.c: Regenerate. gas/ChangeLog: 2020-01-30 Jose E. Marchesi <jose.marchesi@oracle.com> * testsuite/gas/bpf/alu.d: Update expected opcode for `neg'. * testsuite/gas/bpf/alu-be.d: Likewise. * testsuite/gas/bpf/alu32.d: Likewise for `neg32'. * testsuite/gas/bpf/alu32-be.d: Likewise.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog4
-rw-r--r--opcodes/bpf-opc.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 19c2772..13333aa 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2020-01-30 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * bpf-opc.c: Regenerate.
+
2020-01-30 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (X86_64_C2, X86_64_C3): New enumerators.
diff --git a/opcodes/bpf-opc.c b/opcodes/bpf-opc.c
index c728558..d03e8d2 100644
--- a/opcodes/bpf-opc.c
+++ b/opcodes/bpf-opc.c
@@ -452,13 +452,13 @@ static const CGEN_OPCODE bpf_cgen_insn_opcode_table[MAX_INSNS] =
{
{ 0, 0, 0, 0 },
{ { MNEM, ' ', OP (DSTLE), 0 } },
- & ifmt_negle, { 0x8f }
+ & ifmt_negle, { 0x87 }
},
/* neg32 $dstle */
{
{ 0, 0, 0, 0 },
{ { MNEM, ' ', OP (DSTLE), 0 } },
- & ifmt_negle, { 0x8c }
+ & ifmt_negle, { 0x84 }
},
/* add $dstbe,$imm32 */
{
@@ -752,13 +752,13 @@ static const CGEN_OPCODE bpf_cgen_insn_opcode_table[MAX_INSNS] =
{
{ 0, 0, 0, 0 },
{ { MNEM, ' ', OP (DSTBE), 0 } },
- & ifmt_negbe, { 0x8f }
+ & ifmt_negbe, { 0x87 }
},
/* neg32 $dstbe */
{
{ 0, 0, 0, 0 },
{ { MNEM, ' ', OP (DSTBE), 0 } },
- & ifmt_negbe, { 0x8c }
+ & ifmt_negbe, { 0x84 }
},
/* endle $dstle,$endsize */
{