X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fmips%2Fmacros.lisp;h=da719e276b7a11b34d42c93c2a7474b315bf5ec0;hb=236acc699ec1b5996e04f3f30d2859803e54e5ea;hp=44d87ca41dbaab2ed17017f8dd0e4d7aff776ee6;hpb=489bb00dd20898eca10b62d32dd11e5cd79b96a2;p=sbcl.git diff --git a/src/compiler/mips/macros.lisp b/src/compiler/mips/macros.lisp index 44d87ca..da719e2 100644 --- a/src/compiler/mips/macros.lisp +++ b/src/compiler/mips/macros.lisp @@ -103,7 +103,7 @@ byte-ordering issues." #!+sb-doc "Emit a return-pc header word. LABEL is the label to use for this return-pc." `(progn - (align n-lowtag-bits) + (emit-alignment n-lowtag-bits) (emit-label ,label) (inst lra-header-word))) @@ -172,8 +172,7 @@ placed inside the PSEUDO-ATOMIC, and presumably initializes the object." ;; has a 1 bit in the same position, we're all set. Otherwise, ;; we need to subtract the pseudo-atomic bit. (inst or ,result-tn alloc-tn ,lowtag) - (unless (logbitp (1- n-lowtag-bits) ,lowtag) - (inst sub ,result-tn 1)) + (unless (logbitp 0 ,lowtag) (inst sub ,result-tn 1)) (inst li ,temp-tn (logior (ash (1- ,size) n-widetag-bits) ,type-code)) (storew ,temp-tn ,result-tn 0 ,lowtag) ,@body)))) @@ -203,8 +202,8 @@ placed inside the PSEUDO-ATOMIC, and presumably initializes the object." (:signed (inst slt temp x y))) (if not-p - (inst beq temp zero-tn target) - (inst bne temp zero-tn target))) + (inst beq temp target) + (inst bne temp target))) (:gt (ecase flavor (:unsigned @@ -212,8 +211,8 @@ placed inside the PSEUDO-ATOMIC, and presumably initializes the object." (:signed (inst slt temp y x))) (if not-p - (inst beq temp zero-tn target) - (inst bne temp zero-tn target)))) + (inst beq temp target) + (inst bne temp target)))) (inst nop)) @@ -238,7 +237,7 @@ placed inside the PSEUDO-ATOMIC, and presumably initializes the object." (inst byte (length ,vector)) (dotimes (i (length ,vector)) (inst byte (aref ,vector i)))) - (align word-shift))))) + (emit-alignment word-shift))))) (defmacro error-call (vop error-code &rest values) #!+sb-doc