1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//===-- SystemZMCTargetDesc.h - SystemZ target descriptions -----*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
/* Capstone Disassembly Engine */
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
// Maps of asm register numbers to LLVM register numbers, with 0 indicating
// an invalid register. In principle we could use 32-bit and 64-bit register
// classes directly, provided that we relegated the GPR allocation order
// in SystemZRegisterInfo.td to an AltOrder and left the default order
// as %r0-%r15. It seems better to provide the same interface for
// all classes though.
extern const unsigned SystemZMC_GR32Regs;
extern const unsigned SystemZMC_GRH32Regs;
extern const unsigned SystemZMC_GR64Regs;
extern const unsigned SystemZMC_GR128Regs;
extern const unsigned SystemZMC_FP32Regs;
extern const unsigned SystemZMC_FP64Regs;
extern const unsigned SystemZMC_FP128Regs;
extern const unsigned SystemZMC_VR32Regs;
extern const unsigned SystemZMC_VR64Regs;
extern const unsigned SystemZMC_VR128Regs;
extern const unsigned SystemZMC_AR32Regs;
extern const unsigned SystemZMC_CR64Regs;
// Return the 0-based number of the first architectural register that
// contains the given LLVM register. E.g. R1D -> 1.
unsigned ;
// Defines symbolic names for SystemZ registers.
// This defines a mapping from register name to register number.
//#define GET_REGINFO_ENUM
//#include "SystemZGenRegisterInfo.inc"
// Defines symbolic names for the SystemZ instructions.
//#define GET_INSTRINFO_ENUM
//#include "SystemZGenInstrInfo.inc"
//#define GET_SUBTARGETINFO_ENUM
//#include "SystemZGenSubtargetInfo.inc"