1// Copyright (c) 2006 The Regents of The University of Michigan 2// All rights reserved. 3// 4// Redistribution and use in source and binary forms, with or without 5// modification, are permitted provided that the following conditions are 6// met: redistributions of source code must retain the above copyright 7// notice, this list of conditions and the following disclaimer; 8// redistributions in binary form must reproduce the above copyright --- 18 unchanged lines hidden (view full) --- 27// Authors: Gabe Black 28// Steve Reinhardt 29 30//////////////////////////////////////////////////////////////////// 31// 32// Nop instruction 33// 34 |
35// Per-cpu-model nop execute method. 36def template NopExec {{ 37 38 Fault execute(%(CPU_exec_context)s *xc, Trace::InstRecord *traceData) const 39 { 40 // Nothing to see here, move along 41 return NoFault; 42 } 43}}; 44 |
45output header {{ 46 /** 47 * Nop class. 48 */ 49 class Nop : public SparcStaticInst 50 { 51 public: 52 // Constructor 53 Nop(const char *mnem, ExtMachInst _machInst, OpClass __opClass) : 54 SparcStaticInst(mnem, _machInst, __opClass) 55 { 56 } 57 58 // All Nop instructions do the same thing, so this can be |
59 // defined here. Nops can be defined directly, so there 60 // needs to be a default implementation. Interpolate via 61 // template so i gets expanded to a set of 62 // cpu-model-specific functions. 63 %(NopExec)s |
64 65 std::string generateDisassembly(Addr pc, 66 const SymbolTable *symtab) const; 67 }; 68}}; 69 70output decoder {{ 71 std::string Nop::generateDisassembly(Addr pc, --- 27 unchanged lines hidden --- |