summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2011-12-30 12:31:00 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2011-12-30 12:31:00 +0000
commitf5a79a196e245d6be44d5aee982af2703193d6fc (patch)
tree157cb1e0e0f8f5454ca53c2f5c879a76d35d13dc /sys
parent054f7b9f2fe14def3e5aeb89697bf8cd094e4dcf (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')
-rw-r--r--sys/arch/hppa/hppa/locore.S14
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