summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/inorder_dyn_inst.cc
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2011-06-19 21:43:38 -0400
committerKorey Sewell <ksewell@umich.edu>2011-06-19 21:43:38 -0400
commitdb8b1e4b78b7f51b673f80d4f2a1e5f5c86d4446 (patch)
treeca55fe420ad974c39432eab352147f52c23e7f48 /src/cpu/inorder/inorder_dyn_inst.cc
parentc95fe261abab85bee247737a3d171378689891e0 (diff)
downloadgem5-db8b1e4b78b7f51b673f80d4f2a1e5f5c86d4446.tar.xz
inorder: treat SE mode syscalls as a trapping instruction
define a syscallContext to schedule the syscall and then use syscall() to actually perform the action
Diffstat (limited to 'src/cpu/inorder/inorder_dyn_inst.cc')
-rw-r--r--src/cpu/inorder/inorder_dyn_inst.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cpu/inorder/inorder_dyn_inst.cc b/src/cpu/inorder/inorder_dyn_inst.cc
index 1252ed6d1..ccde20da4 100644
--- a/src/cpu/inorder/inorder_dyn_inst.cc
+++ b/src/cpu/inorder/inorder_dyn_inst.cc
@@ -296,7 +296,8 @@ InOrderDynInst::simPalCheck(int palFunc)
void
InOrderDynInst::syscall(int64_t callnum)
{
- cpu->syscall(callnum, this->threadNumber);
+ syscallNum = callnum;
+ cpu->syscallContext(NoFault, this->threadNumber, this);
}
#endif