pseudo.hh revision 10611
110611SAndreas.Sandberg@ARM.com/* 210611SAndreas.Sandberg@ARM.com * Copyright (c) 2014 ARM Limited 310611SAndreas.Sandberg@ARM.com * All rights reserved 410611SAndreas.Sandberg@ARM.com * 510611SAndreas.Sandberg@ARM.com * The license below extends only to copyright in the software and shall 610611SAndreas.Sandberg@ARM.com * not be construed as granting a license to any other intellectual 710611SAndreas.Sandberg@ARM.com * property including but not limited to intellectual property relating 810611SAndreas.Sandberg@ARM.com * to a hardware implementation of the functionality of the software 910611SAndreas.Sandberg@ARM.com * licensed hereunder. You may use the software subject to the license 1010611SAndreas.Sandberg@ARM.com * terms below provided that you ensure that this notice is replicated 1110611SAndreas.Sandberg@ARM.com * unmodified and in its entirety in all distributions of the software, 1210611SAndreas.Sandberg@ARM.com * modified or unmodified, in source code or in binary form. 1310611SAndreas.Sandberg@ARM.com * 1410611SAndreas.Sandberg@ARM.com * Redistribution and use in source and binary forms, with or without 1510611SAndreas.Sandberg@ARM.com * modification, are permitted provided that the following conditions are 1610611SAndreas.Sandberg@ARM.com * met: redistributions of source code must retain the above copyright 1710611SAndreas.Sandberg@ARM.com * notice, this list of conditions and the following disclaimer; 1810611SAndreas.Sandberg@ARM.com * redistributions in binary form must reproduce the above copyright 1910611SAndreas.Sandberg@ARM.com * notice, this list of conditions and the following disclaimer in the 2010611SAndreas.Sandberg@ARM.com * documentation and/or other materials provided with the distribution; 2110611SAndreas.Sandberg@ARM.com * neither the name of the copyright holders nor the names of its 2210611SAndreas.Sandberg@ARM.com * contributors may be used to endorse or promote products derived from 2310611SAndreas.Sandberg@ARM.com * this software without specific prior written permission. 2410611SAndreas.Sandberg@ARM.com * 2510611SAndreas.Sandberg@ARM.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2610611SAndreas.Sandberg@ARM.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2710611SAndreas.Sandberg@ARM.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2810611SAndreas.Sandberg@ARM.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2910611SAndreas.Sandberg@ARM.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 3010611SAndreas.Sandberg@ARM.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 3110611SAndreas.Sandberg@ARM.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 3210611SAndreas.Sandberg@ARM.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 3310611SAndreas.Sandberg@ARM.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 3410611SAndreas.Sandberg@ARM.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 3510611SAndreas.Sandberg@ARM.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3610611SAndreas.Sandberg@ARM.com * 3710611SAndreas.Sandberg@ARM.com * Authors: Andreas Sandberg 3810611SAndreas.Sandberg@ARM.com */ 3910611SAndreas.Sandberg@ARM.com 4010611SAndreas.Sandberg@ARM.com#ifndef __ARCH_ARM_INSTS_PSEUDO_HH__ 4110611SAndreas.Sandberg@ARM.com#define __ARCH_ARM_INSTS_PSEUDO_HH__ 4210611SAndreas.Sandberg@ARM.com 4310611SAndreas.Sandberg@ARM.com#include "arch/arm/insts/static_inst.hh" 4410611SAndreas.Sandberg@ARM.com 4510611SAndreas.Sandberg@ARM.comclass DecoderFaultInst : public ArmStaticInst 4610611SAndreas.Sandberg@ARM.com{ 4710611SAndreas.Sandberg@ARM.com protected: 4810611SAndreas.Sandberg@ARM.com DecoderFault faultId; 4910611SAndreas.Sandberg@ARM.com 5010611SAndreas.Sandberg@ARM.com const char *faultName() const; 5110611SAndreas.Sandberg@ARM.com 5210611SAndreas.Sandberg@ARM.com public: 5310611SAndreas.Sandberg@ARM.com DecoderFaultInst(ExtMachInst _machInst); 5410611SAndreas.Sandberg@ARM.com 5510611SAndreas.Sandberg@ARM.com Fault execute(ExecContext *xc, Trace::InstRecord *traceData) const; 5610611SAndreas.Sandberg@ARM.com 5710611SAndreas.Sandberg@ARM.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 5810611SAndreas.Sandberg@ARM.com}; 5910611SAndreas.Sandberg@ARM.com 6010611SAndreas.Sandberg@ARM.com 6110611SAndreas.Sandberg@ARM.com#endif 62