Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h
35294 views
1
//===-- X86InstPrinterCommon.cpp - X86 assembly instruction printing ------===//
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-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file includes code common for rendering MCInst instances as AT&T-style
10
// and Intel-style assembly.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86INSTPRINTERCOMMON_H
15
#define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86INSTPRINTERCOMMON_H
16
17
#include "llvm/MC/MCInstPrinter.h"
18
19
namespace llvm {
20
21
class X86InstPrinterCommon : public MCInstPrinter {
22
public:
23
using MCInstPrinter::MCInstPrinter;
24
25
virtual void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O) = 0;
26
void printCondCode(const MCInst *MI, unsigned Op, raw_ostream &OS);
27
void printCondFlags(const MCInst *MI, unsigned Op, raw_ostream &OS);
28
void printSSEAVXCC(const MCInst *MI, unsigned Op, raw_ostream &OS);
29
void printVPCOMMnemonic(const MCInst *MI, raw_ostream &OS);
30
void printVPCMPMnemonic(const MCInst *MI, raw_ostream &OS);
31
void printCMPMnemonic(const MCInst *MI, bool IsVCmp, raw_ostream &OS);
32
void printRoundingControl(const MCInst *MI, unsigned Op, raw_ostream &O);
33
void printPCRelImm(const MCInst *MI, uint64_t Address, unsigned OpNo,
34
raw_ostream &O);
35
36
protected:
37
void printInstFlags(const MCInst *MI, raw_ostream &O,
38
const MCSubtargetInfo &STI);
39
void printOptionalSegReg(const MCInst *MI, unsigned OpNo, raw_ostream &O);
40
void printVKPair(const MCInst *MI, unsigned OpNo, raw_ostream &OS);
41
};
42
43
} // end namespace llvm
44
45
#endif // LLVM_LIB_TARGET_X86_MCTARGETDESC_X86INSTPRINTERCOMMON_H
46
47