//===- MCInstPrinter.h - MCInst to target assembly syntax -------*- 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_MC_MCINSTPRINTER_H #define LLVM_MC_MCINSTPRINTER_H #include "llvm/Support/Compiler.h" #include "llvm/Support/Format.h" #include <cstdint> namespace llvm { class MCAsmInfo; class MCInst; class MCInstrAnalysis; class MCInstrInfo; class MCOperand; class MCRegister; class MCRegisterInfo; class MCSubtargetInfo; class StringRef; class raw_ostream; /// Convert `Bytes' to a hex string and output to `OS' void dumpBytes(ArrayRef<uint8_t> Bytes, raw_ostream &OS); namespace HexStyle { enum Style { … }; } // end namespace HexStyle struct AliasMatchingData; /// This is an instance of a target assembly language printer that /// converts an MCInst to valid target assembly syntax. class MCInstPrinter { … }; /// Map from opcode to pattern list by binary search. struct PatternsForOpcode { … }; /// Data for each alias pattern. Includes feature bits, string, number of /// operands, and a variadic list of conditions to check. struct AliasPattern { … }; struct AliasPatternCond { … }; /// Tablegenerated data structures needed to match alias patterns. struct AliasMatchingData { … }; } // end namespace llvm #endif // LLVM_MC_MCINSTPRINTER_H