61 lines · c
1//===- VEMCAsmInfo.h - VE asm properties -----------------------*- C++ -*--===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file contains the declaration of the VEMCAsmInfo class.10//11//===----------------------------------------------------------------------===//12 13#ifndef LLVM_LIB_TARGET_VE_MCTARGETDESC_VEMCASMINFO_H14#define LLVM_LIB_TARGET_VE_MCTARGETDESC_VEMCASMINFO_H15 16#include "VEFixupKinds.h"17#include "llvm/MC/MCAsmInfoELF.h"18#include "llvm/MC/MCExpr.h"19 20namespace llvm {21 22class Triple;23 24class VEELFMCAsmInfo : public MCAsmInfoELF {25 void anchor() override;26 27public:28 explicit VEELFMCAsmInfo(const Triple &TheTriple);29 void printSpecifierExpr(raw_ostream &OS,30 const MCSpecifierExpr &Expr) const override;31 bool evaluateAsRelocatableImpl(const MCSpecifierExpr &Expr, MCValue &Res,32 const MCAssembler *Asm) const override;33};34 35namespace VE {36enum Specifier {37 S_None,38 39 S_REFLONG = MCSymbolRefExpr::FirstTargetSpecifier,40 S_HI32, // @hi41 S_LO32, // @lo42 S_PC_HI32, // @pc_hi43 S_PC_LO32, // @pc_lo44 S_GOT_HI32, // @got_hi45 S_GOT_LO32, // @got_lo46 S_GOTOFF_HI32, // @gotoff_hi47 S_GOTOFF_LO32, // @gotoff_lo48 S_PLT_HI32, // @plt_hi49 S_PLT_LO32, // @plt_lo50 S_TLS_GD_HI32, // @tls_gd_hi51 S_TLS_GD_LO32, // @tls_gd_lo52 S_TPOFF_HI32, // @tpoff_hi53 S_TPOFF_LO32, // @tpoff_lo54};55 56VE::Fixups getFixupKind(uint8_t S);57} // namespace VE58} // namespace llvm59 60#endif // LLVM_LIB_TARGET_VE_MCTARGETDESC_VEMCASMINFO_H61