mips: Explicitly truncate the syscall return value down to 32 bits.
authorGabe Black <gabeblack@google.com>
Sat, 13 Oct 2018 06:09:07 +0000 (23:09 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 6 Nov 2018 00:35:20 +0000 (00:35 +0000)
The IntReg type is 32 bits, and using it to cast the syscall return
value is appropriate, but we're attempting to get rid of the ISA
specific register types.

Change-Id: I42496dd2cc086a6b718e1ce087fef81bb897d02f
Reviewed-on: https://gem5-review.googlesource.com/c/13619
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

src/arch/mips/process.cc

index 3f65691aa98866d16b78d3372d755f8e9573c9f5..6bae08392c703292d95757455f5c919a8bf7aae9 100644 (file)
@@ -224,7 +224,7 @@ MipsProcess::setSyscallReturn(ThreadContext *tc, SyscallReturn sysret)
         tc->setIntReg(ReturnValueReg, sysret.returnValue());
     } else {
         // got an error, return details
-        tc->setIntReg(SyscallSuccessReg, (IntReg) -1);
+        tc->setIntReg(SyscallSuccessReg, (uint32_t)(-1));
         tc->setIntReg(ReturnValueReg, sysret.errnoValue());
     }
 }