OLD | NEW |
1 //===- subzero/src/IceInstX8632.def - X-macros for x86-32 insts -*- C++ -*-===// | 1 //===- subzero/src/IceInstX8632.def - X-macros for x86-32 insts -*- C++ -*-===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This file defines properties of lowered x86-32 instructions in the | 10 // This file defines properties of lowered x86-32 instructions in the |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 | 115 |
116 // Note: It would be more appropriate to list the xmm register aliases as | 116 // Note: It would be more appropriate to list the xmm register aliases as |
117 // REGLIST0(), but the corresponding empty initializer gives a syntax error, so | 117 // REGLIST0(), but the corresponding empty initializer gives a syntax error, so |
118 // we use REGLIST1() to redundantly assign the register itself as an alias. | 118 // we use REGLIST1() to redundantly assign the register itself as an alias. |
119 #define REGX8632_XMM_TABLE \ | 119 #define REGX8632_XMM_TABLE \ |
120 /* val, encode, name, base, scratch,preserved,stackptr,frameptr, \ | 120 /* val, encode, name, base, scratch,preserved,stackptr,frameptr, \ |
121 isGPR,is64,is32,is16,is8, isXmm, \ | 121 isGPR,is64,is32,is16,is8, isXmm, \ |
122 is64To8,is32To8,is16To8,isTrunc8Rcvr,isAhRcvr, aliases */ \ | 122 is64To8,is32To8,is16To8,isTrunc8Rcvr,isAhRcvr, aliases */ \ |
123 /* xmm registers */ \ | 123 /* xmm registers */ \ |
124 X(Reg_xmm0, 0, "xmm0", Reg_xmm0, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ | 124 X(Reg_xmm0, 0, "xmm0", Reg_xmm0, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ |
125 REGLIST1(RegX8632, xmm0)) \ | 125 NO_ALIASES()) \ |
126 X(Reg_xmm1, 1, "xmm1", Reg_xmm1, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ | 126 X(Reg_xmm1, 1, "xmm1", Reg_xmm1, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ |
127 REGLIST1(RegX8632, xmm1)) \ | 127 NO_ALIASES()) \ |
128 X(Reg_xmm2, 2, "xmm2", Reg_xmm2, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ | 128 X(Reg_xmm2, 2, "xmm2", Reg_xmm2, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ |
129 REGLIST1(RegX8632, xmm2)) \ | 129 NO_ALIASES()) \ |
130 X(Reg_xmm3, 3, "xmm3", Reg_xmm3, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ | 130 X(Reg_xmm3, 3, "xmm3", Reg_xmm3, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ |
131 REGLIST1(RegX8632, xmm3)) \ | 131 NO_ALIASES()) \ |
132 X(Reg_xmm4, 4, "xmm4", Reg_xmm4, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ | 132 X(Reg_xmm4, 4, "xmm4", Reg_xmm4, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ |
133 REGLIST1(RegX8632, xmm4)) \ | 133 NO_ALIASES()) \ |
134 X(Reg_xmm5, 5, "xmm5", Reg_xmm5, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ | 134 X(Reg_xmm5, 5, "xmm5", Reg_xmm5, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ |
135 REGLIST1(RegX8632, xmm5)) \ | 135 NO_ALIASES()) \ |
136 X(Reg_xmm6, 6, "xmm6", Reg_xmm6, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ | 136 X(Reg_xmm6, 6, "xmm6", Reg_xmm6, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ |
137 REGLIST1(RegX8632, xmm6)) \ | 137 NO_ALIASES()) \ |
138 X(Reg_xmm7, 7, "xmm7", Reg_xmm7, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ | 138 X(Reg_xmm7, 7, "xmm7", Reg_xmm7, 1,0,0,0, 0,0,0,0,0, 1, 0,0,0,0,0, \ |
139 REGLIST1(RegX8632, xmm7)) \ | 139 NO_ALIASES()) \ |
140 /* End of xmm register set */ | 140 /* End of xmm register set */ |
141 //#define X(val, encode, name, base, scratch, preserved, stackptr, frameptr, | 141 //#define X(val, encode, name, base, scratch, preserved, stackptr, frameptr, |
142 // isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, is16To8, | 142 // isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, is16To8, |
143 // isTrunc8Rcvr, isAhRcvr, aliases) | 143 // isTrunc8Rcvr, isAhRcvr, aliases) |
144 | 144 |
145 // We also provide a combined table, so that there is a namespace where | 145 // We also provide a combined table, so that there is a namespace where |
146 // all of the registers are considered and have distinct numberings. | 146 // all of the registers are considered and have distinct numberings. |
147 // This is in contrast to the above, where the "encode" is based on how | 147 // This is in contrast to the above, where the "encode" is based on how |
148 // the register numbers will be encoded in binaries and values can overlap. | 148 // the register numbers will be encoded in binaries and values can overlap. |
149 #define REGX8632_TABLE \ | 149 #define REGX8632_TABLE \ |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 X(v4i1, i32, "?", "", "", "", "d", "", "") \ | 224 X(v4i1, i32, "?", "", "", "", "d", "", "") \ |
225 X(v8i1, i16, "?", "", "", "", "w", "", "") \ | 225 X(v8i1, i16, "?", "", "", "", "w", "", "") \ |
226 X(v16i1, i8, "?", "", "", "", "b", "", "") \ | 226 X(v16i1, i8, "?", "", "", "", "b", "", "") \ |
227 X(v16i8, i8, "?", "", "", "", "b", "", "") \ | 227 X(v16i8, i8, "?", "", "", "", "b", "", "") \ |
228 X(v8i16, i16, "?", "", "", "", "w", "", "") \ | 228 X(v8i16, i16, "?", "", "", "", "w", "", "") \ |
229 X(v4i32, i32, "dq", "", "", "", "d", "", "") \ | 229 X(v4i32, i32, "dq", "", "", "", "d", "", "") \ |
230 X(v4f32, f32, "ps", "", "ps", "ps", "d", "", "") | 230 X(v4f32, f32, "ps", "", "ps", "ps", "d", "", "") |
231 //#define X(tag, elementty, cvt, sdss, pdps, spsd, pack, width, fld) | 231 //#define X(tag, elementty, cvt, sdss, pdps, spsd, pack, width, fld) |
232 | 232 |
233 #endif // SUBZERO_SRC_ICEINSTX8632_DEF | 233 #endif // SUBZERO_SRC_ICEINSTX8632_DEF |
OLD | NEW |