Changeset 10619


Ignore:
Timestamp:
Sep 6, 2008, 7:42:59 PM (12 years ago)
Author:
gz
Message:

sync

Location:
branches/gz
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/gz/compiler/PPC/ppc-arch.lisp

    r8417 r10619  
    483483         (defppcsubprim .SPpoweropen-ffcall-return-registers)
    484484         (defppcsubprim .SPnmkunwind)
    485          (defppcsubprim .SPunused-6)
     485         (defppcsubprim .SPset-hash-key-conditional)
    486486         (defppcsubprim .SPunbind-interrupt-level)
    487487         (defppcsubprim .SPunbind)
  • branches/gz/compiler/X86/X8632/x8632-arch.lisp

    r10332 r10619  
    10051005         (defx8632subprim .SPffcall-return-registers)
    10061006         (defx8632subprim .SPaset1)
    1007          (defx8632subprim .SPunused-6)
     1007         (defx8632subprim .SPset-hash-key-conditional)
    10081008         (defx8632subprim .SPunbind-interrupt-level)
    10091009         (defx8632subprim .SPunbind)
  • branches/gz/compiler/X86/X8664/x8664-arch.lisp

    r10185 r10619  
    11081108         (defx8664subprim .SPffcall-return-registers)
    11091109         (defx8664subprim .SPunused-5)
    1110          (defx8664subprim .SPunused-6)
     1110         (defx8664subprim .SPset-hash-key-conditional)
    11111111         (defx8664subprim .SPunbind-interrupt-level)
    11121112         (defx8664subprim .SPunbind)
  • branches/gz/level-0/PPC/ppc-hash.lisp

    r10028 r10619  
    156156  (ba .SPset-hash-key))
    157157
     158(defppclapfunction %set-hash-table-vector-key-conditional ((offset 0) (vector arg_x) (old arg_y) (new arg_z))
     159  (ba .SPset-hash-key-conditional))
     160
    158161;;; Strip the tag bits to turn x into a fixnum
    159162(defppclapfunction strip-tag-to-fixnum ((x arg_z))
  • branches/gz/level-0/X86/X8632/x8632-hash.lisp

    r10272 r10619  
    100100  (jmp-subprim .SPset-hash-key))
    101101
     102;;; This needs to be done out-of-line, to handle EGC memoization.
     103(defx8632lapfunction %set-hash-table-vector-key-conditional ((offset 8)
     104                                                             (vector 4)
     105                                                             #|(ra 0)|#
     106                                                             (old arg_y)
     107                                                             (new arg_z))
     108  (movl (@ offset (% esp)) (% temp0))
     109  (movl (@ vector (% esp)) (% temp1))
     110  (save-simple-frame)
     111  (call-subprim .SPset-hash-key-conditional)
     112  (restore-simple-frame)
     113  (single-value-return 4))
     114
     115
    102116;;; Strip the tag bits to turn x into a fixnum
    103117(defx8632lapfunction strip-tag-to-fixnum ((x arg_z))
  • branches/gz/level-0/X86/x86-hash.lisp

    r10145 r10619  
    115115  (jmp-subprim .SPset-hash-key))
    116116
     117;;; This needs to be done out-of-line, to handle EGC memoization.
     118(defx86lapfunction %set-hash-table-vector-key-conditional ((offset 8) #|(ra 0)|# (vector arg_x) (old arg_y) (new arg_z))
     119  (movq (@ offset (% rsp)) (% temp0))
     120  (save-simple-frame)
     121  (call-subprim .SPset-hash-key-conditional)
     122  (restore-simple-frame)
     123  (single-value-return 3))
     124
    117125;;; Strip the tag bits to turn x into a fixnum
    118126(defx86lapfunction strip-tag-to-fixnum ((x arg_z))
  • branches/gz/lib/hash.lisp

    r10425 r10619  
    241241(defmethod make-load-form ((hash hash-table) &optional env)
    242242  (declare (ignore env))
     243  (%normalize-hash-table-count hash)
    243244  (let ((rehashF (function-name (nhash.rehashF hash)))
    244245        (keytransF (nhash.keytransF hash))
  • branches/gz/lib/macros.lisp

    r10613 r10619  
    31443144      (ecase sym
    31453145        (the `(the ,(cadr place) (atomic-incf-decf ,(caddr place) ,delta)))
     3146         ;; Needed so can handle %svref (which macroexpands into a LET*)
     3147         ((let let*) (multiple-value-bind (body decls) (parse-body (cddr place) env t)
     3148                       (unless (eql (length body) 1)
     3149                         (error "~S is not a valid atomic-incf/decf place" place))
     3150                       `(,sym ,(cadr place) ,@decls (atomic-incf-decf ,@body ,delta))))
     3151         ;; Ditto
     3152         (locally (multiple-value-bind (body decls) (parse-body (cdr place) env t)
     3153                    (unless (eql (length body) 1)
     3154                      (error "~S is not a valid atomic-incf/decf place" place))
     3155                    `(,sym ,@decls (atomic-incf-decf ,@body ,delta))))
    31463156        (car `(%atomic-incf-car ,(cadr place) ,delta))
    31473157        (cdr `(%atomic-incf-cdr ,(cadr place) ,delta))
    3148         ((svref %svref) `(%atomic-incf-gvector ,@(cdr place) ,delta))))
     3158        (svref `(%atomic-incf-gvector ,@(cdr place) ,delta))))
    31493159    (if (and (symbolp place) (eq :special (variable-information place env)))
    31503160      (let* ((base (gensym))
  • branches/gz/lisp-kernel/x86-spentry32.s

    r10613 r10619  
    18081808        __(btsl %imm0,(%temp1))
    18091809        .globl C(egc_store_node_conditional_success_end)
    1810 C(egc_store_node_conditional_success_end)
     1810C(egc_store_node_conditional_success_end):
    181118112:      __(movl $t_value,%arg_z)
    18121812        __(ret)
     
    46334633*/
    46344634
     4635_spentry(unused_6)
     4636        __(int $3)
     4637Xspentry_end:
     4638_endsubp(unused_6)
    46354639        .data
    46364640        .globl C(spentry_start)
Note: See TracChangeset for help on using the changeset viewer.