1 //==- HexagonMCExpr.h - Hexagon specific MC expression classes --*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_LIB_TARGET_HEXAGON_HEXAGONMCEXPR_H
11 #define LLVM_LIB_TARGET_HEXAGON_HEXAGONMCEXPR_H
13 #include "llvm/MC/MCExpr.h"
17 class HexagonNoExtendOperand : public MCTargetExpr {
19 static HexagonNoExtendOperand *Create(MCExpr const *Expr, MCContext &Ctx);
20 void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override;
21 bool evaluateAsRelocatableImpl(MCValue &Res, const MCAsmLayout *Layout,
22 const MCFixup *Fixup) const override;
23 void visitUsedExpr(MCStreamer &Streamer) const override;
24 MCFragment *findAssociatedFragment() const override;
25 void fixELFSymbolsInTLSFixups(MCAssembler &Asm) const override;
26 static bool classof(MCExpr const *E);
27 MCExpr const *getExpr() const;
30 HexagonNoExtendOperand(MCExpr const *Expr);
33 } // end namespace llvm
35 #endif // LLVM_LIB_TARGET_HEXAGON_HEXAGONMCEXPR_H