Support for MacOS X (Rhapsody) is added. Also get rid of volatile

qualifier in asm definitions as it prevents compiler from moving
the instruction(s) during optimization pass.
This commit is contained in:
Andy Polyakov
2000-02-06 11:15:20 +00:00
parent 7cf6e2a35b
commit 0fad6cb7e7
4 changed files with 17 additions and 6 deletions

View File

@@ -200,16 +200,16 @@
*/
# if defined(__i386)
# define ROTATE(a,n) ({ register unsigned int ret; \
asm volatile ( \
asm ( \
"roll %1,%0" \
: "=r"(ret) \
: "I"(n), "0"(a) \
: "cc"); \
ret; \
})
# elif defined(__powerpc)
# elif defined(__powerpc) || defined(__ppc)
# define ROTATE(a,n) ({ register unsigned int ret; \
asm volatile ( \
asm ( \
"rlwinm %0,%1,%2,0,31" \
: "=r"(ret) \
: "r"(a), "I"(n)); \
@@ -226,14 +226,14 @@
/* some GNU C inline assembler templates by <appro@fy.chalmers.se> */
# if defined(__i386) && !defined(I386_ONLY)
# define BE_FETCH32(a) ({ register unsigned int l=(a);\
asm volatile ( \
asm ( \
"bswapl %0" \
: "=r"(l) : "0"(l)); \
l; \
})
# elif defined(__powerpc)
# define LE_FETCH32(a) ({ register unsigned int l; \
asm volatile ( \
asm ( \
"lwbrx %0,0,%1" \
: "=r"(l) \
: "r"(a)); \
@@ -242,7 +242,7 @@
# elif defined(__sparc) && defined(ULTRASPARC)
# define LE_FETCH32(a) ({ register unsigned int l; \
asm volatile ( \
asm ( \
"lda [%1]#ASI_PRIMARY_LITTLE,%0"\
: "=r"(l) \
: "r"(a)); \