Jim Stichnoth | 5bff61c | 2015-10-28 09:26:00 -0700 | [diff] [blame] | 1 | //===- subzero/src/IceRegList.h - Register list macro defs -----*- C++ -*-===// |
| 2 | // |
| 3 | // The Subzero Code Generator |
| 4 | // |
| 5 | // This file is distributed under the University of Illinois Open Source |
| 6 | // License. See LICENSE.TXT for details. |
| 7 | // |
| 8 | //===----------------------------------------------------------------------===// |
| 9 | // |
Jim Stichnoth | 92a6e5b | 2015-12-02 16:52:44 -0800 | [diff] [blame] | 10 | /// \file |
| 11 | /// \brief Defines the REGLIST*() macros used in the IceInst*.def files. |
| 12 | /// |
Jim Stichnoth | 5bff61c | 2015-10-28 09:26:00 -0700 | [diff] [blame] | 13 | //===----------------------------------------------------------------------===// |
| 14 | |
| 15 | #ifndef SUBZERO_SRC_ICEINSTREGLIST_H |
| 16 | #define SUBZERO_SRC_ICEINSTREGLIST_H |
| 17 | |
| 18 | // REGLISTn is a family of macros that we use to define register aliasing. "n" |
| 19 | // indicates how many register aliases are being provided to the macro. It |
| 20 | // assumes the parameters are register names declared in the "ns" |
| 21 | // namespace/class, but with the common "Reg_" prefix removed for brevity. |
| 22 | #define REGLIST1(ns, r0) \ |
| 23 | { ns::Reg_##r0 } |
| 24 | #define REGLIST2(ns, r0, r1) \ |
| 25 | { ns::Reg_##r0, ns::Reg_##r1 } |
| 26 | #define REGLIST3(ns, r0, r1, r2) \ |
| 27 | { ns::Reg_##r0, ns::Reg_##r1, ns::Reg_##r2 } |
| 28 | #define REGLIST4(ns, r0, r1, r2, r3) \ |
| 29 | { ns::Reg_##r0, ns::Reg_##r1, ns::Reg_##r2, ns::Reg_##r3 } |
John Porto | 2187c84 | 2015-12-16 07:48:25 -0800 | [diff] [blame^] | 30 | #define REGLIST7(ns, r0, r1, r2, r3, r4, r5, r6) \ |
Jim Stichnoth | 5bff61c | 2015-10-28 09:26:00 -0700 | [diff] [blame] | 31 | { \ |
| 32 | ns::Reg_##r0, ns::Reg_##r1, ns::Reg_##r2, ns::Reg_##r3, ns::Reg_##r4, \ |
John Porto | 2187c84 | 2015-12-16 07:48:25 -0800 | [diff] [blame^] | 33 | ns::Reg_##r5, ns::Reg_##r6 \ |
Jim Stichnoth | 5bff61c | 2015-10-28 09:26:00 -0700 | [diff] [blame] | 34 | } |
| 35 | |
| 36 | #endif // SUBZERO_SRC_ICEINSTREGLIST_H |