Intel syntax: Do not unncessarily create plus expression for memory operand displacement.
authorDevang Patel <dpatel@apple.com>
Tue, 17 Jan 2012 19:08:07 +0000 (19:08 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 17 Jan 2012 19:08:07 +0000 (19:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148321 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/AsmParser/X86AsmParser.cpp
test/MC/X86/intel-syntax.s

index d974069b826462ae2254b490c9fe2e7627724e8b..c3f6563d199a3e42d320f7aad47ad655edac3368 100644 (file)
@@ -634,8 +634,7 @@ X86Operand *X86AsmParser::ParseIntelBracExpression(unsigned Size) {
        Scale = Val;
       } else if (getLexer().is(AsmToken::RBrac)) {
        const MCExpr *ValExpr = MCConstantExpr::Create(Val, getContext());
-       Disp = isPlus ? MCUnaryExpr::CreatePlus(ValExpr, getContext()) :
-         MCUnaryExpr::CreateMinus(ValExpr, getContext());
+       Disp = isPlus ? ValExpr : MCUnaryExpr::CreateMinus(ValExpr, getContext());
       } else
        return ErrorOperand(PlusLoc, "unexpected token after +");
     }
index 2a54b320c5b2d69bedc8fba21bc12cc5f4b96f38..2966dd7822d5c67ffbda1f11391e6109cd17dfed 100644 (file)
@@ -7,6 +7,8 @@ _test:
 _main:
 // CHECK:      movl    $257, -4(%rsp)
        mov     DWORD PTR [RSP - 4], 257
+// CHECK:      movl    $258, 4(%rsp)
+       mov     DWORD PTR [RSP + 4], 258
 // CHECK:      movq    $123, -16(%rsp)
        mov     QWORD PTR [RSP - 16], 123
 // CHECK:      movb    $97, -17(%rsp)