From 02f3b21c4249973d00298e6a84006f0ccfa46569 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Tue, 29 Aug 2006 16:07:22 -0400 Subject: [PATCH] Set both xcc.c and icc.c on return from a syscall. --HG-- extra : convert_revision : 9c2b32d735b816021cdd3af24002f309e22a8d64 --- src/arch/sparc/syscallreturn.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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()); } }