From: Gabe Black Date: Tue, 29 Aug 2006 20:07:22 +0000 (-0400) Subject: Set both xcc.c and icc.c on return from a syscall. X-Git-Tag: m5_2.0_beta2~117^2~10 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=02f3b21c4249973d00298e6a84006f0ccfa46569;p=gem5.git Set both xcc.c and icc.c on return from a syscall. --HG-- extra : convert_revision : 9c2b32d735b816021cdd3af24002f309e22a8d64 --- diff --git a/src/arch/sparc/syscallreturn.hh b/src/arch/sparc/syscallreturn.hh index d850f4b65..75a063da1 100644 --- a/src/arch/sparc/syscallreturn.hh +++ b/src/arch/sparc/syscallreturn.hh @@ -79,11 +79,11 @@ namespace SparcISA // and put the return value itself in the standard return value reg (). if (return_value.successful()) { // no error, clear XCC.C - regs->setMiscReg(MISCREG_CCR, regs->readMiscReg(MISCREG_CCR) & 0xEF); + regs->setMiscReg(MISCREG_CCR, regs->readMiscReg(MISCREG_CCR) & 0xEE); regs->setIntReg(ReturnValueReg, return_value.value()); } else { // got an error, set XCC.C - regs->setMiscReg(MISCREG_CCR, regs->readMiscReg(MISCREG_CCR) | 0x10); + regs->setMiscReg(MISCREG_CCR, regs->readMiscReg(MISCREG_CCR) | 0x11); regs->setIntReg(ReturnValueReg, return_value.value()); } }