brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · d66c023 Raw
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