X86Disassembler - fixed a bug in immediate print
authorElena Demikhovsky <elena.demikhovsky@intel.com>
Wed, 23 Apr 2014 07:21:04 +0000 (07:21 +0000)
committerElena Demikhovsky <elena.demikhovsky@intel.com>
Wed, 23 Apr 2014 07:21:04 +0000 (07:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206953 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/Disassembler/X86Disassembler.cpp
test/MC/Disassembler/X86/prefixes.txt

index a3b1e9f2b9bf6d194da8f688f39bc9fc36c5550d..c9426fb1a2fb772a523e7d11663a86d34cc598b0 100644 (file)
@@ -319,7 +319,7 @@ static void translateImmediate(MCInst &mcInst, uint64_t immediate,
   }
   // By default sign-extend all X86 immediates based on their encoding.
   else if (type == TYPE_IMM8 || type == TYPE_IMM16 || type == TYPE_IMM32 ||
-           type == TYPE_IMM64) {
+           type == TYPE_IMM64 || type == TYPE_IMMv) {
     uint32_t Opcode = mcInst.getOpcode();
     switch (operand.encoding) {
     default:
index 56596e3875112ec0c9cc6d2a29ad7585f7d201e3..b8830dc3f3b98ffaade8930f09b8c95bfd0ea5f6 100644 (file)
 # CHECK-NEXT:  nop
 0xf0 0x90
 
+# Test that immediate is printed correctly within opsize prefix
+# CHECK: addw    $-12, %ax
+0x66,0x83,0xc0,0xf4
+
 # Test that multiple redundant prefixes work (redundant, but valid x86).
 # CHECK: rep
 # CHECK-NEXT: rep