diff options
author | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-14 13:56:10 +0000 |
---|---|---|
committer | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-14 13:56:10 +0000 |
commit | f4efd1660326ee85023c980abc533143dee8228d (patch) | |
tree | bcbd4a08db79499b7b0faba7829c69b43956d560 | |
parent | f48f3ede71a43520e0eb71756dc33052aab41837 (diff) |
Revert incorrect part of r4574 to avoid unaligned traps with i386 target
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5209 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r-- | cpu-all.h | 38 |
1 files changed, 0 insertions, 38 deletions
@@ -233,15 +233,6 @@ static inline int lduw_le_p(void *ptr) int val; __asm__ __volatile__ ("lhbrx %0,0,%1" : "=r" (val) : "r" (ptr)); return val; -#elif defined(__sparc__) -#ifndef ASI_PRIMARY_LITTLE -#define ASI_PRIMARY_LITTLE 0x88 -#endif - - int val; - __asm__ __volatile__ ("lduha [%1] %2, %0" : "=r" (val) : "r" (ptr), - "i" (ASI_PRIMARY_LITTLE)); - return val; #else uint8_t *p = ptr; return p[0] | (p[1] << 8); @@ -254,11 +245,6 @@ static inline int ldsw_le_p(void *ptr) int val; __asm__ __volatile__ ("lhbrx %0,0,%1" : "=r" (val) : "r" (ptr)); return (int16_t)val; -#elif defined(__sparc__) - int val; - __asm__ __volatile__ ("ldsha [%1] %2, %0" : "=r" (val) : "r" (ptr), - "i" (ASI_PRIMARY_LITTLE)); - return val; #else uint8_t *p = ptr; return (int16_t)(p[0] | (p[1] << 8)); @@ -271,11 +257,6 @@ static inline int ldl_le_p(void *ptr) int val; __asm__ __volatile__ ("lwbrx %0,0,%1" : "=r" (val) : "r" (ptr)); return val; -#elif defined(__sparc__) - int val; - __asm__ __volatile__ ("lduwa [%1] %2, %0" : "=r" (val) : "r" (ptr), - "i" (ASI_PRIMARY_LITTLE)); - return val; #else uint8_t *p = ptr; return p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); @@ -284,27 +265,17 @@ static inline int ldl_le_p(void *ptr) static inline uint64_t ldq_le_p(void *ptr) { -#if defined(__sparc__) - uint64_t val; - __asm__ __volatile__ ("ldxa [%1] %2, %0" : "=r" (val) : "r" (ptr), - "i" (ASI_PRIMARY_LITTLE)); - return val; -#else uint8_t *p = ptr; uint32_t v1, v2; v1 = ldl_le_p(p); v2 = ldl_le_p(p + 4); return v1 | ((uint64_t)v2 << 32); -#endif } static inline void stw_le_p(void *ptr, int v) { #ifdef __powerpc__ __asm__ __volatile__ ("sthbrx %1,0,%2" : "=m" (*(uint16_t *)ptr) : "r" (v), "r" (ptr)); -#elif defined(__sparc__) - __asm__ __volatile__ ("stha %1, [%2] %3" : "=m" (*(uint16_t *)ptr) : "r" (v), - "r" (ptr), "i" (ASI_PRIMARY_LITTLE)); #else uint8_t *p = ptr; p[0] = v; @@ -316,9 +287,6 @@ static inline void stl_le_p(void *ptr, int v) { #ifdef __powerpc__ __asm__ __volatile__ ("stwbrx %1,0,%2" : "=m" (*(uint32_t *)ptr) : "r" (v), "r" (ptr)); -#elif defined(__sparc__) - __asm__ __volatile__ ("stwa %1, [%2] %3" : "=m" (*(uint32_t *)ptr) : "r" (v), - "r" (ptr), "i" (ASI_PRIMARY_LITTLE)); #else uint8_t *p = ptr; p[0] = v; @@ -330,15 +298,9 @@ static inline void stl_le_p(void *ptr, int v) static inline void stq_le_p(void *ptr, uint64_t v) { -#if defined(__sparc__) - __asm__ __volatile__ ("stxa %1, [%2] %3" : "=m" (*(uint64_t *)ptr) : "r" (v), - "r" (ptr), "i" (ASI_PRIMARY_LITTLE)); -#undef ASI_PRIMARY_LITTLE -#else uint8_t *p = ptr; stl_le_p(p, (uint32_t)v); stl_le_p(p + 4, v >> 32); -#endif } /* float access */ |