diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2011-12-30 12:31:00 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2011-12-30 12:31:00 +0000 |
commit | f5a79a196e245d6be44d5aee982af2703193d6fc (patch) | |
tree | 157cb1e0e0f8f5454ca53c2f5c879a76d35d13dc /sys/arch | |
parent | 054f7b9f2fe14def3e5aeb89697bf8cd094e4dcf (diff) |
Fix encoding of DIAG instructions in the MFCPU_T and MTCPU_T macros. MTCPU_T
was encoded as a read instruction, while MFCPU_T was encoded as a
read-through-TH instruction, although the only uses of it concern registers
read through CH.
(You are not supposed to understand this, this is a dark corner of undocumented
rotten PA-RISC bowels).
Cache SID hashing will now correctly be disabled on PCXS, PCXT and PCXT'
processors.
Proper encoding from the old PA-RISC mklinux sources; tested on 720 (PCXS)
and 715/75 (PCXT); ok kettenis@
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/hppa/hppa/locore.S | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/arch/hppa/hppa/locore.S b/sys/arch/hppa/hppa/locore.S index c016365e85f..57caf5df921 100644 --- a/sys/arch/hppa/hppa/locore.S +++ b/sys/arch/hppa/hppa/locore.S @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.S,v 1.188 2011/11/08 15:39:50 kettenis Exp $ */ +/* $OpenBSD: locore.S,v 1.189 2011/12/30 12:30:59 miod Exp $ */ /* * Copyright (c) 1998-2004 Michael Shalayeff @@ -80,8 +80,8 @@ */ #define DR_PAGE0 .word 0x14001200 #define DR_PAGE1 .word 0x14001240 -#define MTCPU_T(x,t) .word 0x14001400 | ((t) << 21) | ((x) << 16) -#define MFCPU_T(r,x) .word 0x14001400 | ((r) << 21) | (x) +#define MTCPU_T(x,t) .word 0x14001600 | ((t) << 21) | ((x) << 16) +#define MFCPU_T(r,x) .word 0x14001a00 | ((r) << 21) | ((x) << 16) #define MTCPU_C(x,t) .word 0x14000240 | ((t) << 21) | ((x) << 16) #define MFCPU_C(r,x) .word 0x14000600 | ((r) << 21) | ((x) << 16) #define MFCPU_U(r,x) .word 0x140008a0 | ((r) << 21) | ((x)) @@ -1840,7 +1840,7 @@ $trapnowvirt nop EXIT(TLABEL(all)) -#if defined(HP7000_CPU) || defined(HP7100_CPU) +#if defined(HP7000_CPU) /* * void desidhash_s(void) */ @@ -1862,9 +1862,9 @@ LEAF_ENTRY(desidhash_s) bv 0(rp) extru t1, 4, 5, ret0 /* return chip revision */ EXIT(desidhash_s) -#endif /* HP7000_CPU || HP7100_CPU */ +#endif /* HP7000_CPU */ -#ifdef HP7200_CPU +#if defined(HP7100_CPU) || defined(HP7200_CPU) /* * void desidhash_t(void) */ @@ -1886,7 +1886,7 @@ LEAF_ENTRY(desidhash_t) bv 0(rp) extru t1, 4, 5, ret0 /* return chip revision */ EXIT(desidhash_t) -#endif /* HP7200_CPU */ +#endif /* HP7100_CPU || HP7200_CPU */ #ifdef HP7300LC_CPU .data |