X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fassembly%2Falpha%2Farray.lisp;h=b67466a1307007d983559ce4af071f5551b47920;hb=df679ed627975948b1cee190f4d79c397588c43e;hp=1ab3057798542d1420d117326b38a059b9532c24;hpb=dfa55a883f94470267b626dae77ce7e7dfac3df6;p=sbcl.git diff --git a/src/assembly/alpha/array.lisp b/src/assembly/alpha/array.lisp index 1ab3057..b67466a 100644 --- a/src/assembly/alpha/array.lisp +++ b/src/assembly/alpha/array.lisp @@ -1,17 +1,14 @@ -;;; -*- Package: ALPHA -*- -;;; -;;; ********************************************************************** -;;; This code was written as part of the CMU Common Lisp project at -;;; Carnegie Mellon University, and has been placed in the public domain. -;;; -;;; -;;; ********************************************************************** -;;; -;;; This file contains the support routines for arrays and vectors. -;;; -;;; Written by William Lott. -;;; Conversion by Sean Hallgren -;;; +;;;; support routines for arrays and vectors + +;;;; This software is part of the SBCL system. See the README file for +;;;; more information. +;;;; +;;;; This software is derived from the CMU CL system, which was +;;;; written at Carnegie Mellon University and released into the +;;;; public domain. The software is in the public domain and is +;;;; provided with absolutely no warranty. See the COPYING and CREDITS +;;;; files for more information. + (in-package "SB!VM") @@ -29,21 +26,20 @@ (:temp ndescr non-descriptor-reg nl0-offset)) ;; This is kinda sleezy, changing words like this. But we can because ;; the vop thinks it is temporary. - (inst addq words (+ (1- (ash 1 lowtag-bits)) - (* vector-data-offset word-bytes)) + (inst addq words (+ (1- (ash 1 n-lowtag-bits)) + (* vector-data-offset n-word-bytes)) words) (inst li (lognot lowtag-mask) ndescr) (inst and words ndescr words) (inst srl type word-shift ndescr) (pseudo-atomic () - (inst bis alloc-tn other-pointer-type result) + (inst bis alloc-tn other-pointer-lowtag result) (inst addq alloc-tn words alloc-tn) - (storew ndescr result 0 other-pointer-type) - (storew length result vector-length-slot other-pointer-type))) - + (storew ndescr result 0 other-pointer-lowtag) + (storew length result vector-length-slot other-pointer-lowtag))) -;;;; Hash primitives +;;;; hash primitives #| (define-assembly-routine (sxhash-simple-string (:translate %sxhash-simple-string) @@ -65,7 +61,7 @@ (progn result lip accum data byte retaddr) (inst li (make-fixup 'sxhash-simple-substring :assembly-routine) temp1) - (loadw length string vector-length-slot other-pointer-type) + (loadw length string vector-length-slot other-pointer-lowtag) (inst jmp zero-tn temp1 (make-fixup 'sxhash-simple-substring :assembly-routine))) @@ -89,7 +85,7 @@ ;; Get a pointer to the data. (inst addq string - (- (* vector-data-offset word-bytes) other-pointer-type) + (- (* vector-data-offset n-word-bytes) other-pointer-lowtag) lip) (move zero-tn accum) (inst br zero-tn test)