Fix build on x86-64/darwin.
authorAlastair Bridgewater <nyef@virtdev-1.lisphacker.com>
Fri, 21 Oct 2011 16:06:01 +0000 (12:06 -0400)
committerAlastair Bridgewater <nyef@virtdev-1.lisphacker.com>
Fri, 21 Oct 2011 16:09:41 +0000 (12:09 -0400)
  * It turns out that darwin preprocesses assembly files slightly
differently from every other platform.  Possibly something related
to the rather VMSish -fdollars-in-identifiers option to gcc.

  * Use parens to break the preprocessor "macro" we're trying to
use away from the dollar-sign literal-constant marker it's getting
merged with.

  * Reported by nikodemus in #sbcl.

src/runtime/x86-64-assem.S

index e2bc331..52321bf 100644 (file)
@@ -194,7 +194,7 @@ Lstack:
        xor     %rdx,%rdx       # clear any descriptor registers 
        xor     %rdi,%rdi       # that we can't be sure we'll 
        xor     %rsi,%rsi       # initialise properly.  XX do r8-r15 too?
-       shl     $N_FIXNUM_TAG_BITS,%rcx # (fixnumize num-args)
+       shl     $(N_FIXNUM_TAG_BITS),%rcx       # (fixnumize num-args)
        cmp     $0,%rcx
        je      Ldone
        mov     0(%rbx),%rdx    # arg0