X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fhppa%2Fmacros.lisp;h=52b4e4b8112cb0c31d31343dc52671589c84f8ef;hb=e3113504fca73ebd1b992930315386d9d3ae5d18;hp=d3e807046b2ca6bb4660a71e898b557294c610f7;hpb=52cfe54802db8736f1f4e2b67764c43bba9b78b3;p=sbcl.git diff --git a/src/compiler/hppa/macros.lisp b/src/compiler/hppa/macros.lisp index d3e8070..52b4e4b 100644 --- a/src/compiler/hppa/macros.lisp +++ b/src/compiler/hppa/macros.lisp @@ -52,7 +52,7 @@ (:little-endian `(inst ldb ,offset ,source ,target)) (:big-endian - `(inst ldb (+ ,offset 3) ,source ,target)))) + `(inst ldb (+ ,offset (1- n-word-bytes)) ,source ,target)))) ;;; Macros to handle the fact that we cannot use the machine native call and ;;; return instructions. @@ -80,7 +80,7 @@ "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))) @@ -157,7 +157,7 @@ (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) "Cause an error. ERROR-CODE is the error to cause." @@ -367,7 +367,7 @@ (move value result)))))) -(defmacro sb!sys::with-pinned-objects ((&rest objects) &body body) +(def!macro with-pinned-objects ((&rest objects) &body body) "Arrange with the garbage collector that the pages occupied by OBJECTS will not be moved in memory for the duration of BODY. Useful for e.g. foreign calls where another thread may trigger