diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2006-09-28 10:56:43 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2006-09-28 10:56:43 -0400 |
commit | 94c12cc7d196bab34aaa98d38521549fa1e5ef76 (patch) | |
tree | 8e0cec0ed44445d74a2cb5160303d6b4dfb1bc31 /arch/s390/kernel/time.c | |
parent | 25d83cbfaa44e1b9170c0941c3ef52ca39f54ccc (diff) |
[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>
Diffstat (limited to 'arch/s390/kernel/time.c')
-rw-r--r-- | arch/s390/kernel/time.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index 74e6178fbaf2..1981c6199fa2 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
@@ -351,10 +351,12 @@ void __init time_init(void) | |||
351 | int cc; | 351 | int cc; |
352 | 352 | ||
353 | /* kick the TOD clock */ | 353 | /* kick the TOD clock */ |
354 | asm volatile ("STCK 0(%1)\n\t" | 354 | asm volatile( |
355 | "IPM %0\n\t" | 355 | " stck 0(%2)\n" |
356 | "SRL %0,28" : "=r" (cc) : "a" (&init_timer_cc) | 356 | " ipm %0\n" |
357 | : "memory", "cc"); | 357 | " srl %0,28" |
358 | : "=d" (cc), "=m" (init_timer_cc) | ||
359 | : "a" (&init_timer_cc) : "cc"); | ||
358 | switch (cc) { | 360 | switch (cc) { |
359 | case 0: /* clock in set state: all is fine */ | 361 | case 0: /* clock in set state: all is fine */ |
360 | break; | 362 | break; |