From 9a000c51736d97c1109be296ea7d1fd41d84debb Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Fri, 27 Feb 2009 09:22:14 -0800 Subject: Processes: Make getting and setting system call arguments part of a process object. --- src/cpu/inorder/cpu.cc | 26 -------------------------- src/cpu/inorder/cpu.hh | 9 --------- src/cpu/inorder/thread_context.cc | 18 ------------------ src/cpu/inorder/thread_context.hh | 9 --------- 4 files changed, 62 deletions(-) (limited to 'src/cpu/inorder') diff --git a/src/cpu/inorder/cpu.cc b/src/cpu/inorder/cpu.cc index adbf645f4..c22dd1154 100644 --- a/src/cpu/inorder/cpu.cc +++ b/src/cpu/inorder/cpu.cc @@ -1281,32 +1281,6 @@ InOrderCPU::syscall(int64_t callnum, int tid) nonSpecInstActive[tid] = false; } -IntReg -InOrderCPU::getSyscallArg(int idx, int tid) -{ - return readIntReg(ArgumentReg0 + idx, tid); -} - -void -InOrderCPU::setSyscallArg(int idx, IntReg val, int tid) -{ - setIntReg(ArgumentReg0 + idx, val, tid); -} - -void -InOrderCPU::setSyscallReturn(SyscallReturn return_value, int tid) -{ - if (return_value.successful()) { - // no error - setIntReg(SyscallSuccessReg, 0, tid); - setIntReg(ReturnValueReg, return_value.value(), tid); - } else { - // got an error, return details - setIntReg(SyscallSuccessReg, (IntReg) -1, tid); - setIntReg(ReturnValueReg, -return_value.value(), tid); - } -} - Fault InOrderCPU::read(DynInstPtr inst) { diff --git a/src/cpu/inorder/cpu.hh b/src/cpu/inorder/cpu.hh index 4a7dfb404..e27687a72 100644 --- a/src/cpu/inorder/cpu.hh +++ b/src/cpu/inorder/cpu.hh @@ -511,15 +511,6 @@ class InOrderCPU : public BaseCPU /** Executes a syscall.*/ void syscall(int64_t callnum, int tid); - /** Gets a syscall argument. */ - IntReg getSyscallArg(int i, int tid); - - /** Used to shift args for indirect syscall. */ - void setSyscallArg(int i, IntReg val, int tid); - - /** Sets the return value of a syscall. */ - void setSyscallReturn(SyscallReturn return_value, int tid); - public: /** Per-Thread List of all the instructions in flight. */ std::list instList[ThePipeline::MaxThreads]; diff --git a/src/cpu/inorder/thread_context.cc b/src/cpu/inorder/thread_context.cc index 2470ee676..13f8ecdad 100644 --- a/src/cpu/inorder/thread_context.cc +++ b/src/cpu/inorder/thread_context.cc @@ -262,21 +262,3 @@ InOrderThreadContext::setMiscReg(int misc_reg, const MiscReg &val) { cpu->setMiscReg(misc_reg, val, thread->readTid()); } - -TheISA::IntReg -InOrderThreadContext::getSyscallArg(int i) -{ - return cpu->getSyscallArg(i, thread->readTid()); -} - -void -InOrderThreadContext::setSyscallArg(int i, IntReg val) -{ - cpu->setSyscallArg(i, val, thread->readTid()); -} - -void -InOrderThreadContext::setSyscallReturn(SyscallReturn return_value) -{ - cpu->setSyscallReturn(return_value, thread->readTid()); -} diff --git a/src/cpu/inorder/thread_context.hh b/src/cpu/inorder/thread_context.hh index 708dcf6b3..dce150b47 100644 --- a/src/cpu/inorder/thread_context.hh +++ b/src/cpu/inorder/thread_context.hh @@ -236,15 +236,6 @@ class InOrderThreadContext : public ThreadContext * misspeculating, this is set as false. */ virtual bool misspeculating() { return false; } - /** Gets a syscall argument by index. */ - virtual IntReg getSyscallArg(int i); - - /** Sets a syscall argument. */ - virtual void setSyscallArg(int i, IntReg val); - - /** Sets the syscall return value. */ - virtual void setSyscallReturn(SyscallReturn return_value); - /** Executes a syscall in SE mode. */ virtual void syscall(int64_t callnum) { return cpu->syscall(callnum, thread->readTid()); } -- cgit v1.2.3