//===-- CSKYMCAsmInfo.h - CSKY Asm Info ------------------------*- C++ -*--===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file contains the declaration of the CSKYMCAsmInfo class. // //===----------------------------------------------------------------------===// #ifndef LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYMCASMINFO_H #define LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYMCASMINFO_H #include "llvm/MC/MCAsmInfoELF.h" #include "llvm/MC/MCExpr.h" #include "llvm/MC/MCValue.h" namespace llvm { class Triple; class CSKYMCAsmInfo : public MCAsmInfoELF { void anchor() override; public: explicit CSKYMCAsmInfo(const Triple &TargetTriple); void printSpecifierExpr(raw_ostream &OS, const MCSpecifierExpr &Expr) const override; }; namespace CSKY { using Specifier = uint8_t; enum { S_None, S_ADDR, S_ADDR_HI16, S_ADDR_LO16, S_PCREL, S_GOT, S_GOT_IMM18_BY4, S_GOTPC, S_GOTOFF, S_PLT, S_PLT_IMM18_BY4, S_TLSIE, S_TLSLE, S_TLSGD, S_TLSLDO, S_TLSLDM, S_TPOFF, S_Invalid }; } // namespace CSKY } // namespace llvm #endif // LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYMCASMINFO_H