Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(345)

Side by Side Diff: src/IceInstX8632.def

Issue 1419903002: Subzero: Refactor x86 register definitions to use the alias mechanism. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix assembler unit tests. Fix register names. Code review changes. Rebase Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/IceInstX8632.cpp ('k') | src/IceInstX8664.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
11 // form of x-macros. 11 // form of x-macros.
12 // 12 //
13 //===----------------------------------------------------------------------===// 13 //===----------------------------------------------------------------------===//
14 14
15 #ifndef SUBZERO_SRC_ICEINSTX8632_DEF 15 #ifndef SUBZERO_SRC_ICEINSTX8632_DEF
16 #define SUBZERO_SRC_ICEINSTX8632_DEF 16 #define SUBZERO_SRC_ICEINSTX8632_DEF
17 17
18 // NOTE: esp is not considered isInt, to avoid register allocating it. 18 #include "IceRegList.h"
19 #define REGX8632_GPR_TABLE \ 19
20 /* val, encode, name, name16, name8, scratch, preserved, stackptr, \ 20 // x86-32 ABI:
21 frameptr, isI8, isInt, isFP */ \ 21 // Scratch GPRs: eax, ecx, edx
22 X(Reg_eax, 0, "eax", "ax", "al", 1, 0, 0, 0, 1, 1, 0) \ 22 // Callee-save GPRs: ebx, ebp, esi, edi
23 X(Reg_ecx, 1, "ecx", "cx", "cl", 1, 0, 0, 0, 1, 1, 0) \ 23 // Scratch XMMs: xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7
24 X(Reg_edx, 2, "edx", "dx", "dl", 1, 0, 0, 0, 1, 1, 0) \ 24 // Key to table columns:
25 X(Reg_ebx, 3, "ebx", "bx", "bl", 0, 1, 0, 0, 1, 1, 0) \ 25 // val: Enum value, when a specific register is needed during lowering.
26 X(Reg_esp, 4, "esp", "sp", "" , 0, 0, 1, 0, 0, 0, 0) \ 26 // encode: Encoding in the integrated assembler.
27 X(Reg_ebp, 5, "ebp", "bp", "" , 0, 1, 0, 1, 0, 1, 0) \ 27 // name: Name used for the external assembler.
28 X(Reg_esi, 6, "esi", "si", "" , 0, 1, 0, 0, 0, 1, 0) \ 28 // scratch: Scratch (caller-save) register.
29 X(Reg_edi, 7, "edi", "di", "" , 0, 1, 0, 0, 0, 1, 0) 29 // preserved: Preserved (callee-save) register.
30 30 // stackptr: This register is used as the stack pointer.
31 #define REGX8632_XMM_TABLE \ 31 // frameptr: This register is used as the frame pointer if needed.
32 X(Reg_xmm0, 0, "xmm0", "" , "" , 1, 0, 0, 0, 0, 0, 1) \ 32 // isGPR: This is a GPR (integer-type).
33 X(Reg_xmm1, 1, "xmm1", "" , "" , 1, 0, 0, 0, 0, 0, 1) \ 33 // is64: This is a 64-bit GPR.
34 X(Reg_xmm2, 2, "xmm2", "" , "" , 1, 0, 0, 0, 0, 0, 1) \ 34 // is32: This is a 32-bit GPR.
35 X(Reg_xmm3, 3, "xmm3", "" , "" , 1, 0, 0, 0, 0, 0, 1) \ 35 // is16: This is a 16-bit GPR.
36 X(Reg_xmm4, 4, "xmm4", "" , "" , 1, 0, 0, 0, 0, 0, 1) \ 36 // is8: This is an 8-bit GPR.
37 X(Reg_xmm5, 5, "xmm5", "" , "" , 1, 0, 0, 0, 0, 0, 1) \ 37 // isXmm: This is an XMM register for FP and vector ops.
38 X(Reg_xmm6, 6, "xmm6", "" , "" , 1, 0, 0, 0, 0, 0, 1) \ 38 // is64To8: A 64-bit GPR truncable to 8-bit.
39 X(Reg_xmm7, 7, "xmm7", "" , "" , 1, 0, 0, 0, 0, 0, 1) \ 39 // is32To8: A 32-bit GPR truncable to 8-bit.
40 //#define X(val, encode, name, name16, name8, scratch, preserved, stackptr, 40 // is16To8: A 16-bit GPR truncable to 8-bit.
41 // frameptr, isI8, isInt, isFP) 41 // isTrunc8Rcvr: An 8-bit GPR that a wider GPR trivially truncates to.
42 // isAhRcvr: An 8-bit GPR that register "ah" can be assigned to.
43 // aliases: List of register aliases, which need not include this register.
44 #define REGX8632_BYTEREG_TABLE \
45 /* val, encode, name, base, scratch,preserved,stackptr,frameptr, \
46 isGPR,is64,is32,is16,is8, isXmm, \
47 is64To8,is32To8,is16To8,isTrunc8Rcvr,isAhRcvr, aliases */ \
48 /* 8-bit registers */ \
49 X(Reg_al, 0, "al", Reg_eax, 1,0,0,0, 1,0,0,0,1, 0, 0,0,0,1,1, \
50 REGLIST2(RegX8632, eax, ax)) \
51 X(Reg_cl, 1, "cl", Reg_ecx, 1,0,0,0, 1,0,0,0,1, 0, 0,0,0,1,1, \
52 REGLIST2(RegX8632, ecx, cx)) \
53 X(Reg_dl, 2, "dl", Reg_edx, 1,0,0,0, 1,0,0,0,1, 0, 0,0,0,1,1, \
54 REGLIST2(RegX8632, edx, dx)) \
55 X(Reg_bl, 3, "bl", Reg_ebx, 0,1,0,0, 1,0,0,0,1, 0, 0,0,0,1,1, \
56 REGLIST2(RegX8632, ebx, bx)) \
57 /* High 8-bit registers */ \
58 X(Reg_ah, 4, "ah", Reg_eax, 1,0,0,0, 1,0,0,0,0, 0, 0,0,0,0,1, \
59 REGLIST2(RegX8632, eax, ax)) \
60 X(Reg_ch, 5, "ch", Reg_ecx, 1,0,0,0, 1,0,0,0,0, 0, 0,0,0,0,1, \
61 REGLIST2(RegX8632, ecx, cx)) \
62 X(Reg_dh, 6, "dh", Reg_edx, 1,0,0,0, 1,0,0,0,0, 0, 0,0,0,0,1, \
63 REGLIST2(RegX8632, edx, dx)) \
64 X(Reg_bh, 7, "bh", Reg_ebx, 0,1,0,0, 1,0,0,0,0, 0, 0,0,0,0,1, \
65 REGLIST2(RegX8632, ebx, bx)) \
66 /* End of 8-bit register set */
67 //#define X(val, encode, name, base, scratch, preserved, stackptr, frameptr,
68 // isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, is16To8,
69 // isTrunc8Rcvr, isAhRcvr, aliases)
70
71 #define REGX8632_GPR_TABLE \
72 /* val, encode, name, base, scratch,preserved,stackptr,frameptr, \
73 isGPR,is64,is32,is16,is8, isXmm, \
74 is64To8,is32To8,is16To8,isTrunc8Rcvr,isAhRcvr, aliases */ \
75 /* 32-bit registers */ \
76 X(Reg_eax, 0, "eax", Reg_eax, 1,0,0,0, 1,0,1,0,0, 0, 0,1,0,0,0, \
77 REGLIST3(RegX8632, ax, al, ah)) \
78 X(Reg_ecx, 1, "ecx", Reg_ecx, 1,0,0,0, 1,0,1,0,0, 0, 0,1,0,0,0, \
79 REGLIST3(RegX8632, cx, cl, ch)) \
80 X(Reg_edx, 2, "edx", Reg_edx, 1,0,0,0, 1,0,1,0,0, 0, 0,1,0,0,0, \
81 REGLIST3(RegX8632, dx, dl, dh)) \
82 X(Reg_ebx, 3, "ebx", Reg_ebx, 0,1,0,0, 1,0,1,0,0, 0, 0,1,0,0,0, \
83 REGLIST3(RegX8632, bx, bl, bh)) \
84 X(Reg_esp, 4, "esp", Reg_esp, 0,0,1,0, 1,0,0,0,0, 0, 0,0,0,0,0, \
85 REGLIST1(RegX8632, sp)) \
86 X(Reg_ebp, 5, "ebp", Reg_ebp, 0,1,0,1, 1,0,1,0,0, 0, 0,0,0,0,0, \
87 REGLIST1(RegX8632, bp)) \
88 X(Reg_esi, 6, "esi", Reg_esi, 0,1,0,0, 1,0,1,0,0, 0, 0,0,0,0,0, \
89 REGLIST1(RegX8632, si)) \
90 X(Reg_edi, 7, "edi", Reg_edi, 0,1,0,0, 1,0,1,0,0, 0, 0,0,0,0,0, \
91 REGLIST1(RegX8632, di)) \
92 /* 16-bit registers */ \
93 X(Reg_ax, 0, "ax", Reg_eax, 1,0,0,0, 1,0,0,1,0, 0, 0,0,1,0,0, \
94 REGLIST3(RegX8632, eax, al, ah)) \
95 X(Reg_cx, 1, "cx", Reg_ecx, 1,0,0,0, 1,0,0,1,0, 0, 0,0,1,0,0, \
96 REGLIST3(RegX8632, ecx, cl, ch)) \
97 X(Reg_dx, 2, "dx", Reg_edx, 1,0,0,0, 1,0,0,1,0, 0, 0,0,1,0,0, \
98 REGLIST3(RegX8632, edx, dl, dh)) \
99 X(Reg_bx, 3, "bx", Reg_ebx, 0,1,0,0, 1,0,0,1,0, 0, 0,0,1,0,0, \
100 REGLIST3(RegX8632, ebx, bl, bh)) \
101 X(Reg_sp, 4, "sp", Reg_esp, 0,0,1,0, 1,0,0,0,0, 0, 0,0,0,0,0, \
102 REGLIST1(RegX8632, esp)) \
103 X(Reg_bp, 5, "bp", Reg_ebp, 0,1,0,1, 1,0,0,1,0, 0, 0,0,0,0,0, \
104 REGLIST1(RegX8632, ebp)) \
105 X(Reg_si, 6, "si", Reg_esi, 0,1,0,0, 1,0,0,1,0, 0, 0,0,0,0,0, \
106 REGLIST1(RegX8632, esi)) \
107 X(Reg_di, 7, "di", Reg_edi, 0,1,0,0, 1,0,0,1,0, 0, 0,0,0,0,0, \
108 REGLIST1(RegX8632, edi)) \
109 /* 8-bit registers */ \
110 REGX8632_BYTEREG_TABLE \
111 /* End of GPR register set */
112 //#define X(val, encode, name, base, scratch, preserved, stackptr, frameptr,
113 // isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, is16To8,
114 // isTrunc8Rcvr, isAhRcvr, aliases)
115
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
118 // we use REGLIST1() to redundantly assign the register itself as an alias.
119 #define REGX8632_XMM_TABLE \
120 /* val, encode, name, base, scratch,preserved,stackptr,frameptr, \
121 isGPR,is64,is32,is16,is8, isXmm, \
122 is64To8,is32To8,is16To8,isTrunc8Rcvr,isAhRcvr, aliases */ \
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, \
125 REGLIST1(RegX8632, xmm0)) \
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)) \
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)) \
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)) \
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)) \
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)) \
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)) \
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)) \
140 /* End of xmm register set */
141 //#define X(val, encode, name, base, scratch, preserved, stackptr, frameptr,
142 // isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, is16To8,
143 // isTrunc8Rcvr, isAhRcvr, aliases)
42 144
43 // 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
44 // all of the registers are considered and have distinct numberings. 146 // all of the registers are considered and have distinct numberings.
45 // 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
46 // 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.
47 #define REGX8632_TABLE \ 149 #define REGX8632_TABLE \
48 /* val, encode, name, name16, name8, scratch, preserved, stackptr, \ 150 REGX8632_GPR_TABLE \
49 frameptr, isI8, isInt, isFP */ \
50 REGX8632_GPR_TABLE \
51 REGX8632_XMM_TABLE 151 REGX8632_XMM_TABLE
52 //#define X(val, encode, name, name16, name8, scratch, preserved, stackptr, 152 //#define X(val, encode, name, base, scratch, preserved, stackptr, frameptr,
53 // frameptr, isI8, isInt, isFP) 153 // isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, is16To8,
54 154 // isTrunc8Rcvr, isAhRcvr, aliases)
55 #define REGX8632_TABLE_BOUNDS \
56 /* val, init */ \
57 X(Reg_GPR_First, = Reg_eax) \
58 X(Reg_GPR_Last, = Reg_edi) \
59 X(Reg_XMM_First, = Reg_xmm0) \
60 X(Reg_XMM_Last, = Reg_xmm7) \
61 //define X(val, init)
62
63 // We also need the encodings for the Byte registers (other info overlaps
64 // what is in the REGX8632_GPR_TABLE).
65 #define REGX8632_BYTEREG_TABLE \
66 /* val, encode */ \
67 X(Reg_al, = 0) \
68 X(Reg_cl, = 1) \
69 X(Reg_dl, = 2) \
70 X(Reg_bl, = 3)
71 //#define X(val, encode)
72 155
73 // X86 segment registers. 156 // X86 segment registers.
74 #define SEG_REGX8632_TABLE \ 157 #define SEG_REGX8632_TABLE \
75 /* enum value, name, prefix */ \ 158 /* val, name, prefix */ \
76 X(SegReg_CS, "cs", 0x2E) \ 159 X(SegReg_CS, "cs", 0x2E) \
77 X(SegReg_DS, "ds", 0x3E) \ 160 X(SegReg_DS, "ds", 0x3E) \
78 X(SegReg_ES, "es", 0x26) \ 161 X(SegReg_ES, "es", 0x26) \
79 X(SegReg_SS, "ss", 0x36) \ 162 X(SegReg_SS, "ss", 0x36) \
80 X(SegReg_FS, "fs", 0x64) \ 163 X(SegReg_FS, "fs", 0x64) \
81 X(SegReg_GS, "gs", 0x65) \ 164 X(SegReg_GS, "gs", 0x65)
82 //#define X(val, name, prefix) 165 //#define X(val, name, prefix)
83 166
84 // X87 ST(n) registers. 167 // X87 ST(n) registers.
85 #define X87ST_REGX8632_TABLE \ 168 #define X87ST_REGX8632_TABLE \
86 /* enum value, encode, name */ \ 169 /* val, encode, name */ \
87 X(X87ST_First, = 0, "st(0)") \ 170 X(X87ST_First, 0, "st(0)") \
88 X(X87ST_0, = 0, "st(0)") \ 171 X(X87ST_0, 0, "st(0)") \
89 X(X87ST_1, = 1, "st(1)") \ 172 X(X87ST_1, 1, "st(1)") \
90 X(X87ST_2, = 2, "st(2)") \ 173 X(X87ST_2, 2, "st(2)") \
91 X(X87ST_3, = 3, "st(3)") \ 174 X(X87ST_3, 3, "st(3)") \
92 X(X87ST_4, = 4, "st(4)") \ 175 X(X87ST_4, 4, "st(4)") \
93 X(X87ST_5, = 5, "st(5)") \ 176 X(X87ST_5, 5, "st(5)") \
94 X(X87ST_6, = 6, "st(6)") \ 177 X(X87ST_6, 6, "st(6)") \
95 X(X87ST_7, = 7, "st(7)") \ 178 X(X87ST_7, 7, "st(7)") \
96 X(X87ST_Last, = 7, "st(7)") \ 179 X(X87ST_Last, 7, "st(7)")
97 //#define X(val, encode, name) 180 //#define X(val, encode, name)
98 181
99 #define ICEINSTX8632BR_TABLE \ 182 #define ICEINSTX8632BR_TABLE \
100 /* enum value, encode, opposite, dump, emit */ \ 183 /* val, encode, opposite, dump, emit */ \
101 X(Br_o, = 0, Br_no, "o", "jo") \ 184 X(Br_o, 0, Br_no, "o", "jo") \
102 X(Br_no, = 1, Br_o, "no", "jno") \ 185 X(Br_no, 1, Br_o, "no", "jno") \
103 X(Br_b, = 2, Br_ae, "b", "jb") \ 186 X(Br_b, 2, Br_ae, "b", "jb") \
104 X(Br_ae, = 3, Br_b, "ae", "jae") \ 187 X(Br_ae, 3, Br_b, "ae", "jae") \
105 X(Br_e, = 4, Br_ne, "e", "je") \ 188 X(Br_e, 4, Br_ne, "e", "je") \
106 X(Br_ne, = 5, Br_e, "ne", "jne") \ 189 X(Br_ne, 5, Br_e, "ne", "jne") \
107 X(Br_be, = 6, Br_a, "be", "jbe") \ 190 X(Br_be, 6, Br_a, "be", "jbe") \
108 X(Br_a, = 7, Br_be, "a", "ja") \ 191 X(Br_a, 7, Br_be, "a", "ja") \
109 X(Br_s, = 8, Br_ns, "s", "js") \ 192 X(Br_s, 8, Br_ns, "s", "js") \
110 X(Br_ns, = 9, Br_s, "ns", "jns") \ 193 X(Br_ns, 9, Br_s, "ns", "jns") \
111 X(Br_p, = 10, Br_np, "p", "jp") \ 194 X(Br_p, 10, Br_np, "p", "jp") \
112 X(Br_np, = 11, Br_p, "np", "jnp") \ 195 X(Br_np, 11, Br_p, "np", "jnp") \
113 X(Br_l, = 12, Br_ge, "l", "jl") \ 196 X(Br_l, 12, Br_ge, "l", "jl") \
114 X(Br_ge, = 13, Br_l, "ge", "jge") \ 197 X(Br_ge, 13, Br_l, "ge", "jge") \
115 X(Br_le, = 14, Br_g, "le", "jle") \ 198 X(Br_le, 14, Br_g, "le", "jle") \
116 X(Br_g, = 15, Br_le, "g", "jg") \ 199 X(Br_g, 15, Br_le, "g", "jg")
117 //#define X(tag, encode, opp, dump, emit) 200 //#define X(val, encode, opp, dump, emit)
118 201
119 #define ICEINSTX8632CMPPS_TABLE \ 202 #define ICEINSTX8632CMPPS_TABLE \
120 /* enum value, emit */ \ 203 /* val, emit */ \
121 X(Cmpps_eq, "eq") \ 204 X(Cmpps_eq, "eq") \
122 X(Cmpps_lt, "lt") \ 205 X(Cmpps_lt, "lt") \
123 X(Cmpps_le, "le") \ 206 X(Cmpps_le, "le") \
124 X(Cmpps_unord, "unord") \ 207 X(Cmpps_unord, "unord") \
125 X(Cmpps_neq, "neq") \ 208 X(Cmpps_neq, "neq") \
126 X(Cmpps_nlt, "nlt") \ 209 X(Cmpps_nlt, "nlt") \
127 X(Cmpps_nle, "nle") \ 210 X(Cmpps_nle, "nle") \
128 X(Cmpps_ord, "ord") \ 211 X(Cmpps_ord, "ord")
129 //#define X(tag, emit) 212 //#define X(val, emit)
130 213
131 #define ICETYPEX8632_TABLE \ 214 #define ICETYPEX8632_TABLE \
132 /* tag, element type, cvt, sdss, pack, width, fld */ \ 215 /* tag, element type, cvt , sdss, pack, width, fld */ \
133 X(IceType_void, IceType_void, "?" , "" , "" , "", "") \ 216 X(IceType_void, IceType_void, "?", "", "", "", "") \
134 X(IceType_i1, IceType_void, "si", "" , "" , "b", "") \ 217 X(IceType_i1, IceType_void, "si", "", "", "b", "") \
135 X(IceType_i8, IceType_void, "si", "" , "" , "b", "") \ 218 X(IceType_i8, IceType_void, "si", "", "", "b", "") \
136 X(IceType_i16, IceType_void, "si", "" , "" , "w", "") \ 219 X(IceType_i16, IceType_void, "si", "", "", "w", "") \
137 X(IceType_i32, IceType_void, "si", "" , "" , "l", "") \ 220 X(IceType_i32, IceType_void, "si", "", "", "l", "") \
138 X(IceType_i64, IceType_void, "si", "" , "" , "q", "") \ 221 X(IceType_i64, IceType_void, "si", "", "", "q", "") \
139 X(IceType_f32, IceType_void, "ss", "ss", "d", "", "s") \ 222 X(IceType_f32, IceType_void, "ss", "ss", "d", "", "s") \
140 X(IceType_f64, IceType_void, "sd", "sd", "q", "", "l") \ 223 X(IceType_f64, IceType_void, "sd", "sd", "q", "", "l") \
141 X(IceType_v4i1, IceType_i32 , "?" , "" , "d", "", "") \ 224 X(IceType_v4i1, IceType_i32, "?", "", "d", "", "") \
142 X(IceType_v8i1, IceType_i16 , "?" , "" , "w", "", "") \ 225 X(IceType_v8i1, IceType_i16, "?", "", "w", "", "") \
143 X(IceType_v16i1, IceType_i8 , "?" , "" , "b", "", "") \ 226 X(IceType_v16i1, IceType_i8, "?", "", "b", "", "") \
144 X(IceType_v16i8, IceType_i8 , "?" , "" , "b", "", "") \ 227 X(IceType_v16i8, IceType_i8, "?", "", "b", "", "") \
145 X(IceType_v8i16, IceType_i16 , "?" , "" , "w", "", "") \ 228 X(IceType_v8i16, IceType_i16, "?", "", "w", "", "") \
146 X(IceType_v4i32, IceType_i32 , "dq", "" , "d", "", "") \ 229 X(IceType_v4i32, IceType_i32, "dq", "", "d", "", "") \
147 X(IceType_v4f32, IceType_f32 , "ps", "" , "d", "", "") \ 230 X(IceType_v4f32, IceType_f32, "ps", "", "d", "", "")
148 //#define X(tag, elementty, cvt, sdss, pack, width, fld) 231 //#define X(tag, elementty, cvt, sdss, pack, width, fld)
149 232
150 #endif // SUBZERO_SRC_ICEINSTX8632_DEF 233 #endif // SUBZERO_SRC_ICEINSTX8632_DEF
OLDNEW
« no previous file with comments | « src/IceInstX8632.cpp ('k') | src/IceInstX8664.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698