public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [COMMITTED] bpf: fix neg and neg32 BPF instructions in simulator
@ 2023-07-26  9:46 Jose E. Marchesi
  0 siblings, 0 replies; only message in thread
From: Jose E. Marchesi @ 2023-07-26  9:46 UTC (permalink / raw)
  To: gdb-patches

This patch fixes the semantics of the neg and neg32 BPF instructions
in the simulator, and also updates the corresponding tests
accordingly.

Tested in target bpf-unknown-none.
---
 sim/bpf/bpf-sim.c         | 4 ++--
 sim/testsuite/bpf/alu.s   | 4 ++--
 sim/testsuite/bpf/alu32.s | 6 +++---
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/sim/bpf/bpf-sim.c b/sim/bpf/bpf-sim.c
index 8d3a28e1940..5e01ddeca9f 100644
--- a/sim/bpf/bpf-sim.c
+++ b/sim/bpf/bpf-sim.c
@@ -728,7 +728,7 @@ execute (SIM_CPU *cpu, struct bpf_insn *insn)
       break;
     case BPF_INSN_NEGR:
       BPF_TRACE ("BPF_INSN_NEGR\n");
-      bpf_regs[insn->dst] = - (int64_t) bpf_regs[insn->src];
+      bpf_regs[insn->dst] = - (int64_t) bpf_regs[insn->dst];
       break;
     case BPF_INSN_NEGI:
       BPF_TRACE ("BPF_INSN_NEGI\n");
@@ -865,7 +865,7 @@ execute (SIM_CPU *cpu, struct bpf_insn *insn)
       break;
     case BPF_INSN_NEG32R:
       BPF_TRACE ("BPF_INSN_NEG32R\n");
-      bpf_regs[insn->dst] = (uint32_t) (- (int32_t) bpf_regs[insn->src]);
+      bpf_regs[insn->dst] = (uint32_t) (- (int32_t) bpf_regs[insn->dst]);
       break;
     case BPF_INSN_NEG32I:
       BPF_TRACE ("BPF_INSN_NEG32I\n");
diff --git a/sim/testsuite/bpf/alu.s b/sim/testsuite/bpf/alu.s
index c073f67f819..4dc37b1f01a 100644
--- a/sim/testsuite/bpf/alu.s
+++ b/sim/testsuite/bpf/alu.s
@@ -112,10 +112,10 @@ main:
     fail_ne     %r1, 0
 
     ;; neg
-    neg         %r2, %r2
+    neg         %r2
     fail_ne     %r2, -5
     mov         %r1, -1025
-    neg         %r1, %r1
+    neg         %r1
     fail_ne     %r1, 1025
 
     pass
diff --git a/sim/testsuite/bpf/alu32.s b/sim/testsuite/bpf/alu32.s
index d797122daf1..e8d5062476c 100644
--- a/sim/testsuite/bpf/alu32.s
+++ b/sim/testsuite/bpf/alu32.s
@@ -100,11 +100,11 @@ main:
     ;; neg
     mov32       %r1, -1
     mov32       %r2, 0x7fffffff
-    neg32       %r1, %r1
-    neg32       %r2, %r2
+    neg32       %r1
+    neg32       %r2
     fail_ne32   %r1, 1
     fail_ne     %r2, 0x80000001 ; Note: check for (bad) sign-extend
-    neg32       %r2, %r2
+    neg32       %r2
     fail_ne32   %r2, 0x7fffffff
 
     pass
-- 
2.30.2


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-07-26  9:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-26  9:46 [COMMITTED] bpf: fix neg and neg32 BPF instructions in simulator Jose E. Marchesi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).