| Index: src/IceRegList.h
|
| diff --git a/src/IceRegList.h b/src/IceRegList.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4b21044212621ffb45d44730cafd020d5139cde0
|
| --- /dev/null
|
| +++ b/src/IceRegList.h
|
| @@ -0,0 +1,35 @@
|
| +//===- subzero/src/IceRegList.h - Register list macro defs -----*- C++ -*-===//
|
| +//
|
| +// The Subzero Code Generator
|
| +//
|
| +// This file is distributed under the University of Illinois Open Source
|
| +// License. See LICENSE.TXT for details.
|
| +//
|
| +//===----------------------------------------------------------------------===//
|
| +//
|
| +// This file defines the REGLIST*() macros used in the IceInst*.def files.
|
| +//
|
| +//===----------------------------------------------------------------------===//
|
| +
|
| +#ifndef SUBZERO_SRC_ICEINSTREGLIST_H
|
| +#define SUBZERO_SRC_ICEINSTREGLIST_H
|
| +
|
| +// REGLISTn is a family of macros that we use to define register aliasing. "n"
|
| +// indicates how many register aliases are being provided to the macro. It
|
| +// assumes the parameters are register names declared in the "ns"
|
| +// namespace/class, but with the common "Reg_" prefix removed for brevity.
|
| +#define REGLIST1(ns, r0) \
|
| + { ns::Reg_##r0 }
|
| +#define REGLIST2(ns, r0, r1) \
|
| + { ns::Reg_##r0, ns::Reg_##r1 }
|
| +#define REGLIST3(ns, r0, r1, r2) \
|
| + { ns::Reg_##r0, ns::Reg_##r1, ns::Reg_##r2 }
|
| +#define REGLIST4(ns, r0, r1, r2, r3) \
|
| + { ns::Reg_##r0, ns::Reg_##r1, ns::Reg_##r2, ns::Reg_##r3 }
|
| +#define REGLIST6(ns, r0, r1, r2, r3, r4, r5) \
|
| + { \
|
| + ns::Reg_##r0, ns::Reg_##r1, ns::Reg_##r2, ns::Reg_##r3, ns::Reg_##r4, \
|
| + ns::Reg_##r5 \
|
| + }
|
| +
|
| +#endif // SUBZERO_SRC_ICEINSTREGLIST_H
|
|
|