1// Copyright (c) 2007-2008 The Hewlett-Packard Development Company
2// All rights reserved.
3//
4// The license below extends only to copyright in the software and shall
5// not be construed as granting a license to any other intellectual
6// property including but not limited to intellectual property relating
7// to a hardware implementation of the functionality of the software
8// licensed hereunder.  You may use the software subject to the license
9// terms below provided that you ensure that this notice is replicated
10// unmodified and in its entirety in all distributions of the software,
11// modified or unmodified, in source code or in binary form.
12//
13// Copyright (c) 2007 The Regents of The University of Michigan
14// All rights reserved.
15//
16// Redistribution and use in source and binary forms, with or without
17// modification, are permitted provided that the following conditions are
18// met: redistributions of source code must retain the above copyright
19// notice, this list of conditions and the following disclaimer;
20// redistributions in binary form must reproduce the above copyright
21// notice, this list of conditions and the following disclaimer in the
22// documentation and/or other materials provided with the distribution;
23// neither the name of the copyright holders nor the names of its
24// contributors may be used to endorse or promote products derived from
25// this software without specific prior written permission.
26//
27// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38//
39// Authors: Gabe Black
40
41////////////////////////////////////////////////////////////////////
42//
43// Output include file directives. Also import the python modules we
44// need for all the x86 custom decoder stuff
45//
46
47let {{
48    import copy
49}};
50
51output header {{
52#include <array>
53#include <cstring>
54#include <iostream>
55#include <sstream>
56
57#include "arch/generic/debugfaults.hh"
58#include "arch/x86/insts/macroop.hh"
59#include "arch/x86/insts/microfpop.hh"
60#include "arch/x86/insts/microldstop.hh"
61#include "arch/x86/insts/micromediaop.hh"
62#include "arch/x86/insts/microregop.hh"
63#include "arch/x86/insts/static_inst.hh"
64#include "arch/x86/emulenv.hh"
65#include "arch/x86/isa_traits.hh"
66#include "arch/x86/registers.hh"
67#include "arch/x86/types.hh"
68#include "arch/x86/utility.hh"
69#include "base/logging.hh"
70#include "cpu/static_inst.hh"
71#include "mem/packet.hh"
72#include "sim/faults.hh"
73
74using X86ISA::InstRegIndex;
75}};
76
77output decoder {{
78#include "arch/x86/decoder.hh"
79#include "arch/x86/regs/float.hh"
80#include "arch/x86/regs/misc.hh"
81#include "arch/x86/regs/segment.hh"
82#include "arch/x86/faults.hh"
83#include "arch/x86/microcode_rom.hh"
84#include "arch/x86/tlb.hh"
85#include "base/loader/symtab.hh"
86#include "base/cprintf.hh"
87#include "base/logging.hh"
88#include "cpu/thread_context.hh"  // for Jump::branchTarget()
89#include "mem/packet.hh"
90#include "sim/full_system.hh"
91
92#if defined(linux) || defined(__APPLE__)
93#include <fenv.h>
94#endif
95#include <algorithm>
96
97using namespace X86ISA;
98}};
99
100output exec {{
101#if defined(linux) || defined(__APPLE__)
102#include <fenv.h>
103#endif
104
105#if defined(__sun) || defined (__OpenBSD__)
106#include <ieeefp.h>
107#endif
108
109#include <cmath>
110#include <limits>
111
112#include "arch/generic/debugfaults.hh"
113#include "arch/x86/regs/misc.hh"
114#include "arch/x86/cpuid.hh"
115#include "arch/x86/faults.hh"
116#include "arch/x86/memhelpers.hh"
117#include "arch/x86/tlb.hh"
118#include "base/compiler.hh"
119#include "base/condcodes.hh"
120#include "cpu/base.hh"
121#include "cpu/exetrace.hh"
122#include "debug/X86.hh"
123#include "mem/packet.hh"
124#include "mem/packet_access.hh"
125#include "mem/request.hh"
126#include "sim/pseudo_inst.hh"
127#include "sim/sim_exit.hh"
128
129using namespace X86ISA;
130using namespace std;
131}};
132
133