misc.isa (7203:39753c33e7aa) | misc.isa (7263:2eca996220d7) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 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 --- 63 unchanged lines hidden (view full) --- 72 return new MsrSpsrReg(machInst, rn, byteMask); 73 } 74 default: 75 return new Unknown(machInst); 76 } 77 } 78 ''' 79}}; | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 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 --- 63 unchanged lines hidden (view full) --- 72 return new MsrSpsrReg(machInst, rn, byteMask); 73 } 74 default: 75 return new Unknown(machInst); 76 } 77 } 78 ''' 79}}; |
80 81def format McrMrc15() {{ 82 decode_block = ''' 83 { 84 const uint32_t opc1 = bits(machInst, 23, 21); 85 const uint32_t crn = bits(machInst, 19, 16); 86 const uint32_t opc2 = bits(machInst, 7, 5); 87 const uint32_t crm = bits(machInst, 3, 0); 88 const MiscRegIndex miscReg = decodeCP15Reg(crn, opc1, crm, opc2); 89 const IntRegIndex rt = (IntRegIndex)(uint32_t)bits(machInst, 15, 12); 90 91 const bool isRead = bits(machInst, 20); 92 93 if (miscReg == MISCREG_NOP) { 94 return new NopInst(machInst); 95 } else if (miscReg == NUM_MISCREGS) { 96 return new Unknown(machInst); 97 } else { 98 if (isRead) { 99 return new Mrc15(machInst, rt, (IntRegIndex)miscReg); 100 } else { 101 return new Mcr15(machInst, (IntRegIndex)miscReg, rt); 102 } 103 } 104 } 105 ''' 106}}; |
|