misc.isa (8628:764346848617) | misc.isa (8733:64a7bf8fa56c) |
---|---|
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 --- 511 unchanged lines hidden (view full) --- 520 // and SEV interrupts 521 SevMailbox = 1; 522#endif 523 ''' 524 wfeIop = InstObjParams("wfe", "WfeInst", "PredOp", \ 525 { "code" : wfeCode, 526 "pred_fixup" : wfePredFixUpCode, 527 "predicate_test" : predicateTest }, | 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 --- 511 unchanged lines hidden (view full) --- 520 // and SEV interrupts 521 SevMailbox = 1; 522#endif 523 ''' 524 wfeIop = InstObjParams("wfe", "WfeInst", "PredOp", \ 525 { "code" : wfeCode, 526 "pred_fixup" : wfePredFixUpCode, 527 "predicate_test" : predicateTest }, |
528 ["IsNonSpeculative", "IsQuiesce", "IsSerializeAfter"]) | 528 ["IsNonSpeculative", "IsQuiesce", 529 "IsSerializeAfter", "IsUnverifiable"]) |
529 header_output += BasicDeclare.subst(wfeIop) 530 decoder_output += BasicConstructor.subst(wfeIop) 531 exec_output += QuiescePredOpExecuteWithFixup.subst(wfeIop) 532 533 wfiCode = ''' 534#if FULL_SYSTEM 535 // WFI doesn't sleep if interrupts are pending (masked or not) 536 if (xc->tcBase()->getCpuPtr()->getInterruptController()->checkRaw()) { 537 PseudoInst::quiesceSkip(xc->tcBase()); 538 } else { 539 PseudoInst::quiesce(xc->tcBase()); 540 } 541#endif 542 ''' 543 wfiIop = InstObjParams("wfi", "WfiInst", "PredOp", \ 544 { "code" : wfiCode, "predicate_test" : predicateTest }, | 530 header_output += BasicDeclare.subst(wfeIop) 531 decoder_output += BasicConstructor.subst(wfeIop) 532 exec_output += QuiescePredOpExecuteWithFixup.subst(wfeIop) 533 534 wfiCode = ''' 535#if FULL_SYSTEM 536 // WFI doesn't sleep if interrupts are pending (masked or not) 537 if (xc->tcBase()->getCpuPtr()->getInterruptController()->checkRaw()) { 538 PseudoInst::quiesceSkip(xc->tcBase()); 539 } else { 540 PseudoInst::quiesce(xc->tcBase()); 541 } 542#endif 543 ''' 544 wfiIop = InstObjParams("wfi", "WfiInst", "PredOp", \ 545 { "code" : wfiCode, "predicate_test" : predicateTest }, |
545 ["IsNonSpeculative", "IsQuiesce", "IsSerializeAfter"]) | 546 ["IsNonSpeculative", "IsQuiesce", 547 "IsSerializeAfter", "IsUnverifiable"]) |
546 header_output += BasicDeclare.subst(wfiIop) 547 decoder_output += BasicConstructor.subst(wfiIop) 548 exec_output += QuiescePredOpExecute.subst(wfiIop) 549 550 sevCode = ''' 551#if FULL_SYSTEM 552 SevMailbox = 1; 553 System *sys = xc->tcBase()->getSystemPtr(); --- 6 unchanged lines hidden (view full) --- 560 // Post Interrupt and wake cpu if needed 561 oc->getCpuPtr()->postInterrupt(INT_SEV, 0); 562 } 563 } 564#endif 565 ''' 566 sevIop = InstObjParams("sev", "SevInst", "PredOp", \ 567 { "code" : sevCode, "predicate_test" : predicateTest }, | 548 header_output += BasicDeclare.subst(wfiIop) 549 decoder_output += BasicConstructor.subst(wfiIop) 550 exec_output += QuiescePredOpExecute.subst(wfiIop) 551 552 sevCode = ''' 553#if FULL_SYSTEM 554 SevMailbox = 1; 555 System *sys = xc->tcBase()->getSystemPtr(); --- 6 unchanged lines hidden (view full) --- 562 // Post Interrupt and wake cpu if needed 563 oc->getCpuPtr()->postInterrupt(INT_SEV, 0); 564 } 565 } 566#endif 567 ''' 568 sevIop = InstObjParams("sev", "SevInst", "PredOp", \ 569 { "code" : sevCode, "predicate_test" : predicateTest }, |
568 ["IsNonSpeculative", "IsSquashAfter"]) | 570 ["IsNonSpeculative", "IsSquashAfter", "IsUnverifiable"]) |
569 header_output += BasicDeclare.subst(sevIop) 570 decoder_output += BasicConstructor.subst(sevIop) 571 exec_output += PredOpExecute.subst(sevIop) 572 573 itIop = InstObjParams("it", "ItInst", "PredOp", \ 574 { "code" : ";", 575 "predicate_test" : predicateTest }, 576 ["IsNonSpeculative", "IsSerializeAfter"]) --- 230 unchanged lines hidden --- | 571 header_output += BasicDeclare.subst(sevIop) 572 decoder_output += BasicConstructor.subst(sevIop) 573 exec_output += PredOpExecute.subst(sevIop) 574 575 itIop = InstObjParams("it", "ItInst", "PredOp", \ 576 { "code" : ";", 577 "predicate_test" : predicateTest }, 578 ["IsNonSpeculative", "IsSerializeAfter"]) --- 230 unchanged lines hidden --- |