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