1 //===- X86MCTargetExpr.h - X86 Target Specific MCExpr -----------*- 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 X86_MCTARGETEXPR_H
11 #define X86_MCTARGETEXPR_H
13 #include "llvm/MC/MCExpr.h"
17 /// X86MCTargetExpr - This class represents symbol variants, like foo@GOT.
18 class X86MCTargetExpr : public MCTargetExpr {
33 /// Sym - The symbol being referenced.
34 const MCSymbol * const Sym;
35 /// Kind - The modifier.
36 const VariantKind Kind;
38 X86MCTargetExpr(const MCSymbol *S, VariantKind K) : Sym(S), Kind(K) {}
40 static X86MCTargetExpr *Create(const MCSymbol *Sym, VariantKind K,
43 void PrintImpl(raw_ostream &OS) const;
44 bool EvaluateAsRelocatableImpl(MCValue &Res, const MCAsmLayout *Layout) const;
47 } // end namespace llvm