Files
clang-p2996/llvm/lib/Target/SystemZ/SystemZMCInstLower.h
Fangrui Song b19b6d9fab Move SystemZ-specific MCSymbolRefExpr::VariantKind to SystemZMCExpr::Specifier
Similar to previous migration done for other targets (PowerPC, X86, ARM,
etc). Switch from the confusing VariantKind to Specifier, which aligns
with Arm and IBM AIX's documentation.

In addition, rename *MCExpr::getKind, which confusingly shadows the base class getKind.

In the future, relocation specifiers should be encoded as part of
SystemZMCExpr instead of MCSymbolRefExpr.
2025-03-22 18:05:40 -07:00

44 lines
1.3 KiB
C++

//===-- SystemZMCInstLower.h - Lower MachineInstr to MCInst ----*- 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
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZMCINSTLOWER_H
#define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZMCINSTLOWER_H
#include "MCTargetDesc/SystemZMCExpr.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/DataTypes.h"
namespace llvm {
class MCInst;
class MCOperand;
class MachineInstr;
class MachineOperand;
class SystemZAsmPrinter;
class LLVM_LIBRARY_VISIBILITY SystemZMCInstLower {
MCContext &Ctx;
SystemZAsmPrinter &AsmPrinter;
public:
SystemZMCInstLower(MCContext &ctx, SystemZAsmPrinter &asmPrinter);
// Lower MachineInstr MI to MCInst OutMI.
void lower(const MachineInstr *MI, MCInst &OutMI) const;
// Return an MCOperand for MO.
MCOperand lowerOperand(const MachineOperand& MO) const;
// Return an MCExpr for symbolic operand MO with variant kind Kind.
const MCExpr *getExpr(const MachineOperand &MO,
SystemZMCExpr::Specifier) const;
};
} // end namespace llvm
#endif