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