58 lines · c
1//===-- CSKYMCAsmInfo.h - CSKY Asm Info ------------------------*- 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 CSKYMCAsmInfo class.10//11//===----------------------------------------------------------------------===//12 13#ifndef LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYMCASMINFO_H14#define LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYMCASMINFO_H15 16#include "llvm/MC/MCAsmInfoELF.h"17#include "llvm/MC/MCExpr.h"18#include "llvm/MC/MCValue.h"19 20namespace llvm {21class Triple;22 23class CSKYMCAsmInfo : public MCAsmInfoELF {24 void anchor() override;25 26public:27 explicit CSKYMCAsmInfo(const Triple &TargetTriple);28 void printSpecifierExpr(raw_ostream &OS,29 const MCSpecifierExpr &Expr) const override;30};31 32namespace CSKY {33using Specifier = uint8_t;34enum {35 S_None,36 S_ADDR,37 S_ADDR_HI16,38 S_ADDR_LO16,39 S_PCREL,40 S_GOT,41 S_GOT_IMM18_BY4,42 S_GOTPC,43 S_GOTOFF,44 S_PLT,45 S_PLT_IMM18_BY4,46 S_TLSIE,47 S_TLSLE,48 S_TLSGD,49 S_TLSLDO,50 S_TLSLDM,51 S_TPOFF,52 S_Invalid53};54} // namespace CSKY55} // namespace llvm56 57#endif // LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYMCASMINFO_H58