llvm/llvm/tools/llvm-exegesis/lib/PowerPC/Target.cpp

//===-- Target.cpp ----------------------------------------------*- 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
//
// The PowerPC ExegesisTarget.
//===----------------------------------------------------------------------===//
#include "../Target.h"
#include "PPC.h"
#include "PPCRegisterInfo.h"

#define GET_AVAILABLE_OPCODE_CHECKER
#include "PPCGenInstrInfo.inc"

namespace llvm {
namespace exegesis {

// Helper to fill a memory operand with a value.
static void setMemOp(InstructionTemplate &IT, int OpIdx,
                     const MCOperand &OpVal) {}

#include "PPCGenExegesis.inc"

namespace {
class ExegesisPowerPCTarget : public ExegesisTarget {};
} // end anonymous namespace

static unsigned getLoadImmediateOpcode(unsigned RegBitWidth) {}

// Generates instruction to load an immediate value into a register.
static MCInst loadImmediate(unsigned Reg, unsigned RegBitWidth,
                            const APInt &Value) {}

unsigned
ExegesisPowerPCTarget::getScratchMemoryRegister(const Triple &TT) const {}

void ExegesisPowerPCTarget::fillMemoryOperands(InstructionTemplate &IT,
                                               unsigned Reg,
                                               unsigned Offset) const {}

std::vector<MCInst> ExegesisPowerPCTarget::setRegTo(const MCSubtargetInfo &STI,
                                                    unsigned Reg,
                                                    const APInt &Value) const {}

static ExegesisTarget *getTheExegesisPowerPCTarget() {}

void InitializePowerPCExegesisTarget() {}

} // namespace exegesis
} // namespace llvm