1 //===-- AMDGPUCodeEmitter.h - AMDGPU Code Emitter interface -----------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // CodeEmitter interface for R600 and SI codegen.
12 //===----------------------------------------------------------------------===//
14 #ifndef AMDGPUCODEEMITTER_H
15 #define AMDGPUCODEEMITTER_H
19 class AMDGPUCodeEmitter
{
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 {
28 virtual unsigned GPR2AlignEncode(const MachineInstr
&MI
,
29 unsigned OpNo
) const {
32 virtual uint64_t VOPPostEncode(const MachineInstr
&MI
,
33 uint64_t Value
) const {
36 virtual uint64_t i32LiteralEncode(const MachineInstr
&MI
,
37 unsigned OpNo
) const {
40 virtual uint32_t SMRDmemriEncode(const MachineInstr
&MI
, unsigned OpNo
)
46 } // End namespace llvm
48 #endif // AMDGPUCODEEMITTER_H