mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
172862a2a7
All of these "subreg32" modifier instructions are handled explicitly by the MCInst lowering phase. If they got to the asmprinter, they would explode. They should eventually be replace with correct use of subregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84526 91177308-0d34-0410-b5e6-96231b3b80d8
86 lines
2.4 KiB
C++
86 lines
2.4 KiB
C++
//===-- X86ATTInstPrinter.h - Convert X86 MCInst to assembly syntax -------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This class prints an X86 MCInst to AT&T style .s file syntax.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef X86_ATT_INST_PRINTER_H
|
|
#define X86_ATT_INST_PRINTER_H
|
|
|
|
#include "llvm/MC/MCInstPrinter.h"
|
|
|
|
namespace llvm {
|
|
class MCOperand;
|
|
|
|
class X86ATTInstPrinter : public MCInstPrinter {
|
|
public:
|
|
X86ATTInstPrinter(raw_ostream &O, const MCAsmInfo &MAI)
|
|
: MCInstPrinter(O, MAI) {}
|
|
|
|
|
|
virtual void printInst(const MCInst *MI);
|
|
|
|
// Autogenerated by tblgen.
|
|
void printInstruction(const MCInst *MI);
|
|
static const char *getRegisterName(unsigned RegNo);
|
|
|
|
|
|
void printOperand(const MCInst *MI, unsigned OpNo);
|
|
void printMemReference(const MCInst *MI, unsigned Op);
|
|
void printLeaMemReference(const MCInst *MI, unsigned Op);
|
|
void printSSECC(const MCInst *MI, unsigned Op);
|
|
void print_pcrel_imm(const MCInst *MI, unsigned OpNo);
|
|
|
|
void printopaquemem(const MCInst *MI, unsigned OpNo) {
|
|
printMemReference(MI, OpNo);
|
|
}
|
|
|
|
void printi8mem(const MCInst *MI, unsigned OpNo) {
|
|
printMemReference(MI, OpNo);
|
|
}
|
|
void printi16mem(const MCInst *MI, unsigned OpNo) {
|
|
printMemReference(MI, OpNo);
|
|
}
|
|
void printi32mem(const MCInst *MI, unsigned OpNo) {
|
|
printMemReference(MI, OpNo);
|
|
}
|
|
void printi64mem(const MCInst *MI, unsigned OpNo) {
|
|
printMemReference(MI, OpNo);
|
|
}
|
|
void printi128mem(const MCInst *MI, unsigned OpNo) {
|
|
printMemReference(MI, OpNo);
|
|
}
|
|
void printf32mem(const MCInst *MI, unsigned OpNo) {
|
|
printMemReference(MI, OpNo);
|
|
}
|
|
void printf64mem(const MCInst *MI, unsigned OpNo) {
|
|
printMemReference(MI, OpNo);
|
|
}
|
|
void printf80mem(const MCInst *MI, unsigned OpNo) {
|
|
printMemReference(MI, OpNo);
|
|
}
|
|
void printf128mem(const MCInst *MI, unsigned OpNo) {
|
|
printMemReference(MI, OpNo);
|
|
}
|
|
void printlea32mem(const MCInst *MI, unsigned OpNo) {
|
|
printLeaMemReference(MI, OpNo);
|
|
}
|
|
void printlea64mem(const MCInst *MI, unsigned OpNo) {
|
|
printLeaMemReference(MI, OpNo);
|
|
}
|
|
void printlea64_32mem(const MCInst *MI, unsigned OpNo) {
|
|
printLeaMemReference(MI, OpNo);
|
|
}
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|