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 15ENTRY(CMP16mi, CMP16mi8) 16ENTRY(CMP16ri, CMP16ri8) 17ENTRY(CMP32mi, CMP32mi8) 18ENTRY(CMP32ri, CMP32ri8) 19ENTRY(CMP64mi32, CMP64mi8) 20ENTRY(CMP64ri32, CMP64ri8) 21ENTRY(CCMP16mi, CCMP16mi8) 22ENTRY(CCMP16ri, CCMP16ri8) 23ENTRY(CCMP32mi, CCMP32mi8) 24ENTRY(CCMP32ri, CCMP32ri8) 25ENTRY(CCMP64mi32, CCMP64mi8) 26ENTRY(CCMP64ri32, CCMP64ri8) 27ENTRY(PUSH16i, PUSH16i8) 28ENTRY(PUSH32i, PUSH32i8) 29ENTRY(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) 36ENTRYS(ADD16mi, ADD16mi8) 37ENTRYS(ADD16ri, ADD16ri8) 38ENTRYS(ADD32mi, ADD32mi8) 39ENTRYS(ADD32ri, ADD32ri8) 40ENTRYS(ADD64mi32, ADD64mi8) 41ENTRYS(ADD64ri32, ADD64ri8) 42ENTRYS(AND16mi, AND16mi8) 43ENTRYS(AND16ri, AND16ri8) 44ENTRYS(AND32mi, AND32mi8) 45ENTRYS(AND32ri, AND32ri8) 46ENTRYS(AND64mi32, AND64mi8) 47ENTRYS(AND64ri32, AND64ri8) 48ENTRYS(OR16mi, OR16mi8) 49ENTRYS(OR16ri, OR16ri8) 50ENTRYS(OR32mi, OR32mi8) 51ENTRYS(OR32ri, OR32ri8) 52ENTRYS(OR64mi32, OR64mi8) 53ENTRYS(OR64ri32, OR64ri8) 54ENTRYS(SUB16mi, SUB16mi8) 55ENTRYS(SUB16ri, SUB16ri8) 56ENTRYS(SUB32mi, SUB32mi8) 57ENTRYS(SUB32ri, SUB32ri8) 58ENTRYS(SUB64mi32, SUB64mi8) 59ENTRYS(SUB64ri32, SUB64ri8) 60ENTRYS(XOR16mi, XOR16mi8) 61ENTRYS(XOR16ri, XOR16ri8) 62ENTRYS(XOR32mi, XOR32mi8) 63ENTRYS(XOR32ri, XOR32ri8) 64ENTRYS(XOR64mi32, XOR64mi8) 65ENTRYS(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) 71ENTRYS(IMUL16rmi, IMUL16rmi8) 72ENTRYS(IMUL16rri, IMUL16rri8) 73ENTRYS(IMUL32rmi, IMUL32rmi8) 74ENTRYS(IMUL32rri, IMUL32rri8) 75ENTRYS(IMUL64rmi32, IMUL64rmi8) 76ENTRYS(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) 82ENTRYS(ADC16mi, ADC16mi8) 83ENTRYS(ADC16ri, ADC16ri8) 84ENTRYS(ADC32mi, ADC32mi8) 85ENTRYS(ADC32ri, ADC32ri8) 86ENTRYS(ADC64mi32, ADC64mi8) 87ENTRYS(ADC64ri32, ADC64ri8) 88ENTRYS(SBB16mi, SBB16mi8) 89ENTRYS(SBB16ri, SBB16ri8) 90ENTRYS(SBB32mi, SBB32mi8) 91ENTRYS(SBB32ri, SBB32ri8) 92ENTRYS(SBB64mi32, SBB64mi8) 93ENTRYS(SBB64ri32, SBB64ri8) 94#undef ENTRYS 95#undef ENTRY 96