summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorVisa Hankala <visa@cvs.openbsd.org>2019-06-30 07:37:48 +0000
committerVisa Hankala <visa@cvs.openbsd.org>2019-06-30 07:37:48 +0000
commit7684bf691d28822c2d6166aa9ce2b2599b54668d (patch)
tree1df6f26cd5c407c58cd04ecca51442f446a8b0b9 /sys
parente377d9143e7451d669686bbebde16bbd43555374 (diff)
Compute address for ll/sc only once.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/sgi/sgi/locore.S7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/arch/sgi/sgi/locore.S b/sys/arch/sgi/sgi/locore.S
index 46b3109d771..10703adb4a0 100644
--- a/sys/arch/sgi/sgi/locore.S
+++ b/sys/arch/sgi/sgi/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.18 2017/06/08 11:47:25 visa Exp $ */
+/* $OpenBSD: locore.S,v 1.19 2019/06/30 07:37:47 visa Exp $ */
/*
* Copyright (c) 2001-2004 Opsycon AB (www.opsycon.se / www.opsycon.com)
@@ -125,10 +125,11 @@ LEAF(ip27_cpu_spinup_trampoline, 0)
LA gp, _gp
/* Wait the turn of this CPU. */
-1: ll v0, ip27_spinup_turn
+ LA v1, ip27_spinup_turn
+1: ll v0, 0(v1)
bne v0, a0, 1b
not v0, zero
- sc v0, ip27_spinup_turn
+ sc v0, 0(v1)
beqz v0, 1b
nop