X86: Fix encoding for TEST{8,16,32}rr.
authorDaniel Dunbar <daniel@zuster.org>
Mon, 8 Mar 2010 21:10:36 +0000 (21:10 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Mon, 8 Mar 2010 21:10:36 +0000 (21:10 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97982 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrInfo.td
test/MC/AsmParser/X86/x86_32-new-encoder.s

index 4fff9347451c197df3e6826d6e802a4fe232d258..52aa8082d6748fc001b174bbe8c4bd1bb63bdbb9 100644 (file)
@@ -3135,16 +3135,16 @@ def IMUL32rmi8 : Ii8<0x6B, MRMSrcMem,                       // GR32 = [mem32]*I8
 //
 let Defs = [EFLAGS] in {
 let isCommutable = 1 in {   // TEST X, Y   --> TEST Y, X
-def TEST8rr  : I<0x84, MRMDestReg, (outs),  (ins GR8:$src1, GR8:$src2),
+def TEST8rr  : I<0x84, MRMSrcReg, (outs),  (ins GR8:$src1, GR8:$src2),
                      "test{b}\t{$src2, $src1|$src1, $src2}",
                      [(X86cmp (and_su GR8:$src1, GR8:$src2), 0),
                       (implicit EFLAGS)]>;
-def TEST16rr : I<0x85, MRMDestReg, (outs),  (ins GR16:$src1, GR16:$src2),
+def TEST16rr : I<0x85, MRMSrcReg, (outs),  (ins GR16:$src1, GR16:$src2),
                      "test{w}\t{$src2, $src1|$src1, $src2}",
                      [(X86cmp (and_su GR16:$src1, GR16:$src2), 0),
                       (implicit EFLAGS)]>,
                  OpSize;
-def TEST32rr : I<0x85, MRMDestReg, (outs),  (ins GR32:$src1, GR32:$src2),
+def TEST32rr : I<0x85, MRMSrcReg, (outs),  (ins GR32:$src1, GR32:$src2),
                      "test{l}\t{$src2, $src1|$src1, $src2}",
                      [(X86cmp (and_su GR32:$src1, GR32:$src2), 0),
                       (implicit EFLAGS)]>;
index 6fd0cbb9164542f996b7a195c99efc6f106d9b84..ffda3b2d141cbf5aca1f960ca668bdab63eac509 100644 (file)
@@ -38,4 +38,6 @@ rdtscp
        movl    %eax, 16(%ebp)
 // CHECK: movl %eax, -16(%ebp)          # encoding: [0x89,0x45,0xf0]
        movl    %eax, -16(%ebp)
-        
+
+// CHECK: testb        %bl, %cl                # encoding: [0x84,0xcb]
+        testb %bl, %cl