Canonicalize header guards into a common format.
[oota-llvm.git] / lib / Target / Mips / MCTargetDesc / MipsMCExpr.h
index 0ec17554c0bc1921a2601d0557fabb123737ac6e..2b8f0c89a2e68f03b35ecdf5cb2ea0cf0ec6c2d7 100644 (file)
@@ -7,8 +7,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef MIPSMCEXPR_H
-#define MIPSMCEXPR_H
+#ifndef LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCEXPR_H
+#define LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCEXPR_H
 
 #include "llvm/MC/MCAsmLayout.h"
 #include "llvm/MC/MCExpr.h"
@@ -20,8 +20,10 @@ class MipsMCExpr : public MCTargetExpr {
 public:
   enum VariantKind {
     VK_Mips_None,
-    VK_Mips_ABS_LO,
-    VK_Mips_ABS_HI
+    VK_Mips_LO,
+    VK_Mips_HI,
+    VK_Mips_HIGHER,
+    VK_Mips_HIGHEST
   };
 
 private:
@@ -32,16 +34,11 @@ private:
     : Kind(Kind), Expr(Expr) {}
 
 public:
-  static const MipsMCExpr *Create(VariantKind Kind, const MCExpr *Expr,
-                                  MCContext &Ctx);
+  static bool isSupportedBinaryExpr(MCSymbolRefExpr::VariantKind VK,
+                                    const MCBinaryExpr *BE);
 
-  static const MipsMCExpr *CreateLo(const MCExpr *Expr, MCContext &Ctx) {
-    return Create(VK_Mips_ABS_LO, Expr, Ctx);
-  }
-
-  static const MipsMCExpr *CreateHi(const MCExpr *Expr, MCContext &Ctx) {
-    return Create(VK_Mips_ABS_HI, Expr, Ctx);
-  }
+  static const MipsMCExpr *Create(MCSymbolRefExpr::VariantKind VK,
+                                  const MCExpr *Expr, MCContext &Ctx);
 
   /// getOpcode - Get the kind of this expression.
   VariantKind getKind() const { return Kind; }
@@ -49,16 +46,17 @@ public:
   /// getSubExpr - Get the child of this expression.
   const MCExpr *getSubExpr() const { return Expr; }
 
-  void PrintImpl(raw_ostream &OS) const;
+  void PrintImpl(raw_ostream &OS) const override;
   bool EvaluateAsRelocatableImpl(MCValue &Res,
-                                 const MCAsmLayout *Layout) const;
-  void AddValueSymbols(MCAssembler *) const;
-  const MCSection *FindAssociatedSection() const {
+                                 const MCAsmLayout *Layout,
+                                 const MCFixup *Fixup) const override;
+  void visitUsedExpr(MCStreamer &Streamer) const override;
+  const MCSection *FindAssociatedSection() const override {
     return getSubExpr()->FindAssociatedSection();
   }
 
   // There are no TLS MipsMCExprs at the moment.
-  void fixELFSymbolsInTLSFixups(MCAssembler &Asm) const {}
+  void fixELFSymbolsInTLSFixups(MCAssembler &Asm) const override {}
 
   static bool classof(const MCExpr *E) {
     return E->getKind() == MCExpr::Target;