[S390] Inline assembly cleanup.
Major cleanup of all s390 inline assemblies. They now have a common coding style. Quite a few have been shortened, mainly by using register asm variables. Use of the EX_TABLE macro helps as well. The atomic ops, bit ops and locking inlines new use the Q-constraint if a newer gcc is used. That results in slightly better code. Thanks to Christian Borntraeger for proof reading the changes. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
@@ -351,10 +351,12 @@ void __init time_init(void)
|
||||
int cc;
|
||||
|
||||
/* kick the TOD clock */
|
||||
asm volatile ("STCK 0(%1)\n\t"
|
||||
"IPM %0\n\t"
|
||||
"SRL %0,28" : "=r" (cc) : "a" (&init_timer_cc)
|
||||
: "memory", "cc");
|
||||
asm volatile(
|
||||
" stck 0(%2)\n"
|
||||
" ipm %0\n"
|
||||
" srl %0,28"
|
||||
: "=d" (cc), "=m" (init_timer_cc)
|
||||
: "a" (&init_timer_cc) : "cc");
|
||||
switch (cc) {
|
||||
case 0: /* clock in set state: all is fine */
|
||||
break;
|
||||
|
Reference in New Issue
Block a user