blob: ea5240a10c9a01775800ef79f1ad7e3706efcb5c [file] [log] [blame]
Anton Korobeynikov32b7d5b2009-07-16 13:27:25 +00001//=-- SystemZ.h - Top-level interface for SystemZ representation -*- C++ -*-==//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file contains the entry points for global functions defined in
11// the LLVM SystemZ backend.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_TARGET_SystemZ_H
16#define LLVM_TARGET_SystemZ_H
17
18#include "llvm/Target/TargetMachine.h"
19
20namespace llvm {
21 class SystemZTargetMachine;
22 class FunctionPass;
Anton Korobeynikov147a9a72009-07-16 14:36:52 +000023 class formatted_raw_ostream;
Anton Korobeynikov32b7d5b2009-07-16 13:27:25 +000024
Anton Korobeynikov9ad3dd52009-07-16 13:52:31 +000025 namespace SystemZCC {
26 // SystemZ specific condition code. These correspond to SYSTEMZ_*_COND in
27 // SystemZInstrInfo.td. They must be kept in synch.
28 enum CondCodes {
Anton Korobeynikove3562ab2009-07-16 14:19:54 +000029 O = 0,
30 H = 1,
31 NLE = 2,
32 L = 3,
33 NHE = 4,
34 LH = 5,
35 NE = 6,
36 E = 7,
37 NLH = 8,
38 HE = 9,
39 NL = 10,
40 LE = 11,
41 NH = 12,
Anton Korobeynikov8a98a4a2009-07-16 14:32:19 +000042 NO = 13,
43 INVALID = -1
Anton Korobeynikov9ad3dd52009-07-16 13:52:31 +000044 };
45 }
46
Anton Korobeynikov32b7d5b2009-07-16 13:27:25 +000047 FunctionPass *createSystemZISelDag(SystemZTargetMachine &TM,
48 CodeGenOpt::Level OptLevel);
Anton Korobeynikov9ad3dd52009-07-16 13:52:31 +000049
Daniel Dunbar0b0441e2009-07-18 23:03:22 +000050 extern Target TheSystemZTarget;
51
Anton Korobeynikov32b7d5b2009-07-16 13:27:25 +000052} // end namespace llvm;
53
54// Defines symbolic names for SystemZ registers.
55// This defines a mapping from register name to register number.
56#include "SystemZGenRegisterNames.inc"
57
58// Defines symbolic names for the SystemZ instructions.
59#include "SystemZGenInstrNames.inc"
60
61#endif