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