48 lines · plain
1//===- X86InstrGISel.td - X86 GISel target specific opcodes -*- tablegen -*===//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-exception6//7//===----------------------------------------------------------------------===//8//9// X86 GlobalISel target pseudo instruction definitions. This is kept10// separately from the other tablegen files for organizational purposes, but11// share the same infrastructure.12//13//===----------------------------------------------------------------------===//14 15class X86GenericInstruction : GenericInstruction { let Namespace = "X86"; }16 17def G_FILD : X86GenericInstruction {18 let OutOperandList = (outs type0:$dst);19 let InOperandList = (ins ptype1:$src);20 let hasSideEffects = false;21 let mayLoad = true;22}23def G_FIST : X86GenericInstruction {24 let OutOperandList = (outs);25 let InOperandList = (ins type0:$src1, ptype1:$src2);26 let hasSideEffects = false;27 let mayStore = true;28}29 30def G_FNSTCW16 : X86GenericInstruction {31 let OutOperandList = (outs);32 let InOperandList = (ins ptype0:$dst);33 let hasSideEffects = true;34 let mayStore = true;35}36 37def G_FLDCW16 : X86GenericInstruction {38 let OutOperandList = (outs);39 let InOperandList = (ins ptype0:$src);40 let hasSideEffects = true;41 let mayLoad = true;42}43 44def : GINodeEquiv<G_FILD, X86fild>;45def : GINodeEquiv<G_FIST, X86fp_to_mem>;46def : GINodeEquiv<G_FNSTCW16, X86fp_cwd_get16>;47def : GINodeEquiv<G_FLDCW16, X86fp_cwd_set16>;48