Browse Source

sim: bpf: remove negi, neg32i insns

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.
gdb-14-branch
David Faust 3 years ago
parent
commit
3f3175554f
  1. 8
      sim/bpf/bpf-sim.c

8
sim/bpf/bpf-sim.c

@ -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];

Loading…
Cancel
Save