1// -*- mode:c++ -*- 2 3// Copyright (c) 2011 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 28 unchanged lines hidden (view full) --- 37// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 38// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 39// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 40// 41// Authors: Stephen Hines 42 43// Declarations for execute() methods. 44def template BasicExecDeclare {{ |
45 Fault execute(ExecContext *, Trace::InstRecord *) const; |
46}}; 47 48// Basic instruction class declaration template. 49def template BasicDeclare {{ 50 /** 51 * Static instruction class for "%(mnemonic)s". 52 */ 53 class %(class_name)s : public %(base_class)s --- 23 unchanged lines hidden (view full) --- 77 { 78 %(constructor)s; 79 } 80}}; 81 82 83// Basic instruction class execute method template. 84def template BasicExecute {{ |
85 Fault %(class_name)s::execute( 86 ExecContext *xc, Trace::InstRecord *traceData) const |
87 { 88 Fault fault = NoFault; 89 90 %(op_decl)s; 91 %(op_rd)s; 92 %(code)s; 93 94 if (fault == NoFault) --- 11 unchanged lines hidden (view full) --- 106 107// Basic decode template, passing mnemonic in as string arg to constructor. 108def template BasicDecodeWithMnemonic {{ 109 return new %(class_name)s("%(mnemonic)s", machInst); 110}}; 111 112// Definitions of execute methods that panic. 113def template BasicExecPanic {{ |
114Fault execute(ExecContext *, Trace::InstRecord *) const |
115{ 116 panic("Execute method called when it shouldn't!"); 117 // GCC < 4.3 fail to recognize the above panic as no return 118 return NoFault; 119} 120}}; |