136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines//===-- AMDGPUCodeEmitter.h - AMDGPU Code Emitter interface -----*- C++ -*-===// 2f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 3f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// The LLVM Compiler Infrastructure 4f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 5f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// This file is distributed under the University of Illinois Open Source 6f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// License. See LICENSE.TXT for details. 7f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 8f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard//===----------------------------------------------------------------------===// 9f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 10f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard/// \file 11f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard/// \brief CodeEmitter interface for R600 and SI codegen. 12f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 13f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard//===----------------------------------------------------------------------===// 14f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 1537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines#ifndef LLVM_LIB_TARGET_R600_MCTARGETDESC_AMDGPUMCCODEEMITTER_H 1637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines#define LLVM_LIB_TARGET_R600_MCTARGETDESC_AMDGPUMCCODEEMITTER_H 17f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 18f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#include "llvm/MC/MCCodeEmitter.h" 19f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#include "llvm/Support/raw_ostream.h" 20f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 21f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardnamespace llvm { 22f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 23f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardclass MCInst; 24f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardclass MCOperand; 2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass MCSubtargetInfo; 26f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 27f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardclass AMDGPUMCCodeEmitter : public MCCodeEmitter { 28354362524a72b3fa43a6c09380b7ae3b2380cbbaJuergen Ributzka virtual void anchor(); 29f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardpublic: 30f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 31f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard uint64_t getBinaryCodeForInstr(const MCInst &MI, 3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines SmallVectorImpl<MCFixup> &Fixups, 3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCSubtargetInfo &STI) const; 34f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 35f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard virtual uint64_t getMachineOpValue(const MCInst &MI, const MCOperand &MO, 3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines SmallVectorImpl<MCFixup> &Fixups, 3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCSubtargetInfo &STI) const { 38f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard return 0; 39f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard } 4037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 4137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines virtual unsigned getSOPPBrEncoding(const MCInst &MI, unsigned OpNo, 4237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines SmallVectorImpl<MCFixup> &Fixups, 4337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines const MCSubtargetInfo &STI) const { 4437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines return 0; 4537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines } 46f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard}; 47f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 48f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard} // End namespace llvm 49f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 5037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines#endif 51