* [Linux-ia64] 2.4.14 Missing asm clobbers
@ 2001-11-21 0:40 Keith Owens
2001-11-21 1:37 ` David Mosberger
2001-11-26 23:12 ` David Mosberger
0 siblings, 2 replies; 3+ messages in thread
From: Keith Owens @ 2001-11-21 0:40 UTC (permalink / raw)
To: linux-ia64
A comment of Linus's on l-k promoted me to check ia64 inline asm for
predicates. I was surprised to find what look like missing asm
clobbers. I am not 100% sure that these are errors (gcc clobbers are a
black art ;) so there is no patch.
include/asm-ia64/spinlock.h.
spin_lock() changes ar.ccv, p7 without a clobber (!NEW_LOCK version).
read_lock() changes p6 without a clobber.
write_lock() changes ar.ccv, p7 without a clobber.
arch/ia64/kernel/traps.c
fp_emulate() does ldf f10, f11 without a clobber.
arch/ia64/kernel/unaligned.c
invala_gr() and invala_fr() do invala without a "memory" clobber.
Not sure if it is necessary or not.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Linux-ia64] 2.4.14 Missing asm clobbers
2001-11-21 0:40 [Linux-ia64] 2.4.14 Missing asm clobbers Keith Owens
@ 2001-11-21 1:37 ` David Mosberger
2001-11-26 23:12 ` David Mosberger
1 sibling, 0 replies; 3+ messages in thread
From: David Mosberger @ 2001-11-21 1:37 UTC (permalink / raw)
To: linux-ia64
Thanks for reporting on this. I'm certain some of asm need to be
fixed given not-so-recent compiler developments, though I'm not aware
of there being any real problems in this area at the moment. I'll
look into it next week.
--david
>>>>> On Wed, 21 Nov 2001 11:40:56 +1100, Keith Owens <kaos@ocs.com.au> said:
Keith> A comment of Linus's on l-k promoted me to check ia64 inline
Keith> asm for predicates. I was surprised to find what look like
Keith> missing asm clobbers. I am not 100% sure that these are
Keith> errors (gcc clobbers are a black art ;) so there is no patch.
Keith> include/asm-ia64/spinlock.h.
Keith> spin_lock() changes ar.ccv, p7 without a clobber (!NEW_LOCK
Keith> version). read_lock() changes p6 without a clobber.
Keith> write_lock() changes ar.ccv, p7 without a clobber.
Keith> arch/ia64/kernel/traps.c
Keith> fp_emulate() does ldf f10, f11 without a clobber.
Keith> arch/ia64/kernel/unaligned.c
Keith> invala_gr() and invala_fr() do invala without a "memory"
Keith> clobber. Not sure if it is necessary or not.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Linux-ia64] 2.4.14 Missing asm clobbers
2001-11-21 0:40 [Linux-ia64] 2.4.14 Missing asm clobbers Keith Owens
2001-11-21 1:37 ` David Mosberger
@ 2001-11-26 23:12 ` David Mosberger
1 sibling, 0 replies; 3+ messages in thread
From: David Mosberger @ 2001-11-26 23:12 UTC (permalink / raw)
To: linux-ia64
>>>>> On Wed, 21 Nov 2001 11:40:56 +1100, Keith Owens <kaos@ocs.com.au> said:
Keith> include/asm-ia64/spinlock.h.
Keith> spin_lock() changes ar.ccv, p7 without a clobber (!NEW_LOCK
Keith> version). read_lock() changes p6 without a clobber.
Keith> write_lock() changes ar.ccv, p7 without a clobber.
Ok, those should be fixed now. They clearly are needed, though I
don't think the missing ar.ccv really had any effect because gcc uses
that register only for the builtin synchronization ops use them (which
we don't use in the kernel).
Keith> arch/ia64/kernel/traps.c
Keith> fp_emulate() does ldf f10, f11 without a clobber.
That's fine because f10 and f11 are marked "fixed" on the command
line.
Keith> arch/ia64/kernel/unaligned.c
Keith> invala_gr() and invala_fr() do invala without a "memory"
Keith> clobber. Not sure if it is necessary or not.
This is fine because the instructions affect the code that caused the
unaliged access, not the unaligned handler itself. However, we
shouldn't need that code anymore because we now do an "invala" on
entry to the kernel. I'll remove it in 2.5.xx.
Thanks,
--david
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2001-11-26 23:12 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-11-21 0:40 [Linux-ia64] 2.4.14 Missing asm clobbers Keith Owens
2001-11-21 1:37 ` David Mosberger
2001-11-26 23:12 ` David Mosberger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox