Ignore:
Timestamp:
Jun 19, 2010, 4:31:19 AM (9 years ago)
Author:
gb
Message:

arm2.lisp: 32-bit case of ARM2-VREF1 wasn't parenthesized right, so we did both

the constant- and variable-index case.

arm-vinsns.lisp: lots of bugs in SAVE-LEXPR-ARGREGS
arm-pred.lisp: in EQUAL, compare to NIL, not 'NUL.
l1-clos-boot.lisp: more ARM conditionalization.
arm-spentry.s: use the right register in _SPbind.

Implement _SPnthrowvalues, fix in _SPnthrow1value.
Try to add uuo_debug_trap() to subprims that still aren't implemented.

Currently crashes in code called by ENSURE-METHOD, possibly on the first
DEFMETHOD.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/arm/compiler/ARM/arm-vinsns.lisp

    r13856 r13858  
    28362836      (other-temp :imm)))
    28372837  ((:pred >= min-fixed $numarmargregs)
    2838    (stm (:! vsp) (arg_z arg_y arg_x)))
     2838   (stmdb (:! vsp) (arg_z arg_y arg_x)))
    28392839  ((:pred = min-fixed 2)                ; at least 2 args
    28402840   (cmp nargs (:$ (ash 2 arm::word-shift)))
    28412841   (strne arg_x (:@! vsp (:$ -4)))
    2842    (stm (:! vsp) (arg_z arg_y)))
     2842   (stmdb (:! vsp) (arg_z arg_y)))
    28432843  ((:pred = min-fixed 1)                ; at least one arg
    28442844   (cmp nargs (:$ (ash 2 arm::word-shift)))
    28452845   (strlo arg_z (:@! vsp (:$ (- arm::node-size))))
    2846    (stmeq (:! vsp) (arg_z arg_y))
    2847    (stmhi (:! vsp) (arg_z arg_y arg_x)))
     2846   (stmdbeq (:! vsp) (arg_z arg_y))
     2847   (stmdbhi (:! vsp) (arg_z arg_y arg_x)))
    28482848  ((:pred = min-fixed 0)
    28492849   (cmp nargs (:$ 0))
     
    28512851   (cmp nargs (:$ (ash 2 arm::word-shift)))
    28522852   (strlo arg_z (:@! vsp (:$ (- arm::node-size))))
    2853    (stmeq (:! vsp) (arg_z arg_y))
    2854    (stmhi (:! vsp) (arg_z arg_y arg_x))
     2853   (stmdbeq (:! vsp) (arg_z arg_y))
     2854   (stmdbhi (:! vsp) (arg_z arg_y arg_x))
    28552855   :done
    28562856   )
     
    28662866  (cmp other-temp lr)
    28672867  (mov arg-temp (:$ arm::lisp-frame-marker))
    2868   (stmdb (:! vsp) (arg-temp entry-vsp fn lr))
     2868  (stmdb (:! sp) (arg-temp entry-vsp fn lr))
    28692869  (mov fn (:$ 0))
    28702870  (moveq lr (:$ (- arm::nil-value arm::fulltag-nil)))
    28712871  (ldreq lr (:@ lr (:$ (arm::%kernel-global 'arm::lexpr-return))))
    2872   (stmdbeq (:! vsp) (arg-temp entry-vsp fn lr))
     2872  (stmdbeq (:! sp) (arg-temp entry-vsp fn lr))
    28732873  (moveq lr other-temp)
    28742874  (movne lr (:$ (- arm::nil-value arm::fulltag-nil)))
Note: See TracChangeset for help on using the changeset viewer.