1//===-- AMDGPUCodeEmitter.h - AMDGPU Code Emitter interface -----------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// CodeEmitter interface for R600 and SI codegen. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef AMDGPUCODEEMITTER_H 15#define AMDGPUCODEEMITTER_H 16 17namespace llvm { 18 19 class AMDGPUCodeEmitter { 20 public: 21 uint64_t getBinaryCodeForInstr(const MachineInstr &MI) const; 22 virtual uint64_t getMachineOpValue(const MachineInstr &MI, 23 const MachineOperand &MO) const { return 0; } 24 virtual unsigned GPR4AlignEncode(const MachineInstr &MI, 25 unsigned OpNo) const { 26 return 0; 27 } 28 virtual unsigned GPR2AlignEncode(const MachineInstr &MI, 29 unsigned OpNo) const { 30 return 0; 31 } 32 virtual uint64_t VOPPostEncode(const MachineInstr &MI, 33 uint64_t Value) const { 34 return Value; 35 } 36 virtual uint64_t i32LiteralEncode(const MachineInstr &MI, 37 unsigned OpNo) const { 38 return 0; 39 } 40 virtual uint32_t SMRDmemriEncode(const MachineInstr &MI, unsigned OpNo) 41 const { 42 return 0; 43 } 44 }; 45 46} // End namespace llvm 47 48#endif // AMDGPUCODEEMITTER_H 49