#include "MCTargetDesc/HexagonBaseInfo.h"
#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "MCTargetDesc/HexagonMCShuffler.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstdint>
usingnamespacellvm;
usingnamespaceHexagon;
#define DEBUG_TYPE …
enum OpcodeIndex { … };
static const unsigned tstBitOpcode[8] = …;
static const unsigned cmpeqBitOpcode[8] = …;
static const unsigned cmpgtBitOpcode[8] = …;
static const unsigned cmpgtuBitOpcode[8] = …;
static const unsigned cmpeqiBitOpcode[8] = …;
static const unsigned cmpgtiBitOpcode[8] = …;
static const unsigned cmpgtuiBitOpcode[8] = …;
static const unsigned cmpeqn1BitOpcode[8] = …;
static const unsigned cmpgtn1BitOpcode[8] = …;
static unsigned getCompoundCandidateGroup(MCInst const &MI, bool IsExtended) { … }
static unsigned getCompoundOp(MCInst const &HMCI) { … }
static MCInst *getCompoundInsn(MCContext &Context, MCInst const &L,
MCInst const &R) { … }
static bool isOrderedCompoundPair(MCInst const &MIa, bool IsExtendedA,
MCInst const &MIb, bool IsExtendedB) { … }
static bool lookForCompound(MCInstrInfo const &MCII, MCContext &Context,
MCInst &MCI) { … }
void HexagonMCInstrInfo::tryCompound(MCInstrInfo const &MCII, MCSubtargetInfo const &STI,
MCContext &Context, MCInst &MCI) { … }