ChangeSet 1.2181.24.1, 2005/03/18 22:22:06-08:00, [EMAIL PROTECTED]
[SPARC64]: Eliminate g5 register usage in semaphore support code.
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
semaphore.c | 76 +++++++++++++++++++++++-------------------------------------
1 files changed, 30 insertions(+), 46 deletions(-)
diff -Nru a/arch/sparc64/kernel/semaphore.c b/arch/sparc64/kernel/semaphore.c
--- a/arch/sparc64/kernel/semaphore.c 2005-04-03 21:10:07 -07:00
+++ b/arch/sparc64/kernel/semaphore.c 2005-04-03 21:10:07 -07:00
@@ -65,30 +65,25 @@
__asm__ __volatile__("\n"
" ! up sem(%0)\n"
" membar #StoreLoad | #LoadLoad\n"
-"1: lduw [%0], %%g5\n"
-" add %%g5, 1, %%g7\n"
-" cas [%0], %%g5, %%g7\n"
-" cmp %%g5, %%g7\n"
+"1: lduw [%0], %%g1\n"
+" add %%g1, 1, %%g7\n"
+" cas [%0], %%g1, %%g7\n"
+" cmp %%g1, %%g7\n"
" bne,pn %%icc, 1b\n"
" addcc %%g7, 1, %%g0\n"
" ble,pn %%icc, 3f\n"
" membar #StoreLoad | #StoreStore\n"
"2:\n"
" .subsection 2\n"
-"3: mov %0, %%g5\n"
+"3: mov %0, %%g1\n"
" save %%sp, -160, %%sp\n"
-" mov %%g1, %%l1\n"
-" mov %%g2, %%l2\n"
-" mov %%g3, %%l3\n"
" call %1\n"
-" mov %%g5, %%o0\n"
-" mov %%l1, %%g1\n"
-" mov %%l2, %%g2\n"
+" mov %%g1, %%o0\n"
" ba,pt %%xcc, 2b\n"
-" restore %%l3, %%g0, %%g3\n"
+" restore\n"
" .previous\n"
: : "r" (sem), "i" (__up)
- : "g5", "g7", "memory", "cc");
+ : "g1", "g2", "g3", "g7", "memory", "cc");
}
static void __sched __down(struct semaphore * sem)
@@ -127,30 +122,25 @@
__asm__ __volatile__("\n"
" ! down sem(%0)\n"
-"1: lduw [%0], %%g5\n"
-" sub %%g5, 1, %%g7\n"
-" cas [%0], %%g5, %%g7\n"
-" cmp %%g5, %%g7\n"
+"1: lduw [%0], %%g1\n"
+" sub %%g1, 1, %%g7\n"
+" cas [%0], %%g1, %%g7\n"
+" cmp %%g1, %%g7\n"
" bne,pn %%icc, 1b\n"
" cmp %%g7, 1\n"
" bl,pn %%icc, 3f\n"
" membar #StoreLoad | #StoreStore\n"
"2:\n"
" .subsection 2\n"
-"3: mov %0, %%g5\n"
+"3: mov %0, %%g1\n"
" save %%sp, -160, %%sp\n"
-" mov %%g1, %%l1\n"
-" mov %%g2, %%l2\n"
-" mov %%g3, %%l3\n"
" call %1\n"
-" mov %%g5, %%o0\n"
-" mov %%l1, %%g1\n"
-" mov %%l2, %%g2\n"
+" mov %%g1, %%o0\n"
" ba,pt %%xcc, 2b\n"
-" restore %%l3, %%g0, %%g3\n"
+" restore\n"
" .previous\n"
: : "r" (sem), "i" (__down)
- : "g5", "g7", "memory", "cc");
+ : "g1", "g2", "g3", "g7", "memory", "cc");
}
int down_trylock(struct semaphore *sem)
@@ -175,20 +165,20 @@
__asm__ __volatile__("\n"
" ! down_trylock sem(%1) ret(%0)\n"
-"1: lduw [%1], %%g5\n"
-" sub %%g5, 1, %%g7\n"
-" cmp %%g5, 1\n"
+"1: lduw [%1], %%g1\n"
+" sub %%g1, 1, %%g7\n"
+" cmp %%g1, 1\n"
" bl,pn %%icc, 2f\n"
" mov 1, %0\n"
-" cas [%1], %%g5, %%g7\n"
-" cmp %%g5, %%g7\n"
+" cas [%1], %%g1, %%g7\n"
+" cmp %%g1, %%g7\n"
" bne,pn %%icc, 1b\n"
" mov 0, %0\n"
" membar #StoreLoad | #StoreStore\n"
"2:\n"
: "=&r" (ret)
: "r" (sem)
- : "g5", "g7", "memory", "cc");
+ : "g1", "g7", "memory", "cc");
return ret;
}
@@ -237,31 +227,25 @@
__asm__ __volatile__("\n"
" ! down_interruptible sem(%2) ret(%0)\n"
-"1: lduw [%2], %%g5\n"
-" sub %%g5, 1, %%g7\n"
-" cas [%2], %%g5, %%g7\n"
-" cmp %%g5, %%g7\n"
+"1: lduw [%2], %%g1\n"
+" sub %%g1, 1, %%g7\n"
+" cas [%2], %%g1, %%g7\n"
+" cmp %%g1, %%g7\n"
" bne,pn %%icc, 1b\n"
" cmp %%g7, 1\n"
" bl,pn %%icc, 3f\n"
" membar #StoreLoad | #StoreStore\n"
"2:\n"
" .subsection 2\n"
-"3: mov %2, %%g5\n"
+"3: mov %2, %%g1\n"
" save %%sp, -160, %%sp\n"
-" mov %%g1, %%l1\n"
-" mov %%g2, %%l2\n"
-" mov %%g3, %%l3\n"
" call %3\n"
-" mov %%g5, %%o0\n"
-" mov %%l1, %%g1\n"
-" mov %%l2, %%g2\n"
-" mov %%l3, %%g3\n"
+" mov %%g1, %%o0\n"
" ba,pt %%xcc, 2b\n"
-" restore %%o0, %%g0, %0\n"
+" restore\n"
" .previous\n"
: "=r" (ret)
: "0" (ret), "r" (sem), "i" (__down_interruptible)
- : "g5", "g7", "memory", "cc");
+ : "g1", "g2", "g3", "g7", "memory", "cc");
return ret;
}
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html