svn commit: r216996 - in stable/8/sys/sparc64: include sparc64
Marius Strobl
marius at FreeBSD.org
Wed Jan 5 12:05:27 UTC 2011
Author: marius
Date: Wed Jan 5 12:05:27 2011
New Revision: 216996
URL: http://svn.freebsd.org/changeset/base/216996
Log:
MFC: r216628
Extend the hack of r182730 to trick GAS/GCC into compiling access to
STICK/STICK_COMPARE independently of the selected instruction set by
TICK_COMPARE so tick.c once again can be compiled with gcc -mcpu=v9
for reference purposes.
Modified:
stable/8/sys/sparc64/include/cpufunc.h
stable/8/sys/sparc64/sparc64/tick.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
Modified: stable/8/sys/sparc64/include/cpufunc.h
==============================================================================
--- stable/8/sys/sparc64/include/cpufunc.h Wed Jan 5 11:49:23 2011 (r216995)
+++ stable/8/sys/sparc64/include/cpufunc.h Wed Jan 5 12:05:27 2011 (r216996)
@@ -174,11 +174,13 @@ int fasword32(u_long asi, void *addr, ui
} while (0)
/*
- * Trick GAS/GCC into compiling access to STICK/STICK_COMPARE independently
+ * Trick GAS/GCC into compiling access to TICK/(S)TICK_COMPARE independently
* of the selected instruction set.
*/
+#define rdtickcmpr() rd(asr23)
#define rdstick() rd(asr24)
#define rdstickcmpr() rd(asr25)
+#define wrtickcmpr(val, xor) wr(asr23, (val), (xor))
#define wrstick(val, xor) wr(asr24, (val), (xor))
#define wrstickcmpr(val, xor) wr(asr25, (val), (xor))
@@ -191,7 +193,7 @@ int fasword32(u_long asi, void *addr, ui
* aligned to a quadword boundary in order to ensure that I$ misses won't
* split them up.
*/
-#define wrtickcmpr(val, xor) ({ \
+#define wrtickcmpr_bbwar(val, xor) ({ \
__asm __volatile( \
" ba,pt %%xcc, 1f ; " \
" nop ; " \
Modified: stable/8/sys/sparc64/sparc64/tick.c
==============================================================================
--- stable/8/sys/sparc64/sparc64/tick.c Wed Jan 5 11:49:23 2011 (r216995)
+++ stable/8/sys/sparc64/sparc64/tick.c Wed Jan 5 12:05:27 2011 (r216996)
@@ -222,7 +222,7 @@ tick_hardclock(struct trapframe *tf)
adj = PCPU_GET(tickadj);
s = intr_disable();
tick = rd(tick);
- wr(tick_cmpr, tick + tick_increment - adj, 0);
+ wrtickcmpr(tick + tick_increment - adj, 0);
intr_restore(s);
tick_hardclock_common(tf, tick, adj);
critical_exit();
@@ -238,7 +238,7 @@ tick_hardclock_bbwar(struct trapframe *t
adj = PCPU_GET(tickadj);
s = intr_disable();
tick = rd(tick);
- wrtickcmpr(tick + tick_increment - adj, 0);
+ wrtickcmpr_bbwar(tick + tick_increment - adj, 0);
intr_restore(s);
tick_hardclock_common(tf, tick, adj);
critical_exit();
More information about the svn-src-stable-8
mailing list