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.orgnamespace llvm { 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org class AMDGPUCodeEmitter { 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org public: 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint64_t getBinaryCodeForInstr(const MachineInstr &MI) const; 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual uint64_t getMachineOpValue(const MachineInstr &MI, 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const MachineOperand &MO) const { return 0; } 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual unsigned GPR4AlignEncode(const MachineInstr &MI, 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned OpNo) const { 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return 0; 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual unsigned GPR2AlignEncode(const MachineInstr &MI, 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned OpNo) const { 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return 0; 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual uint64_t VOPPostEncode(const MachineInstr &MI, 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint64_t Value) const { 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return Value; 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual uint64_t i32LiteralEncode(const MachineInstr &MI, 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned OpNo) const { 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return 0; 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org virtual uint32_t SMRDmemriEncode(const MachineInstr &MI, unsigned OpNo) 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const { 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return 0; 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }; 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} // End namespace llvm 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif // AMDGPUCODEEMITTER_H 49