arm.isa (7344:82a4e24e7fad) | arm.isa (7350:41e3ee23125e) |
---|---|
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 --- 72 unchanged lines hidden (view full) --- 81 0x1: decode IS_MISC { 82 0: ArmDataProcImm::armDataProcImm(); 83 1: decode OPCODE { 84 // The following two instructions aren't supposed to be defined 85 0x8: DataOp::movw({{ Rd = IMMED_11_0 | (RN << 12) ; }}); 86 0x9: decode RN { 87 0: decode IMM { 88 0: PredImmOp::nop({{ ; }}); | 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 --- 72 unchanged lines hidden (view full) --- 81 0x1: decode IS_MISC { 82 0: ArmDataProcImm::armDataProcImm(); 83 1: decode OPCODE { 84 // The following two instructions aren't supposed to be defined 85 0x8: DataOp::movw({{ Rd = IMMED_11_0 | (RN << 12) ; }}); 86 0x9: decode RN { 87 0: decode IMM { 88 0: PredImmOp::nop({{ ; }}); |
89 1: WarnUnimpl::yield(); 90 2: WarnUnimpl::wfe(); 91 3: WarnUnimpl::wfi(); 92 4: WarnUnimpl::sev(); | 89#if FULL_SYSTEM 90 1: PredImmOp::yield({{ ; }}); 91 2: PredImmOp::wfe({{ 92 if (SevMailbox) 93 SevMailbox = 0; 94 else 95 PseudoInst::quiesce(xc->tcBase()); 96 }}, IsNonSpeculative, IsQuiesce); 97 3: PredImmOp::wfi({{ 98 PseudoInst::quiesce(xc->tcBase()); 99 }}, IsNonSpeculative, IsQuiesce); 100 4: PredImmOp::sev({{ 101 // Need a way for O3 to not scoreboard these 102 // accesses as pipeflushs 103 System *sys = xc->tcBase()->getSystemPtr(); 104 for (int x = 0; x < sys->numContexts(); x++) { 105 ThreadContext *oc = sys->getThreadContext(x); 106 oc->setMiscReg(MISCREG_SEV_MAILBOX, 1); 107 } 108 }}); 109#endif |
93 } 94 default: PredImmOp::msr_i_cpsr({{ 95 uint32_t newCpsr = 96 cpsrWriteByInstr(Cpsr | CondCodes, 97 rotated_imm, RN, false); 98 Cpsr = ~CondCodesMask & newCpsr; 99 CondCodes = CondCodesMask & newCpsr; 100 }}); --- 71 unchanged lines hidden --- | 110 } 111 default: PredImmOp::msr_i_cpsr({{ 112 uint32_t newCpsr = 113 cpsrWriteByInstr(Cpsr | CondCodes, 114 rotated_imm, RN, false); 115 Cpsr = ~CondCodesMask & newCpsr; 116 CondCodes = CondCodesMask & newCpsr; 117 }}); --- 71 unchanged lines hidden --- |