-#else LANGUAGE_ASSEMBLY
-
-/* These are needed by assem.S. */
-
-#ifdef mips
-#define EXTERN(name,bytes) .extern name bytes
-#endif
-#ifdef sparc
-#ifdef SVR4
-#define EXTERN(name,bytes) .global name
-#else
-#define EXTERN(name,bytes) .global _ ## name
-#endif
-#endif
-#ifdef ibmrt
-#define EXTERN(name,bytes) .globl _/**/name
-#endif
-
-#ifdef alpha
-#ifdef linux
-#define EXTERN(name,bytes) .globl name
-#endif
-#endif
-
-/* I'm very dubious about this. Linux hasn't used _ on external names
- * since ELF became prevalent - i.e. about 1996, on x86 -dan 20010125 */
-#ifdef __i386__
-#ifdef __linux__
-#define EXTERN(name,bytes) .globl _/**/name
-#else
-#define EXTERN(name,bytes) .global _ ## name
-#endif
-#endif
+#else /* LANGUAGE_ASSEMBLY */
+
+# ifdef LISP_FEATURE_MIPS
+# ifdef __linux__
+# define EXTERN(name,bytes) .globl name
+# else
+# define EXTERN(name,bytes) .extern name bytes
+# endif
+# endif
+/**/
+# ifdef LISP_FEATURE_SPARC
+# ifdef SVR4
+# define EXTERN(name,bytes) .global name
+# else
+# define EXTERN(name,bytes) .global _ ## name
+# endif
+# endif
+/**/
+# ifdef LISP_FEATURE_ALPHA
+# ifdef __linux__
+# define EXTERN(name,bytes) .globl name
+# endif
+# endif
+/**/
+# ifdef LISP_FEATURE_PPC
+# ifdef LISP_FEATURE_DARWIN
+# define EXTERN(name,bytes) .globl _/**/name
+# else
+# define EXTERN(name,bytes) .globl name
+# endif
+# endif
+/**/
+# if defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64)
+# define EXTERN(name,bytes) .global name
+# endif
+
+# if defined(LISP_FEATURE_ALPHA) || defined(LISP_FEATURE_X86_64)
+# define POINTERSIZE 8
+# else
+# define POINTERSIZE 4
+# endif