xref: /aosp_15_r20/external/swiftshader/third_party/subzero/src/IceInstX86.def (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
1*03ce13f7SAndroid Build Coastguard Worker//===- subzero/src/IceInstX8664.def - X-macros for x86-64 insts -*- C++ -*-===//
2*03ce13f7SAndroid Build Coastguard Worker//
3*03ce13f7SAndroid Build Coastguard Worker//                        The Subzero Code Generator
4*03ce13f7SAndroid Build Coastguard Worker//
5*03ce13f7SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source
6*03ce13f7SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details.
7*03ce13f7SAndroid Build Coastguard Worker//
8*03ce13f7SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
9*03ce13f7SAndroid Build Coastguard Worker//
10*03ce13f7SAndroid Build Coastguard Worker// This file defines properties of lowered x86 instructions in the
11*03ce13f7SAndroid Build Coastguard Worker// form of x-macros.
12*03ce13f7SAndroid Build Coastguard Worker//
13*03ce13f7SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
14*03ce13f7SAndroid Build Coastguard Worker
15*03ce13f7SAndroid Build Coastguard Worker#ifndef SUBZERO_SRC_ICEINSTX86_DEF
16*03ce13f7SAndroid Build Coastguard Worker#define SUBZERO_SRC_ICEINSTX86_DEF
17*03ce13f7SAndroid Build Coastguard Worker
18*03ce13f7SAndroid Build Coastguard Worker#define ICEINSTX86BR_TABLE                                                     \
19*03ce13f7SAndroid Build Coastguard Worker  /* val, encode, opposite, dump, emit */                                      \
20*03ce13f7SAndroid Build Coastguard Worker  X(Br_o, 0, Br_no, "o", "jo")                                                 \
21*03ce13f7SAndroid Build Coastguard Worker  X(Br_no, 1, Br_o, "no", "jno")                                               \
22*03ce13f7SAndroid Build Coastguard Worker  X(Br_b, 2, Br_ae, "b", "jb")                                                 \
23*03ce13f7SAndroid Build Coastguard Worker  X(Br_ae, 3, Br_b, "ae", "jae")                                               \
24*03ce13f7SAndroid Build Coastguard Worker  X(Br_e, 4, Br_ne, "e", "je")                                                 \
25*03ce13f7SAndroid Build Coastguard Worker  X(Br_ne, 5, Br_e, "ne", "jne")                                               \
26*03ce13f7SAndroid Build Coastguard Worker  X(Br_be, 6, Br_a, "be", "jbe")                                               \
27*03ce13f7SAndroid Build Coastguard Worker  X(Br_a, 7, Br_be, "a", "ja")                                                 \
28*03ce13f7SAndroid Build Coastguard Worker  X(Br_s, 8, Br_ns, "s", "js")                                                 \
29*03ce13f7SAndroid Build Coastguard Worker  X(Br_ns, 9, Br_s, "ns", "jns")                                               \
30*03ce13f7SAndroid Build Coastguard Worker  X(Br_p, 10, Br_np, "p", "jp")                                                \
31*03ce13f7SAndroid Build Coastguard Worker  X(Br_np, 11, Br_p, "np", "jnp")                                              \
32*03ce13f7SAndroid Build Coastguard Worker  X(Br_l, 12, Br_ge, "l", "jl")                                                \
33*03ce13f7SAndroid Build Coastguard Worker  X(Br_ge, 13, Br_l, "ge", "jge")                                              \
34*03ce13f7SAndroid Build Coastguard Worker  X(Br_le, 14, Br_g, "le", "jle")                                              \
35*03ce13f7SAndroid Build Coastguard Worker  X(Br_g, 15, Br_le, "g", "jg")
36*03ce13f7SAndroid Build Coastguard Worker//#define X(val, encode, opp, dump, emit)
37*03ce13f7SAndroid Build Coastguard Worker
38*03ce13f7SAndroid Build Coastguard Worker#define ICEINSTX86CMPPS_TABLE                                                  \
39*03ce13f7SAndroid Build Coastguard Worker  /* val, emit */                                                              \
40*03ce13f7SAndroid Build Coastguard Worker  X(Cmpps_eq, "eq")                                                            \
41*03ce13f7SAndroid Build Coastguard Worker  X(Cmpps_lt, "lt")                                                            \
42*03ce13f7SAndroid Build Coastguard Worker  X(Cmpps_le, "le")                                                            \
43*03ce13f7SAndroid Build Coastguard Worker  X(Cmpps_unord, "unord")                                                      \
44*03ce13f7SAndroid Build Coastguard Worker  X(Cmpps_neq, "neq")                                                          \
45*03ce13f7SAndroid Build Coastguard Worker  X(Cmpps_nlt, "nlt")                                                          \
46*03ce13f7SAndroid Build Coastguard Worker  X(Cmpps_nle, "nle")                                                          \
47*03ce13f7SAndroid Build Coastguard Worker  X(Cmpps_ord, "ord")
48*03ce13f7SAndroid Build Coastguard Worker//#define X(val, emit)
49*03ce13f7SAndroid Build Coastguard Worker
50*03ce13f7SAndroid Build Coastguard Worker#define ICETYPEX86_TABLE                                                       \
51*03ce13f7SAndroid Build Coastguard Worker  /* tag,  elty, cvt,  sdss, pdps, spsd, int_, unpack, pack, width, fld */     \
52*03ce13f7SAndroid Build Coastguard Worker  X(void, void, "?", "", "", "", "", "", "", "", "")                           \
53*03ce13f7SAndroid Build Coastguard Worker  X(i1, void, "si", "", "", "", "", "", "", "b", "")                           \
54*03ce13f7SAndroid Build Coastguard Worker  X(i8, void, "si", "", "", "", "", "", "", "b", "")                           \
55*03ce13f7SAndroid Build Coastguard Worker  X(i16, void, "si", "", "", "", "", "", "", "w", "")                          \
56*03ce13f7SAndroid Build Coastguard Worker  X(i32, void, "si", "", "", "", "", "", "", "l", "")                          \
57*03ce13f7SAndroid Build Coastguard Worker  X(i64, void, "si", "", "", "", "", "", "", "q", "")                          \
58*03ce13f7SAndroid Build Coastguard Worker  X(f32, void, "ss", "ss", "ps", "ss", "d", "", "", "", "s")                   \
59*03ce13f7SAndroid Build Coastguard Worker  X(f64, void, "sd", "sd", "pd", "sd", "q", "", "", "", "l")                   \
60*03ce13f7SAndroid Build Coastguard Worker  X(v4i1, i32, "?", "", "", "", "d", "dq", "", "", "")                         \
61*03ce13f7SAndroid Build Coastguard Worker  X(v8i1, i16, "?", "", "", "", "w", "wd", "", "", "")                         \
62*03ce13f7SAndroid Build Coastguard Worker  X(v16i1, i8, "?", "", "", "", "b", "bw", "", "", "")                         \
63*03ce13f7SAndroid Build Coastguard Worker  X(v16i8, i8, "?", "", "", "", "b", "bw", "", "", "")                         \
64*03ce13f7SAndroid Build Coastguard Worker  X(v8i16, i16, "?", "", "", "", "w", "wd", "wb", "", "")                      \
65*03ce13f7SAndroid Build Coastguard Worker  X(v4i32, i32, "dq", "", "", "", "d", "dq", "dw", "", "")                     \
66*03ce13f7SAndroid Build Coastguard Worker  X(v4f32, f32, "ps", "", "ps", "ps", "d", "dq", "", "", "")
67*03ce13f7SAndroid Build Coastguard Worker//#define X(tag, elty, cvt, sdss, pdps, spsd, int_, unpack, pack, width, fld)
68*03ce13f7SAndroid Build Coastguard Worker
69*03ce13f7SAndroid Build Coastguard Worker#endif // SUBZERO_SRC_ICEINSTX8664_DEF
70