unknown.isa (2665:a124942bacb8) | unknown.isa (2686:f0d591379ac3) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2003-2005 The Regents of The University of Michigan 4// All rights reserved. 5// 6// Redistribution and use in source and binary forms, with or without 7// modification, are permitted provided that the following conditions are 8// met: redistributions of source code must retain the above copyright --- 20 unchanged lines hidden (view full) --- 29// Authors: Korey Sewell 30 31//////////////////////////////////////////////////////////////////// 32// 33// Unknown instructions 34// 35 36output header {{ | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2003-2005 The Regents of The University of Michigan 4// All rights reserved. 5// 6// Redistribution and use in source and binary forms, with or without 7// modification, are permitted provided that the following conditions are 8// met: redistributions of source code must retain the above copyright --- 20 unchanged lines hidden (view full) --- 29// Authors: Korey Sewell 30 31//////////////////////////////////////////////////////////////////// 32// 33// Unknown instructions 34// 35 36output header {{ |
37 std::string inst2string(MachInst machInst); 38}}; 39output decoder {{ 40 41std::string inst2string(MachInst machInst) 42{ 43 string str = ""; 44 uint32_t mask = 0x80000000; 45 46 for(int i=0; i < 32; i++) { 47 if ((machInst & mask) == 0) { 48 str += "0"; 49 } else { 50 str += "1"; | 37 /** 38 * Static instruction class for unknown (illegal) instructions. 39 * These cause simulator termination if they are executed in a 40 * non-speculative mode. This is a leaf class. 41 */ 42 class Unknown : public MipsStaticInst 43 { 44 public: 45 /// Constructor 46 Unknown(MachInst _machInst) 47 : MipsStaticInst("unknown", _machInst, No_OpClass) 48 { 49 // don't call execute() (which panics) if we're on a 50 // speculative path 51 flags[IsNonSpeculative] = true; |
51 } 52 | 52 } 53 |
53 mask = mask >> 1; 54 } | 54 %(BasicExecDeclare)s |
55 | 55 |
56 return str; 57} | 56 std::string 57 generateDisassembly(Addr pc, const SymbolTable *symtab) const; 58 }; 59}}; |
58 | 60 |
61output decoder {{ |
|
59 std::string 60 Unknown::generateDisassembly(Addr pc, const SymbolTable *symtab) const 61 { 62 return csprintf("%-10s (inst 0x%x, opcode 0x%x, binary:%s)", 63 "unknown", machInst, OPCODE, inst2string(machInst)); 64 } 65}}; 66 --- 15 unchanged lines hidden --- | 62 std::string 63 Unknown::generateDisassembly(Addr pc, const SymbolTable *symtab) const 64 { 65 return csprintf("%-10s (inst 0x%x, opcode 0x%x, binary:%s)", 66 "unknown", machInst, OPCODE, inst2string(machInst)); 67 } 68}}; 69 --- 15 unchanged lines hidden --- |