X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fearly-assem.lisp;h=317b100981e94f0c40b4af4d06d886ac0d0384bc;hb=7f579b076a1fc54587538ead07e506e7f06f3fe8;hp=13e756ad27b72cbec01e2233c21fb0ae9a5ed83c;hpb=8731c1a7c1a585d190151fa881050fb5e14c0616;p=sbcl.git diff --git a/src/compiler/early-assem.lisp b/src/compiler/early-assem.lisp index 13e756a..317b100 100644 --- a/src/compiler/early-assem.lisp +++ b/src/compiler/early-assem.lisp @@ -31,21 +31,21 @@ (def!constant assembly-unit-bits 8) (def!constant assembly-unit-mask (1- (ash 1 assembly-unit-bits))) -(deftype assembly-unit () +(def!type assembly-unit () `(unsigned-byte ,assembly-unit-bits)) ;;; Some functions which accept assembly units can meaningfully accept ;;; signed values with the same number of bits and silently munge them ;;; into appropriate unsigned values. (This is handy behavior e.g. ;;; when assembling branch instructions on the X86.) -(deftype possibly-signed-assembly-unit () +(def!type possibly-signed-assembly-unit () `(or assembly-unit (signed-byte ,assembly-unit-bits))) ;;; the maximum alignment we can guarantee given the object format. If ;;; the loader only loads objects 8-byte aligned, we can't do any ;;; better then that ourselves. -(def!constant max-alignment 3) +(def!constant max-alignment sb!vm:n-lowtag-bits) -(deftype alignment () +(def!type alignment () `(integer 0 ,max-alignment))