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