1 | //===- X86EncodingOptimizationForImmediate.def.def ---------------*- C++ -*-==// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | // \file |
9 | // This file defines all the entries of X86 instruction relaxation for immediate |
10 | //===----------------------------------------------------------------------===// |
11 | |
12 | #ifndef ENTRY |
13 | #define ENTRY(LONG, SHORT) |
14 | #endif |
15 | ENTRY(CMP16mi, CMP16mi8) |
16 | ENTRY(CMP16ri, CMP16ri8) |
17 | ENTRY(CMP32mi, CMP32mi8) |
18 | ENTRY(CMP32ri, CMP32ri8) |
19 | ENTRY(CMP64mi32, CMP64mi8) |
20 | ENTRY(CMP64ri32, CMP64ri8) |
21 | ENTRY(CCMP16mi, CCMP16mi8) |
22 | ENTRY(CCMP16ri, CCMP16ri8) |
23 | ENTRY(CCMP32mi, CCMP32mi8) |
24 | ENTRY(CCMP32ri, CCMP32ri8) |
25 | ENTRY(CCMP64mi32, CCMP64mi8) |
26 | ENTRY(CCMP64ri32, CCMP64ri8) |
27 | ENTRY(PUSH16i, PUSH16i8) |
28 | ENTRY(PUSH32i, PUSH32i8) |
29 | ENTRY(PUSH64i32, PUSH64i8) |
30 | #define ENTRYS(LONG, SHORT) \ |
31 | ENTRY(LONG, SHORT) \ |
32 | ENTRY(LONG##_EVEX, SHORT##_EVEX) \ |
33 | ENTRY(LONG##_NF, SHORT##_NF) \ |
34 | ENTRY(LONG##_ND, SHORT##_ND) \ |
35 | ENTRY(LONG##_NF_ND, SHORT##_NF_ND) |
36 | ENTRYS(ADD16mi, ADD16mi8) |
37 | ENTRYS(ADD16ri, ADD16ri8) |
38 | ENTRYS(ADD32mi, ADD32mi8) |
39 | ENTRYS(ADD32ri, ADD32ri8) |
40 | ENTRYS(ADD64mi32, ADD64mi8) |
41 | ENTRYS(ADD64ri32, ADD64ri8) |
42 | ENTRYS(AND16mi, AND16mi8) |
43 | ENTRYS(AND16ri, AND16ri8) |
44 | ENTRYS(AND32mi, AND32mi8) |
45 | ENTRYS(AND32ri, AND32ri8) |
46 | ENTRYS(AND64mi32, AND64mi8) |
47 | ENTRYS(AND64ri32, AND64ri8) |
48 | ENTRYS(OR16mi, OR16mi8) |
49 | ENTRYS(OR16ri, OR16ri8) |
50 | ENTRYS(OR32mi, OR32mi8) |
51 | ENTRYS(OR32ri, OR32ri8) |
52 | ENTRYS(OR64mi32, OR64mi8) |
53 | ENTRYS(OR64ri32, OR64ri8) |
54 | ENTRYS(SUB16mi, SUB16mi8) |
55 | ENTRYS(SUB16ri, SUB16ri8) |
56 | ENTRYS(SUB32mi, SUB32mi8) |
57 | ENTRYS(SUB32ri, SUB32ri8) |
58 | ENTRYS(SUB64mi32, SUB64mi8) |
59 | ENTRYS(SUB64ri32, SUB64ri8) |
60 | ENTRYS(XOR16mi, XOR16mi8) |
61 | ENTRYS(XOR16ri, XOR16ri8) |
62 | ENTRYS(XOR32mi, XOR32mi8) |
63 | ENTRYS(XOR32ri, XOR32ri8) |
64 | ENTRYS(XOR64mi32, XOR64mi8) |
65 | ENTRYS(XOR64ri32, XOR64ri8) |
66 | #undef ENTRYS |
67 | #define ENTRYS(LONG, SHORT) \ |
68 | ENTRY(LONG, SHORT) \ |
69 | ENTRY(LONG##_EVEX, SHORT##_EVEX) \ |
70 | ENTRY(LONG##_NF, SHORT##_NF) |
71 | ENTRYS(IMUL16rmi, IMUL16rmi8) |
72 | ENTRYS(IMUL16rri, IMUL16rri8) |
73 | ENTRYS(IMUL32rmi, IMUL32rmi8) |
74 | ENTRYS(IMUL32rri, IMUL32rri8) |
75 | ENTRYS(IMUL64rmi32, IMUL64rmi8) |
76 | ENTRYS(IMUL64rri32, IMUL64rri8) |
77 | #undef ENTRYS |
78 | #define ENTRYS(LONG, SHORT) \ |
79 | ENTRY(LONG, SHORT) \ |
80 | ENTRY(LONG##_EVEX, SHORT##_EVEX) \ |
81 | ENTRY(LONG##_ND, SHORT##_ND) |
82 | ENTRYS(ADC16mi, ADC16mi8) |
83 | ENTRYS(ADC16ri, ADC16ri8) |
84 | ENTRYS(ADC32mi, ADC32mi8) |
85 | ENTRYS(ADC32ri, ADC32ri8) |
86 | ENTRYS(ADC64mi32, ADC64mi8) |
87 | ENTRYS(ADC64ri32, ADC64ri8) |
88 | ENTRYS(SBB16mi, SBB16mi8) |
89 | ENTRYS(SBB16ri, SBB16ri8) |
90 | ENTRYS(SBB32mi, SBB32mi8) |
91 | ENTRYS(SBB32ri, SBB32ri8) |
92 | ENTRYS(SBB64mi32, SBB64mi8) |
93 | ENTRYS(SBB64ri32, SBB64ri8) |
94 | #undef ENTRYS |
95 | #undef ENTRY |
96 | |