1
//===-- X86ATTInstPrinter.h - Convert X86 MCInst to assembly syntax -------===//
3
// The LLVM Compiler Infrastructure
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
8
//===----------------------------------------------------------------------===//
10
// This class prints an X86 MCInst to AT&T style .s file syntax.
12
//===----------------------------------------------------------------------===//
14
#ifndef X86_ATT_INST_PRINTER_H
15
#define X86_ATT_INST_PRINTER_H
17
#include "llvm/MC/MCInstPrinter.h"
22
class X86ATTInstPrinter : public MCInstPrinter {
24
X86ATTInstPrinter(raw_ostream &O, const MCAsmInfo &MAI)
25
: MCInstPrinter(O, MAI) {}
28
virtual void printInst(const MCInst *MI);
29
virtual StringRef getOpcodeName(unsigned Opcode) const;
31
// Autogenerated by tblgen.
32
void printInstruction(const MCInst *MI);
33
static const char *getRegisterName(unsigned RegNo);
34
static const char *getInstructionName(unsigned Opcode);
36
void printOperand(const MCInst *MI, unsigned OpNo);
37
void printMemReference(const MCInst *MI, unsigned Op);
38
void printLeaMemReference(const MCInst *MI, unsigned Op);
39
void printSSECC(const MCInst *MI, unsigned Op);
40
void print_pcrel_imm(const MCInst *MI, unsigned OpNo);
42
void printopaquemem(const MCInst *MI, unsigned OpNo) {
43
printMemReference(MI, OpNo);
46
void printi8mem(const MCInst *MI, unsigned OpNo) {
47
printMemReference(MI, OpNo);
49
void printi16mem(const MCInst *MI, unsigned OpNo) {
50
printMemReference(MI, OpNo);
52
void printi32mem(const MCInst *MI, unsigned OpNo) {
53
printMemReference(MI, OpNo);
55
void printi64mem(const MCInst *MI, unsigned OpNo) {
56
printMemReference(MI, OpNo);
58
void printi128mem(const MCInst *MI, unsigned OpNo) {
59
printMemReference(MI, OpNo);
61
void printf32mem(const MCInst *MI, unsigned OpNo) {
62
printMemReference(MI, OpNo);
64
void printf64mem(const MCInst *MI, unsigned OpNo) {
65
printMemReference(MI, OpNo);
67
void printf80mem(const MCInst *MI, unsigned OpNo) {
68
printMemReference(MI, OpNo);
70
void printf128mem(const MCInst *MI, unsigned OpNo) {
71
printMemReference(MI, OpNo);
73
void printlea32mem(const MCInst *MI, unsigned OpNo) {
74
printLeaMemReference(MI, OpNo);
76
void printlea64mem(const MCInst *MI, unsigned OpNo) {
77
printLeaMemReference(MI, OpNo);
79
void printlea64_32mem(const MCInst *MI, unsigned OpNo) {
80
printLeaMemReference(MI, OpNo);