Change MIPS's setSyscallReturn to use a thread context.
--HG-- extra : convert_revision : 618f8404ec5380615e28170d761b2fcdf9c07d96
This commit is contained in:
parent
a3f351ab59
commit
4d8a0541dd
|
@ -33,19 +33,21 @@
|
||||||
#define __ARCH_MIPS_SYSCALLRETURN_HH__
|
#define __ARCH_MIPS_SYSCALLRETURN_HH__
|
||||||
|
|
||||||
#include "sim/syscallreturn.hh"
|
#include "sim/syscallreturn.hh"
|
||||||
|
#include "cpu/thread_context.hh"
|
||||||
|
|
||||||
namespace MipsISA
|
namespace MipsISA
|
||||||
{
|
{
|
||||||
static inline void setSyscallReturn(SyscallReturn return_value, RegFile *regs)
|
static inline void setSyscallReturn(SyscallReturn return_value,
|
||||||
|
ThreadContext *tc)
|
||||||
{
|
{
|
||||||
if (return_value.successful()) {
|
if (return_value.successful()) {
|
||||||
// no error
|
// no error
|
||||||
regs->setIntReg(SyscallSuccessReg, 0);
|
tc->setIntReg(SyscallSuccessReg, 0);
|
||||||
regs->setIntReg(ReturnValueReg1, return_value.value());
|
tc->setIntReg(ReturnValueReg1, return_value.value());
|
||||||
} else {
|
} else {
|
||||||
// got an error, return details
|
// got an error, return details
|
||||||
regs->setIntReg(SyscallSuccessReg, (IntReg) -1);
|
tc->setIntReg(SyscallSuccessReg, (IntReg) -1);
|
||||||
regs->setIntReg(ReturnValueReg1, -return_value.value());
|
tc->setIntReg(ReturnValueReg1, -return_value.value());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue