brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 11c2833 Raw
60 lines · c
1//====-- SystemZMCAsmInfo.h - SystemZ 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#ifndef LLVM_LIB_TARGET_SYSTEMZ_MCTARGETDESC_SYSTEMZMCASMINFO_H10#define LLVM_LIB_TARGET_SYSTEMZ_MCTARGETDESC_SYSTEMZMCASMINFO_H11 12#include "llvm/MC/MCAsmInfoELF.h"13#include "llvm/MC/MCAsmInfoGOFF.h"14#include "llvm/Support/Compiler.h"15 16namespace llvm {17class Triple;18enum SystemZAsmDialect { AD_GNU = 0, AD_HLASM = 1 };19 20class SystemZMCAsmInfoELF : public MCAsmInfoELF {21public:22  explicit SystemZMCAsmInfoELF(const Triple &TT);23};24 25class SystemZMCAsmInfoGOFF : public MCAsmInfoGOFF {26public:27  explicit SystemZMCAsmInfoGOFF(const Triple &TT);28  bool isAcceptableChar(char C) const override;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 SystemZ {36using Specifier = uint16_t;37enum {38  S_None,39 40  S_DTPOFF,41  S_GOT,42  S_GOTENT,43  S_INDNTPOFF,44  S_NTPOFF,45  S_PLT,46  S_TLSGD,47  S_TLSLD,48  S_TLSLDM,49 50  // HLASM docs for address constants:51  // https://www.ibm.com/docs/en/hla-and-tf/1.6?topic=value-address-constants52  S_RCon, // Address of ADA of symbol.53  S_VCon, // Address of external function symbol.54};55} // namespace SystemZ56 57} // end namespace llvm58 59#endif60