Changeset 9175


Ignore:
Timestamp:
Apr 17, 2008, 6:36:08 PM (11 years ago)
Author:
rme
Message:

x8632 conditionalization

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/level-1/x86-threads-utils.lisp

    r5067 r9175  
    4242
    4343(defun catch-frame-sp (catch)
    44   (uvref catch x8664::catch-frame.rbp-cell))
     44  (uvref catch
     45         #+x8632-target x8632::catch-frame.ebp-cell
     46         #+x8664-target x8664::catch-frame.rbp-cell))
    4547
    4648;;; Sure would be nice to have &optional in defppclapfunction arglists
     
    100102
    101103
    102 
     104#+x8632-target
     105(defun valid-subtag-p (subtag)
     106  (declare (fixnum subtag))
     107  (let* ((tagval (ldb (byte (- x8632::num-subtag-bits x8632::ntagbits) x8632::ntagbits) subtag)))
     108    (declare (fixnum tagval))
     109    (case (logand subtag x8632::fulltagmask)
     110      (#. x8632::fulltag-immheader (not (eq (%svref *immheader-types* tagval) 'bogus)))
     111      (#. x8632::fulltag-nodeheader (not (eq (%svref *nodeheader-types* tagval) 'bogus)))
     112      (t nil))))
     113
     114#+x8664-target
    103115(defun valid-subtag-p (subtag)
    104116  (declare (fixnum subtag))
     
    120132               (t 'bogus))))))
    121133
     134#+x8632-target
     135(defun valid-header-p (thing)
     136  (let* ((fulltag (fulltag thing)))
     137    (declare (fixnum fulltag))
     138    (case fulltag
     139      (#.x8632::fulltag-misc (valid-subtag-p (typecode thing)))
     140      ((#.x8632::fulltag-immheader #.x8632::fulltag-nodeheader) nil)
     141      (t t))))
     142
     143#+x8664-target
    122144(defun valid-header-p (thing)
    123145  (let* ((fulltag (fulltag thing)))
     
    145167      (t nil))))
    146168             
    147      
    148                                      
    149                
    150 
    151 
     169#+x8632-target
     170(defun bogus-thing-p (x)
     171  (when x
     172    (or (not (valid-header-p x))
     173        (let ((tag (lisptag x))
     174              (fulltag (fulltag x)))
     175          (unless (or (eql tag x8632::tag-fixnum)
     176                      (eql tag x8632::tag-imm)
     177                      (in-any-consing-area-p x)
     178                      (temporary-cons-p x)
     179                      (and (or (typep x 'function)
     180                               (typep x 'gvector))
     181                           (on-any-tsp-stack x))
     182                      (and (eql fulltag x8632::fulltag-tra)
     183                           (eql 0 (%return-address-offset x)))
     184                      (and (typep x 'ivector)
     185                           (on-any-csp-stack x))
     186                      (%heap-ivector-p x))
     187            t)))))
     188
     189#+x8664-target
    152190(defun bogus-thing-p (x)
    153191  (when x
Note: See TracChangeset for help on using the changeset viewer.