diff options
author | Harald Koerfgen <hkoerfg@web.de> | 1999-05-01 10:08:18 +0000 |
---|---|---|
committer | Harald Koerfgen <hkoerfg@web.de> | 1999-05-01 10:08:18 +0000 |
commit | 94f05bab9bf52258637e467fd89ae4f168736f4a (patch) | |
tree | 5d086ca4de449e2e2146171d274f1a5c8a722e39 /include | |
parent | 22ee0f26ee9026be3ef67b9229ebfab26e1f6fb0 (diff) |
The CPO_STATUS interrupt mask patch
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-mips/stackframe.h | 7 | ||||
-rw-r--r-- | include/asm-mips/system.h | 10 |
2 files changed, 14 insertions, 3 deletions
diff --git a/include/asm-mips/stackframe.h b/include/asm-mips/stackframe.h index 726e82f23..4b3a74043 100644 --- a/include/asm-mips/stackframe.h +++ b/include/asm-mips/stackframe.h @@ -3,7 +3,7 @@ * * Copyright (C) 1994, 1995, 1996 by Ralf Baechle and Paul M. Antoine. * - * $Id: stackframe.h,v 1.7 1998/04/28 19:39:15 ralf Exp $ + * $Id: stackframe.h,v 1.7 1998/05/04 09:13:01 ralf Exp $ */ #ifndef __ASM_MIPS_STACKFRAME_H #define __ASM_MIPS_STACKFRAME_H @@ -139,7 +139,12 @@ ori t0, 0x1f; \ xori t0, 0x1f; \ mtc0 t0, CP0_STATUS; \ + li v1, 0xff00; \ + and t0, v1; \ lw v0, PT_STATUS(sp); \ + nor v1, $0, v1; \ + and v0, v1; \ + or v0, t0; \ mtc0 v0, CP0_STATUS; \ lw v1, PT_EPC(sp); \ mtc0 v1, CP0_EPC; \ diff --git a/include/asm-mips/system.h b/include/asm-mips/system.h index 49f5f2aad..6e41a7635 100644 --- a/include/asm-mips/system.h +++ b/include/asm-mips/system.h @@ -1,4 +1,4 @@ -/* $Id: system.h,v 1.7 1998/08/25 09:22:03 ralf Exp $ +/* $Id: system.h,v 1.8 1999/02/15 02:22:13 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -88,6 +88,12 @@ __restore_flags(int flags) { __asm__ __volatile__( ".set\tnoreorder\n\t" + "mfc0\t$8,$12\n\t" + "li\t$9,0xff00\n\t" + "and\t$8,$9\n\t" + "nor\t$9,$0,$9\n\t" + "and\t%0,$9\n\t" + "or\t%0,$8\n\t" "mtc0\t%0,$12\n\t" "nop\n\t" "nop\n\t" @@ -95,7 +101,7 @@ __restore_flags(int flags) ".set\treorder" : /* no output */ : "r" (flags) - : "memory"); + : "$8", "$9", "memory"); } /* |