1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//===-- AMDGPUCodeEmitter.h - AMDGPU Code Emitter interface -----------------===// 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// The LLVM Compiler Infrastructure 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// This file is distributed under the University of Illinois Open Source 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// License. See LICENSE.TXT for details. 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//===----------------------------------------------------------------------===// 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// CodeEmitter interface for R600 and SI codegen. 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//===----------------------------------------------------------------------===// 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifndef AMDGPUCODEEMITTER_H 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define AMDGPUCODEEMITTER_H 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "llvm/MC/MCCodeEmitter.h" 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "llvm/Support/raw_ostream.h" 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnamespace llvm { 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org class MCInst; 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org class MCOperand; 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org class AMDGPUMCCodeEmitter : public MCCodeEmitter { 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org public: 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint64_t getBinaryCodeForInstr(const MCInst &MI, 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org SmallVectorImpl<MCFixup> &Fixups) const; 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual uint64_t getMachineOpValue(const MCInst &MI, const MCOperand &MO, 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org SmallVectorImpl<MCFixup> &Fixups) const { 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return 0; 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual unsigned GPR4AlignEncode(const MCInst &MI, unsigned OpNo, 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org SmallVectorImpl<MCFixup> &Fixups) const { 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return 0; 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual unsigned GPR2AlignEncode(const MCInst &MI, unsigned OpNo, 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org SmallVectorImpl<MCFixup> &Fixups) const { 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return 0; 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual uint64_t VOPPostEncode(const MCInst &MI, uint64_t Value) const { 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return Value; 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual uint64_t i32LiteralEncode(const MCInst &MI, unsigned OpNo, 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org SmallVectorImpl<MCFixup> &Fixups) const { 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return 0; 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual uint32_t SMRDmemriEncode(const MCInst &MI, unsigned OpNo, 52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org SmallVectorImpl<MCFixup> &Fixups) const { 53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return 0; 54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }; 56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} // End namespace llvm 58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif // AMDGPUCODEEMITTER_H 60