blob: 100736880cfa8a5c0c52d79de58f75ffdbcffddb [file] [log] [blame]
Jan Voungb36ad9b2015-04-21 17:01:49 -07001//===- subzero/src/IceInstX8632.h - x86-32 machine instructions -*- C++ -*-===//
Jim Stichnoth5bc2b1d2014-05-22 13:38:48 -07002//
3// The Subzero Code Generator
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
Andrew Scull9612d322015-07-06 14:53:25 -07009///
10/// \file
Jim Stichnoth92a6e5b2015-12-02 16:52:44 -080011/// \brief Used to house all the X8632 instructions.
12///
13/// Subzero has been modified to use templates for X86 instructions, so all
14/// those definitions are are in IceInstX86Base.h
John Porto921856d2015-07-07 11:56:26 -070015///
16/// When interacting with the X8632 target (which should only happen in the
17/// X8632 TargetLowering) clients have should use the Ice::X8632::Traits::Insts
18/// traits, which hides all the template verboseness behind a type alias.
19///
20/// For example, to create an X8632 MOV Instruction, clients should do
21///
22/// ::Ice::X8632::Traits::Insts::Mov::create
23///
Jim Stichnoth5bc2b1d2014-05-22 13:38:48 -070024//===----------------------------------------------------------------------===//
25
26#ifndef SUBZERO_SRC_ICEINSTX8632_H
27#define SUBZERO_SRC_ICEINSTX8632_H
28
29#include "IceDefs.h"
30#include "IceInst.h"
John Porto4a566862016-01-04 09:33:41 -080031#define X86NAMESPACE X8632
John Porto921856d2015-07-07 11:56:26 -070032#include "IceInstX86Base.h"
John Porto4a566862016-01-04 09:33:41 -080033#undef X86NAMESPACE
Jim Stichnoth5bc2b1d2014-05-22 13:38:48 -070034#include "IceOperand.h"
John Porto5d0acff2015-06-30 15:29:21 -070035#include "IceTargetLoweringX8632Traits.h"
Jim Stichnoth5bc2b1d2014-05-22 13:38:48 -070036
Jim Stichnoth5bc2b1d2014-05-22 13:38:48 -070037#endif // SUBZERO_SRC_ICEINSTX8632_H