| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- From 3f698a1cf08cc02911cdb2ca3217be77eeba794b Mon Sep 17 00:00:00 2001
- From: Kurt Mahan <[email protected]>
- Date: Tue, 27 Nov 2007 23:17:53 -0700
- Subject: [PATCH] Change inline assembly memory params.
- For various routines change how the assembly memory pointer
- is passed in.
- LTIBName: mcfv4e-inline-memory-params
- Signed-off-by: Kurt Mahan <[email protected]>
- ---
- include/asm-m68k/bitops.h | 68 ++++++++++++++++++++++++++++++++++++++++++++-
- 1 files changed, 67 insertions(+), 1 deletions(-)
- --- a/include/asm-m68k/bitops.h
- +++ b/include/asm-m68k/bitops.h
- @@ -465,7 +465,7 @@ static inline int ext2_find_next_bit(con
- __constant_coldfire_test_and_set_bit(nr, vaddr) : \
- __generic_coldfire_test_and_set_bit(nr, vaddr))
-
- -
- +#if 0
- static __inline__ int __constant_coldfire_test_and_set_bit(int nr,
- volatile void *vaddr)
- {
- @@ -477,6 +477,17 @@ static __inline__ int __constant_coldfir
- : "di" (nr & 7));
- return retval;
- }
- +#else
- +static __inline__ int __constant_coldfire_test_and_set_bit(int nr,volatile void * vaddr)
- +{
- + char retval;
- + volatile char *p = &((volatile char *)vaddr)[(nr^31) >> 3];
- + __asm__ __volatile__ ("bset %2,(%4); sne %0"
- + : "=d" (retval), "=m" (*p)
- + : "di" (nr & 7), "m" (*p), "a" (p));
- + return retval;
- +}
- +#endif
-
- static __inline__ int __generic_coldfire_test_and_set_bit(int nr,
- volatile void *vaddr)
- @@ -496,6 +507,7 @@ static __inline__ int __generic_coldfire
- __constant_coldfire_set_bit(nr, vaddr) : \
- __generic_coldfire_set_bit(nr, vaddr))
-
- +#if 0
- static __inline__ void __constant_coldfire_set_bit(int nr,
- volatile void *vaddr)
- {
- @@ -503,6 +515,14 @@ static __inline__ void __constant_coldfi
- __asm__ __volatile__ ("bset %1,%0"
- : "+QUd" (*p) : "di" (nr & 7));
- }
- +#else
- +static __inline__ void __constant_coldfire_set_bit(int nr, volatile void * vaddr)
- +{
- + volatile char *p = &((volatile char *)vaddr)[(nr^31) >> 3];
- + __asm__ __volatile__ ("bset %1,(%3)"
- + : "=m" (*p) : "di" (nr & 7), "m" (*p), "a" (p));
- +}
- +#endif
-
- static __inline__ void __generic_coldfire_set_bit(int nr, volatile void *vaddr)
- {
- @@ -518,6 +538,7 @@ static __inline__ void __generic_coldfir
- __constant_coldfire_test_and_clear_bit(nr, vaddr) : \
- __generic_coldfire_test_and_clear_bit(nr, vaddr))
-
- +#if 0
- static __inline__ int __constant_coldfire_test_and_clear_bit(int nr,
- volatile void *vaddr)
- {
- @@ -530,6 +551,19 @@ static __inline__ int __constant_coldfir
-
- return retval;
- }
- +#else
- +static __inline__ int __constant_coldfire_test_and_clear_bit(int nr, volatile void *vaddr)
- +{
- + char retval;
- + volatile char *p = &((volatile char *)vaddr)[(nr^31) >> 3];
- +
- + __asm__ __volatile__ ("bclr %2,(%4); sne %0"
- + : "=d" (retval), "=m" (*p)
- + : "id" (nr & 7), "m" (*p), "a" (p));
- +
- + return retval;
- +}
- +#endif
-
- static __inline__ int __generic_coldfire_test_and_clear_bit(int nr,
- volatile void *vaddr)
- @@ -556,6 +590,7 @@ static __inline__ int __generic_coldfire
- __constant_coldfire_clear_bit(nr, vaddr) : \
- __generic_coldfire_clear_bit(nr, vaddr))
-
- +#if 0
- static __inline__ void __constant_coldfire_clear_bit(int nr,
- volatile void *vaddr)
- {
- @@ -563,6 +598,14 @@ static __inline__ void __constant_coldfi
- __asm__ __volatile__ ("bclr %1,%0"
- : "+QUd" (*p) : "id" (nr & 7));
- }
- +#else
- +static __inline__ void __constant_coldfire_clear_bit(int nr, volatile void * vaddr)
- +{
- + volatile char *p = &((volatile char *)vaddr)[(nr^31) >> 3];
- + __asm__ __volatile__ ("bclr %1,(%3)"
- + : "=m" (*p) : "id" (nr & 7), "m" (*p), "a" (p));
- +}
- +#endif
-
- static __inline__ void __generic_coldfire_clear_bit(int nr,
- volatile void *vaddr)
- @@ -579,6 +622,7 @@ static __inline__ void __generic_coldfir
- __constant_coldfire_test_and_change_bit(nr, vaddr) : \
- __generic_coldfire_test_and_change_bit(nr, vaddr))
-
- +#if 0
- static __inline__ int __constant_coldfire_test_and_change_bit(int nr,
- volatile void *vaddr)
- {
- @@ -591,6 +635,19 @@ static __inline__ int __constant_coldfir
-
- return retval;
- }
- +#else
- +static __inline__ int __constant_coldfire_test_and_change_bit(int nr, volatile void * vaddr)
- +{
- + char retval;
- + volatile char *p = &((volatile char *)vaddr)[(nr^31) >> 3];
- +
- + __asm__ __volatile__ ("bchg %2,(%4); sne %0"
- + : "=d" (retval), "=m" (*p)
- + : "id" (nr & 7), "m" (*p), "a" (p));
- +
- + return retval;
- +}
- +#endif
-
- static __inline__ int __generic_coldfire_test_and_change_bit(int nr,
- volatile void *vaddr)
- @@ -612,6 +669,7 @@ static __inline__ int __generic_coldfire
- __constant_coldfire_change_bit(nr, vaddr) : \
- __generic_coldfire_change_bit(nr, vaddr))
-
- +#if 0
- static __inline__ void __constant_coldfire_change_bit(int nr,
- volatile void *vaddr)
- {
- @@ -619,6 +677,14 @@ static __inline__ void __constant_coldfi
- __asm__ __volatile__ ("bchg %1,%0"
- : "+QUd" (*p) : "id" (nr & 7));
- }
- +#else
- +static __inline__ void __constant_coldfire_change_bit(int nr, volatile void * vaddr)
- +{
- + volatile char *p = &((volatile char *)vaddr)[(nr^31) >> 3];
- + __asm__ __volatile__ ("bchg %1,(%3)"
- + : "=m" (*p) : "id" (nr & 7), "m" (*p), "a" (p));
- +}
- +#endif
-
- static __inline__ void __generic_coldfire_change_bit(int nr,
- volatile void *vaddr)
|