blob: a74cc6d25e8d7c8001da1652e4ec52bcdaa8642e [file] [log] [blame]
//===-- 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 <>, 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 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[16];
extern const unsigned SystemZMC_GRH32Regs[16];
extern const unsigned SystemZMC_GR64Regs[16];
extern const unsigned SystemZMC_GR128Regs[16];
extern const unsigned SystemZMC_FP32Regs[16];
extern const unsigned SystemZMC_FP64Regs[16];
extern const unsigned SystemZMC_FP128Regs[16];
// Return the 0-based number of the first architectural register that
// contains the given LLVM register. E.g. R1D -> 1.
unsigned SystemZMC_getFirstReg(unsigned Reg);
// Defines symbolic names for SystemZ registers.
// This defines a mapping from register name to register number.
//#include ""
// Defines symbolic names for the SystemZ instructions.
//#include ""
//#include ""