Expr = MCBinaryExpr::CreateSub(Expr, MCSymbolRefExpr::Create(NegatedSymbol,
OutContext),
OutContext);
- Expr = MCBinaryExpr::CreateAdd(Expr, MCConstantExpr::Create(MO.getOffset(),
- OutContext),
- OutContext);
+ if (MO.getOffset())
+ Expr = MCBinaryExpr::CreateAdd(Expr, MCConstantExpr::Create(MO.getOffset(),
+ OutContext),
+ OutContext);
return MCOperand::CreateExpr(Expr);
}
MCSymbol *Sym = OutContext.GetOrCreateSymbol(Name);
// FIXME: We would like an efficient form for this, so we don't have to do a
// lot of extra uniquing.
- const MCExpr *Expr =
- MCBinaryExpr::CreateAdd(MCSymbolRefExpr::Create(Sym, OutContext),
- MCConstantExpr::Create(MO.getOffset(),OutContext),
- OutContext);
+ const MCExpr *Expr = MCSymbolRefExpr::Create(Sym, OutContext);
+ if (MO.getOffset())
+ Expr = MCBinaryExpr::CreateAdd(Expr,
+ MCConstantExpr::Create(MO.getOffset(),
+ OutContext),
+ OutContext);
return MCOperand::CreateExpr(Expr);
}