misc64.isa (12488:19af27d8b34d) | misc64.isa (12531:3141027bd11a) |
---|---|
1// -*- mode:c++ -*- 2 | 1// -*- mode:c++ -*- 2 |
3// Copyright (c) 2011-2013, 2016-2017 ARM Limited | 3// Copyright (c) 2011-2013, 2016-2018 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 9// to a hardware implementation of the functionality of the software 10// licensed hereunder. You may use the software subject to the license 11// terms below provided that you ensure that this notice is replicated --- 157 unchanged lines hidden (view full) --- 169 bits(machInst, 20, 5)); 170 ''' 171 172 brkIop = InstObjParams("brk", "Brk64", "ArmStaticInst", 173 brkCode, ["IsSerializeAfter"]) 174 header_output += BasicDeclare.subst(brkIop) 175 decoder_output += BasicConstructor64.subst(brkIop) 176 exec_output += BasicExecute.subst(brkIop) | 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 9// to a hardware implementation of the functionality of the software 10// licensed hereunder. You may use the software subject to the license 11// terms below provided that you ensure that this notice is replicated --- 157 unchanged lines hidden (view full) --- 169 bits(machInst, 20, 5)); 170 ''' 171 172 brkIop = InstObjParams("brk", "Brk64", "ArmStaticInst", 173 brkCode, ["IsSerializeAfter"]) 174 header_output += BasicDeclare.subst(brkIop) 175 decoder_output += BasicConstructor64.subst(brkIop) 176 exec_output += BasicExecute.subst(brkIop) |
177 178 hltCode = ''' 179 ThreadContext *tc = xc->tcBase(); 180 if (ArmSystem::haveSemihosting(tc) && bits(machInst, 20, 5) == 0xF000) { 181 X0 = ArmSystem::callSemihosting64(tc, X0 & mask(32), X1); 182 } else { 183 // HLT instructions aren't implemented, so treat them as undefined 184 // instructions. 185 fault = std::make_shared<UndefinedInstruction>( 186 machInst, false, mnemonic); 187 } 188 189 ''' 190 191 hltIop = InstObjParams("hlt", "Hlt64", "ArmStaticInst", 192 hltCode, ["IsNonSpeculative"]) 193 header_output += BasicDeclare.subst(hltIop) 194 decoder_output += BasicConstructor64.subst(hltIop) 195 exec_output += BasicExecute.subst(hltIop) |
|
177}}; | 196}}; |