diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index 16efca161f0cda170b3ef18bd784a9b0dbccef14..7d3dde786e660bf9345eeaf34c5775f1269a6240 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -1873,8 +1873,8 @@ std::unique_ptr<X86Operand> X86AsmParser::ParseIntelOperand(StringRef Mnem)
         return X86Operand::CreateMem(getPointerWidth(), SM.getSym(), Start, End,
                                      Size);
 
-      if (Mnem.str().c_str()[0] == 'j') {
-          // JMP/Jxx <immediate> (Keystone)
+      if (Mnem.str() == "call" || Mnem.str().c_str()[0] == 'j') {
+          // CALL/JMP/Jxx <immediate> (Keystone)
           const MCExpr *Disp = MCConstantExpr::create(Imm, Parser.getContext());
           return X86Operand::CreateMem(0, 0, Disp, 0, 0, 1,
                   Start, End, 0);