17087Snate@binkert.org// Copyright (c) 2007-2008 The Hewlett-Packard Development Company 27087Snate@binkert.org// All rights reserved. 37087Snate@binkert.org// 47087Snate@binkert.org// The license below extends only to copyright in the software and shall 57087Snate@binkert.org// not be construed as granting a license to any other intellectual 67087Snate@binkert.org// property including but not limited to intellectual property relating 77087Snate@binkert.org// to a hardware implementation of the functionality of the software 87087Snate@binkert.org// licensed hereunder. You may use the software subject to the license 97087Snate@binkert.org// terms below provided that you ensure that this notice is replicated 107087Snate@binkert.org// unmodified and in its entirety in all distributions of the software, 117087Snate@binkert.org// modified or unmodified, in source code or in binary form. 127087Snate@binkert.org// 134158Sgblack@eecs.umich.edu// Copyright (c) 2007 The Regents of The University of Michigan 144158Sgblack@eecs.umich.edu// All rights reserved. 154158Sgblack@eecs.umich.edu// 164158Sgblack@eecs.umich.edu// Redistribution and use in source and binary forms, with or without 174158Sgblack@eecs.umich.edu// modification, are permitted provided that the following conditions are 184158Sgblack@eecs.umich.edu// met: redistributions of source code must retain the above copyright 194158Sgblack@eecs.umich.edu// notice, this list of conditions and the following disclaimer; 204158Sgblack@eecs.umich.edu// redistributions in binary form must reproduce the above copyright 214158Sgblack@eecs.umich.edu// notice, this list of conditions and the following disclaimer in the 224158Sgblack@eecs.umich.edu// documentation and/or other materials provided with the distribution; 234158Sgblack@eecs.umich.edu// neither the name of the copyright holders nor the names of its 244158Sgblack@eecs.umich.edu// contributors may be used to endorse or promote products derived from 254158Sgblack@eecs.umich.edu// this software without specific prior written permission. 264158Sgblack@eecs.umich.edu// 274158Sgblack@eecs.umich.edu// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 284158Sgblack@eecs.umich.edu// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 294158Sgblack@eecs.umich.edu// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 304158Sgblack@eecs.umich.edu// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 314158Sgblack@eecs.umich.edu// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 324158Sgblack@eecs.umich.edu// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 334158Sgblack@eecs.umich.edu// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 344158Sgblack@eecs.umich.edu// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 354158Sgblack@eecs.umich.edu// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 364158Sgblack@eecs.umich.edu// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 374158Sgblack@eecs.umich.edu// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 384158Sgblack@eecs.umich.edu// 394158Sgblack@eecs.umich.edu// Authors: Gabe Black 404158Sgblack@eecs.umich.edu 414158Sgblack@eecs.umich.edu//////////////////////////////////////////////////////////////////// 424158Sgblack@eecs.umich.edu// 434323Sgblack@eecs.umich.edu// Output include file directives. Also import the python modules we 444323Sgblack@eecs.umich.edu// need for all the x86 custom decoder stuff 454158Sgblack@eecs.umich.edu// 464158Sgblack@eecs.umich.edu 474323Sgblack@eecs.umich.edulet {{ 484323Sgblack@eecs.umich.edu import copy 494323Sgblack@eecs.umich.edu}}; 504323Sgblack@eecs.umich.edu 514158Sgblack@eecs.umich.eduoutput header {{ 5211328Ssteve.reinhardt@amd.com#include <array> 534158Sgblack@eecs.umich.edu#include <cstring> 548229Snate@binkert.org#include <iostream> 554158Sgblack@eecs.umich.edu#include <sstream> 564158Sgblack@eecs.umich.edu 577965Sgblack@eecs.umich.edu#include "arch/generic/debugfaults.hh" 585786Sgblack@eecs.umich.edu#include "arch/x86/insts/macroop.hh" 595083Sgblack@eecs.umich.edu#include "arch/x86/insts/microfpop.hh" 604679Sgblack@eecs.umich.edu#include "arch/x86/insts/microldstop.hh" 616516Sgblack@eecs.umich.edu#include "arch/x86/insts/micromediaop.hh" 624679Sgblack@eecs.umich.edu#include "arch/x86/insts/microregop.hh" 634679Sgblack@eecs.umich.edu#include "arch/x86/insts/static_inst.hh" 648229Snate@binkert.org#include "arch/x86/emulenv.hh" 654158Sgblack@eecs.umich.edu#include "arch/x86/isa_traits.hh" 666329Sgblack@eecs.umich.edu#include "arch/x86/registers.hh" 674528Sgblack@eecs.umich.edu#include "arch/x86/types.hh" 689764Sandreas@sandberg.pp.se#include "arch/x86/utility.hh" 6912334Sgabeblack@google.com#include "base/logging.hh" 704158Sgblack@eecs.umich.edu#include "cpu/static_inst.hh" 714158Sgblack@eecs.umich.edu#include "mem/packet.hh" 724616Sgblack@eecs.umich.edu#include "sim/faults.hh" 736345Sgblack@eecs.umich.edu 746345Sgblack@eecs.umich.eduusing X86ISA::InstRegIndex; 754158Sgblack@eecs.umich.edu}}; 764158Sgblack@eecs.umich.edu 774158Sgblack@eecs.umich.eduoutput decoder {{ 789022Sgblack@eecs.umich.edu#include "arch/x86/decoder.hh" 797629Sgblack@eecs.umich.edu#include "arch/x86/regs/float.hh" 807629Sgblack@eecs.umich.edu#include "arch/x86/regs/misc.hh" 817629Sgblack@eecs.umich.edu#include "arch/x86/regs/segment.hh" 828229Snate@binkert.org#include "arch/x86/faults.hh" 838229Snate@binkert.org#include "arch/x86/microcode_rom.hh" 845912Sgblack@eecs.umich.edu#include "arch/x86/tlb.hh" 858229Snate@binkert.org#include "base/loader/symtab.hh" 864158Sgblack@eecs.umich.edu#include "base/cprintf.hh" 8712334Sgabeblack@google.com#include "base/logging.hh" 884158Sgblack@eecs.umich.edu#include "cpu/thread_context.hh" // for Jump::branchTarget() 894158Sgblack@eecs.umich.edu#include "mem/packet.hh" 908738Sgblack@eecs.umich.edu#include "sim/full_system.hh" 914158Sgblack@eecs.umich.edu 924158Sgblack@eecs.umich.edu#if defined(linux) || defined(__APPLE__) 934158Sgblack@eecs.umich.edu#include <fenv.h> 944158Sgblack@eecs.umich.edu#endif 954158Sgblack@eecs.umich.edu#include <algorithm> 964158Sgblack@eecs.umich.edu 974158Sgblack@eecs.umich.eduusing namespace X86ISA; 984158Sgblack@eecs.umich.edu}}; 994158Sgblack@eecs.umich.edu 1004158Sgblack@eecs.umich.eduoutput exec {{ 1014158Sgblack@eecs.umich.edu#if defined(linux) || defined(__APPLE__) 1024158Sgblack@eecs.umich.edu#include <fenv.h> 1034158Sgblack@eecs.umich.edu#endif 1044158Sgblack@eecs.umich.edu 1054158Sgblack@eecs.umich.edu#if defined(__sun) || defined (__OpenBSD__) 1064158Sgblack@eecs.umich.edu#include <ieeefp.h> 1074158Sgblack@eecs.umich.edu#endif 1084158Sgblack@eecs.umich.edu 1098229Snate@binkert.org#include <cmath> 1104158Sgblack@eecs.umich.edu#include <limits> 1114158Sgblack@eecs.umich.edu 1128857Sgblack@eecs.umich.edu#include "arch/generic/debugfaults.hh" 1138229Snate@binkert.org#include "arch/x86/regs/misc.hh" 1145659Sgblack@eecs.umich.edu#include "arch/x86/cpuid.hh" 1156336Sgblack@eecs.umich.edu#include "arch/x86/faults.hh" 1168442Sgblack@eecs.umich.edu#include "arch/x86/memhelpers.hh" 1175118Sgblack@eecs.umich.edu#include "arch/x86/tlb.hh" 1187969Sgblack@eecs.umich.edu#include "base/compiler.hh" 1196570Sgblack@eecs.umich.edu#include "base/condcodes.hh" 1204158Sgblack@eecs.umich.edu#include "cpu/base.hh" 1214158Sgblack@eecs.umich.edu#include "cpu/exetrace.hh" 1228232Snate@binkert.org#include "debug/X86.hh" 1234158Sgblack@eecs.umich.edu#include "mem/packet.hh" 1244158Sgblack@eecs.umich.edu#include "mem/packet_access.hh" 1255920Sgblack@eecs.umich.edu#include "mem/request.hh" 1265789Sgblack@eecs.umich.edu#include "sim/pseudo_inst.hh" 1278229Snate@binkert.org#include "sim/sim_exit.hh" 1284158Sgblack@eecs.umich.edu 1294158Sgblack@eecs.umich.eduusing namespace X86ISA; 1304158Sgblack@eecs.umich.eduusing namespace std; 1314158Sgblack@eecs.umich.edu}}; 1324158Sgblack@eecs.umich.edu 133