bpf: fix an insn encoding issue for neg insn
authorYonghong Song <yhs@fb.com>
Wed, 4 Oct 2017 16:11:52 +0000 (16:11 +0000)
committerYonghong Song <yhs@fb.com>
Wed, 4 Oct 2017 16:11:52 +0000 (16:11 +0000)
Signed-off-by: Yonghong Song <yhs@fb.com>
llvm-svn: 314911

llvm/lib/Target/BPF/BPFInstrInfo.td
llvm/test/MC/BPF/insn-unit-32.s
llvm/test/MC/BPF/insn-unit.s

index 7d4b03d..fcd6a60 100644 (file)
@@ -238,9 +238,7 @@ class NEG_RR<BPFOpClass Class, BPFArithOp Opc,
              dag outs, dag ins, string asmstr, list<dag> pattern>
     : TYPE_ALU_JMP<Opc.Value, 0, outs, ins, asmstr, pattern> {
   bits<4> dst;
-  bits<4> src;
 
-  let Inst{55-52} = src;
   let Inst{51-48} = dst;
   let BPFClass = Class;
 }
index e5911f0..6890b26 100644 (file)
@@ -7,7 +7,7 @@
   w1 -= w2    // BPF_SUB  | BPF_X
   w2 *= w3    // BPF_MUL  | BPF_X
   w3 /= w4    // BPF_DIV  | BPF_X
-// CHECK: 84 11 00 00 00 00 00 00      w1 = -w1
+// CHECK: 84 01 00 00 00 00 00 00      w1 = -w1
 // CHECK: 0c 10 00 00 00 00 00 00      w0 += w1
 // CHECK: 1c 21 00 00 00 00 00 00      w1 -= w2
 // CHECK: 2c 32 00 00 00 00 00 00      w2 *= w3
index 68b6462..a750fac 100644 (file)
 // CHECK: 3f 43 00 00 00 00 00 00      r3 /= r4
 
 Llabel0 :
-  r0 = -r0    // BPF_NEG
+  r2 = -r2    // BPF_NEG
   r4 |= r5    // BPF_OR   | BPF_X
   r5 &= r6    // BPF_AND  | BPF_X
   r6 <<= r7   // BPF_LSH  | BPF_X
@@ -127,7 +127,7 @@ Llabel0 :
   r9 = r10    // BPF_MOV  | BPF_X
   r10 s>>= r0 // BPF_ARSH | BPF_X
 // CHECK:Llabel0:
-// CHECK: 87 00 00 00 00 00 00 00      r0 = -r0
+// CHECK: 87 02 00 00 00 00 00 00      r2 = -r2
 // CHECK: 4f 54 00 00 00 00 00 00      r4 |= r5
 // CHECK: 5f 65 00 00 00 00 00 00      r5 &= r6
 // CHECK: 6f 76 00 00 00 00 00 00      r6 <<= r7