Changeset 6461


Ignore:
Timestamp:
May 9, 2007, 7:27:47 AM (15 years ago)
Author:
gb
Message:

%immediate-set-xxx: get sign right.
unwind-protect uses nmkunwind (more happens out-of-line.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/compiler/PPC/ppc2.lisp

    r6287 r6461  
    40764076      (let* ((size (logand #xf bits))
    40774077             (long-p (eq size 4))
    4078              (signed (logbitp 5 bits))
     4078             (signed (not (logbitp 5 bits)))
    40794079             (intval (if long-p (ppc2-long-constant-p val) (acode-fixnum-form-p val)))
    40804080             (offval (acode-fixnum-form-p offset))
     
    40924092                             (:ppc32 t)
    40934093                             (:ppc64 nil)))
    4094                      (! getxlong)
     4094                     (if signed
     4095                       (! gets32)
     4096                       (! getu32))
    40954097                     (! fixnum->signed-natural ppc::imm0 ppc::arg_z)))))
    40964098          (if (and absptr offval)
     
    80218023         (protform-label (backend-get-next-label))
    80228024         (old-stack (ppc2-encode-stack))
    8023          (yreg ($ ppc::arg_y)))
    8024     (! ref-interrupt-level yreg)
    8025     (ppc2-dbind seg (make-acode (%nx1-operator fixnum) -1) '*interrupt-level*)
    8026     (! mkunwind)
     8025         (ilevel '*interrupt-level*))
     8026    (! nmkunwind)
     8027    (ppc2-open-undo $undointerruptlevel)
     8028    (ppc2-new-vstack-lcell :special-value *ppc2-target-lcell-size* 0 ilevel)
     8029    (ppc2-new-vstack-lcell :special *ppc2-target-lcell-size* (ash 1 $vbitspecial) ilevel)
     8030    (ppc2-new-vstack-lcell :special-link *ppc2-target-lcell-size* 0 ilevel)
     8031    (ppc2-adjust-vstack (* 3 *ppc2-target-node-size*))   
    80278032    (! non-barrier-jump (aref *backend-labels* cleanup-label))
    80288033    (-> protform-label)
     
    80458050    (ppc2-open-undo)
    80468051    (@ protform-label)
    8047     (ppc2-dbind seg yreg '*interrupt-level*)
     8052    (ppc2-new-vstack-lcell :special-value *ppc2-target-lcell-size* 0 ilevel)
     8053    (ppc2-new-vstack-lcell :special *ppc2-target-lcell-size* (ash 1 $vbitspecial) ilevel)
     8054    (ppc2-new-vstack-lcell :special-link *ppc2-target-lcell-size* 0 ilevel)
     8055    (ppc2-adjust-vstack (* 3 *ppc2-target-node-size*))
     8056
    80488057    (ppc2-undo-body seg vreg xfer protected-form old-stack)))
    80498058
Note: See TracChangeset for help on using the changeset viewer.