diff --git a/src/sim/syscall_desc.cc b/src/sim/syscall_desc.cc index 345bfa1149..bf378fe20b 100644 --- a/src/sim/syscall_desc.cc +++ b/src/sim/syscall_desc.cc @@ -81,7 +81,7 @@ SyscallDesc::doSyscall(int callnum, ThreadContext *tc, Fault *fault) } else DPRINTF_SYSCALL(Base, "%s returns %d\n", _name, retval.encodedValue()); - if (!(_flags & SyscallDesc::SuppressReturnValue) && !retval.needsRetry()) + if (!retval.suppressed() && !retval.needsRetry()) process->setSyscallReturn(tc, retval); } diff --git a/src/sim/syscall_emul.hh b/src/sim/syscall_emul.hh index fc6ed62d15..e467b0bff4 100644 --- a/src/sim/syscall_emul.hh +++ b/src/sim/syscall_emul.hh @@ -2131,7 +2131,6 @@ template SyscallReturn execveFunc(SyscallDesc *desc, int callnum, ThreadContext *tc) { - desc->setFlags(0); auto p = tc->getProcessPtr(); int index = 0; @@ -2215,8 +2214,7 @@ execveFunc(SyscallDesc *desc, int callnum, ThreadContext *tc) TheISA::PCState pcState = tc->pcState(); tc->setNPC(pcState.instAddr()); - desc->setFlags(SyscallDesc::SuppressReturnValue); - return 0; + return SyscallReturn(); } /// Target getrusage() function.