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