From: James S. <jsi...@us...> - 2002-02-19 17:25:27
|
Update of /cvsroot/linux-mips/linux/include/asm-mips64 In directory usw-pr-cvs1:/tmp/cvs-serv29634/asm-mips64 Modified Files: mipsregs.h Log Message: Add pagemask and shift values for 64mb and 256mb pages. For mips64 implement get_xcontext() and set_xcontext() to access c0_xcontext. For mips32 remove pointless comment. Index: mipsregs.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/mipsregs.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- mipsregs.h 28 Jan 2002 20:32:05 -0000 1.9 +++ mipsregs.h 19 Feb 2002 17:25:25 -0000 1.10 @@ -149,34 +149,40 @@ #include <linux/config.h> #ifdef CONFIG_CPU_VR41XX -#define PM_1K 0x00000000 -#define PM_4K 0x00001800 -#define PM_16K 0x00007800 -#define PM_64K 0x0001f800 -#define PM_256K 0x0007f800 +/* Why doesn't stupidity hurt ... */ + +#define PM_1K 0x00000000 +#define PM_4K 0x00001800 +#define PM_16K 0x00007800 +#define PM_64K 0x0001f800 +#define PM_256K 0x0007f800 #else -#define PM_4K 0x00000000 -#define PM_16K 0x00006000 -#define PM_64K 0x0001e000 -#define PM_256K 0x0007e000 -#define PM_1M 0x001fe000 -#define PM_4M 0x007fe000 -#define PM_16M 0x01ffe000 +#define PM_4K 0x00000000 +#define PM_16K 0x00006000 +#define PM_64K 0x0001e000 +#define PM_256K 0x0007e000 +#define PM_1M 0x001fe000 +#define PM_4M 0x007fe000 +#define PM_16M 0x01ffe000 +#define PM_64M 0x07ffe000 +#define PM_256M 0x1fffe000 #endif /* * Values used for computation of new tlb entries */ -#define PL_4K 12 -#define PL_16K 14 -#define PL_64K 16 -#define PL_256K 18 -#define PL_1M 20 -#define PL_4M 22 -#define PL_16M 24 +#define PL_4K 12 +#define PL_16K 14 +#define PL_64K 16 +#define PL_256K 18 +#define PL_1M 20 +#define PL_4M 22 +#define PL_16M 24 +#define PL_64M 26 +#define PL_256M 28 /* * R4x00 interrupt enable / cause bits @@ -743,7 +749,6 @@ : : "Jr" (val)); } -/* CP0_CONTEXT register */ static inline unsigned long get_context(void) { unsigned long val; @@ -762,6 +767,28 @@ __asm__ __volatile__( ".set noreorder\n\t" "dmtc0 %z0, $4\n\t" + ".set reorder" + : : "Jr" (val)); +} + +static inline unsigned long get_xcontext(void) +{ + unsigned long val; + + __asm__ __volatile__( + ".set noreorder\n\t" + "dmfc0 %0, $20\n\t" + ".set reorder" + : "=r" (val)); + + return val; +} + +static inline void set_xcontext(unsigned long val) +{ + __asm__ __volatile__( + ".set noreorder\n\t" + "dmtc0 %z0, $20\n\t" ".set reorder" : : "Jr" (val)); } |