diff options
Diffstat (limited to 'src/cpu/inorder')
-rw-r--r-- | src/cpu/inorder/inorder_dyn_inst.cc | 22 | ||||
-rw-r--r-- | src/cpu/inorder/inorder_dyn_inst.hh | 7 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/cpu/inorder/inorder_dyn_inst.cc b/src/cpu/inorder/inorder_dyn_inst.cc index 18281e636..c64cf9da4 100644 --- a/src/cpu/inorder/inorder_dyn_inst.cc +++ b/src/cpu/inorder/inorder_dyn_inst.cc @@ -602,3 +602,25 @@ InOrderDynInst::dump(std::string &outstring) outstring = s.str(); } + +void +InOrderDynInst::armMonitor(Addr address) { + cpu->armMonitor(address); +} + +bool +InOrderDynInst::mwait(PacketPtr pkt) { + return cpu->mwait(pkt); +} + +void +InOrderDynInst::mwaitAtomic(ThreadContext *tc) +{ + return cpu->mwaitAtomic(tc, cpu->getDTBPtr()); +} + +AddressMonitor * +InOrderDynInst::getAddrMonitor() +{ + return cpu->getCpuAddrMonitor(); +} diff --git a/src/cpu/inorder/inorder_dyn_inst.hh b/src/cpu/inorder/inorder_dyn_inst.hh index 369ebe2f4..ebb7bf912 100644 --- a/src/cpu/inorder/inorder_dyn_inst.hh +++ b/src/cpu/inorder/inorder_dyn_inst.hh @@ -1077,6 +1077,13 @@ class InOrderDynInst : public ExecContext, public RefCounted void demapPage(Addr vaddr, uint64_t asn) { panic("demapPage unimplemented"); } + + public: + // monitor/mwait funtions + void armMonitor(Addr address); + bool mwait(PacketPtr pkt); + void mwaitAtomic(ThreadContext *tc); + AddressMonitor *getAddrMonitor(); }; |