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