sim: bpf: remove negi, neg32i insns
authorDavid Faust <david.faust@oracle.com>
Mon, 21 Aug 2023 16:36:36 +0000 (09:36 -0700)
committerDavid Faust <david.faust@oracle.com>
Mon, 21 Aug 2023 17:07:25 +0000 (10:07 -0700)
The BPF virtual machine does not support neg instructions operating on
immediates, and these erroneous instructions were recently removed from
gas.  Remove them from the simulator as well.

sim/bpf/bpf-sim.c

index 5e01ddeca9fa0642f6ef0b6f96f037e50beb784c..a4af22b2308bfc272e09848a4b17350face0a36f 100644 (file)
@@ -730,10 +730,6 @@ execute (SIM_CPU *cpu, struct bpf_insn *insn)
       BPF_TRACE ("BPF_INSN_NEGR\n");
       bpf_regs[insn->dst] = - (int64_t) bpf_regs[insn->dst];
       break;
-    case BPF_INSN_NEGI:
-      BPF_TRACE ("BPF_INSN_NEGI\n");
-      bpf_regs[insn->dst] = - (int64_t) insn->imm32;
-      break;
     case BPF_INSN_LSHR:
       BPF_TRACE ("BPF_INSN_LSHR\n");
       bpf_regs[insn->dst] <<= bpf_regs[insn->src];
@@ -867,10 +863,6 @@ execute (SIM_CPU *cpu, struct bpf_insn *insn)
       BPF_TRACE ("BPF_INSN_NEG32R\n");
       bpf_regs[insn->dst] = (uint32_t) (- (int32_t) bpf_regs[insn->dst]);
       break;
-    case BPF_INSN_NEG32I:
-      BPF_TRACE ("BPF_INSN_NEG32I\n");
-      bpf_regs[insn->dst] = (uint32_t) - (int32_t) insn->imm32;
-      break;
     case BPF_INSN_LSH32R:
       BPF_TRACE ("BPF_INSN_LSH32R\n");
       bpf_regs[insn->dst] = (uint32_t) bpf_regs[insn->dst] << bpf_regs[insn->src];