Changeset 13148 for release/1.4


Ignore:
Timestamp:
Oct 30, 2009, 10:33:17 PM (10 years ago)
Author:
gb
Message:

Propagate r13143 (fix for ticket:620) to 1.4.

Location:
release/1.4/source/compiler
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • release/1.4/source/compiler/PPC/ppc2.lisp

    r13075 r13148  
    4141
    4242 
    43 (defun ppc2-immediate-operand (x)
    44   (if (eq (acode-operator x) (%nx1-operator immediate))
    45     (cadr x)
    46     (compiler-bug "~&Bug: not an immediate: ~s" x)))
    4743
    4844(defmacro with-ppc-p2-declarations (declsform &body body)
     
    76457641      (ppc2-form seg nil nil i)
    76467642      (ppc2-form seg nil xfer j))
    7647     (let* ((type-keyword (ppc2-immediate-operand typename))
     7643    (let* ((type-keyword (acode-immediate-operand typename))
    76487644           (fixtype (nx-lookup-target-uvector-subtag type-keyword ))
    76497645           (safe (unless *ppc2-reckless* fixtype))
     
    76987694      (ppc2-form seg nil nil j)
    76997695      (ppc2-form seg nil xfer k)))
    7700   (let* ((type-keyword (ppc2-immediate-operand typename))
     7696  (let* ((type-keyword (acode-immediate-operand typename))
    77017697         (fixtype (nx-lookup-target-uvector-subtag type-keyword ))
    77027698         (safe (unless *ppc2-reckless* fixtype))
     
    77497745
    77507746(defppc2 ppc2-%aset2 simple-typed-aset2 (seg vreg xfer typename arr i j new &optional dim0 dim1)
    7751   (let* ((type-keyword (ppc2-immediate-operand typename))
     7747  (let* ((type-keyword (acode-immediate-operand typename))
    77527748         (fixtype (nx-lookup-target-uvector-subtag type-keyword ))
    77537749         (safe (unless *ppc2-reckless* fixtype))
     
    78427838
    78437839(defppc2 ppc2-%aset3 simple-typed-aset3 (seg vreg xfer typename arr i j k new &optional dim0 dim1 dim2)
    7844   (let* ((type-keyword (ppc2-immediate-operand typename))
     7840  (let* ((type-keyword (acode-immediate-operand typename))
    78457841         (fixtype (nx-lookup-target-uvector-subtag type-keyword))
    78467842         (safe (unless *ppc2-reckless* fixtype))
     
    78577853            (if fixtype
    78587854              (nx-target-uvector-subtag-name fixtype)
    7859               (ppc2-immediate-operand subtag)))))
     7855              (acode-immediate-operand subtag)))))
    78607856    (if type-keyword
    78617857      (ppc2-vref seg vreg xfer type-keyword uvector index (unless *ppc2-reckless* (nx-lookup-target-uvector-subtag type-keyword)))
     
    78717867            (if fixtype
    78727868              (nx-target-uvector-subtag-name fixtype)
    7873               (ppc2-immediate-operand subtag)))))
     7869              (acode-immediate-operand subtag)))))
    78747870    (if type-keyword
    78757871      (ppc2-vset seg vreg xfer type-keyword uvector index newval (unless *ppc2-reckless* (nx-lookup-target-uvector-subtag type-keyword)))
  • release/1.4/source/compiler/X86/x862.lisp

    r13076 r13148  
    6363         ,@body)))))
    6464
    65  
    66 (defun x862-immediate-operand (x)
    67   (if (eq (acode-operator x) (%nx1-operator immediate))
    68     (cadr x)
    69     (compiler-bug "not an immediate: ~s" x)))
     65
    7066
    7167(defmacro with-x86-p2-declarations (declsform &body body)
     
    37033699             (if (nx-t constant)
    37043700               (! compare-to-t ireg)
    3705                (let* ((imm (x862-immediate-operand constant))
     3701               (let* ((imm (acode-immediate-operand constant))
    37063702                      (reg (x862-register-constant-p imm)))
    37073703                 (if reg
     
    85288524      (x862-form seg nil nil i)
    85298525      (x862-form seg nil xfer j)))
    8530   (let* ((type-keyword (x862-immediate-operand typename))
     8526  (let* ((type-keyword (acode-immediate-operand typename))
    85318527         (fixtype (nx-lookup-target-uvector-subtag type-keyword ))
    85328528         (safe (unless *x862-reckless* fixtype))
     
    85838579      (x862-form seg nil nil j)
    85848580      (x862-form seg nil xfer k)))
    8585   (let* ((type-keyword (x862-immediate-operand typename))
     8581  (let* ((type-keyword (acode-immediate-operand typename))
    85868582         (fixtype (nx-lookup-target-uvector-subtag type-keyword ))
    85878583         (safe (unless *x862-reckless* fixtype))
     
    87258721
    87268722(defx862 x862-%aset2 simple-typed-aset2 (seg vreg xfer typename arr i j new &optional dim0 dim1)
    8727   (let* ((type-keyword (x862-immediate-operand typename))
     8723  (let* ((type-keyword (acode-immediate-operand typename))
    87288724         (fixtype (nx-lookup-target-uvector-subtag type-keyword))
    87298725         (safe (unless *x862-reckless* fixtype))
     
    87348730
    87358731(defx862 x862-%aset3 simple-typed-aset3 (seg vreg xfer typename arr i j k new &optional dim0 dim1 dim2)
    8736   (let* ((type-keyword (x862-immediate-operand typename))
     8732  (let* ((type-keyword (acode-immediate-operand typename))
    87378733         (fixtype (nx-lookup-target-uvector-subtag type-keyword))
    87388734         (safe (unless *x862-reckless* fixtype))
     
    87478743            (if fixtype
    87488744              (nx-target-uvector-subtag-name fixtype)
    8749               (x862-immediate-operand subtag)))))
     8745              (acode-immediate-operand subtag)))))
    87508746    (if type-keyword
    87518747      (x862-vref seg vreg xfer type-keyword uvector index (unless *x862-reckless* (nx-lookup-target-uvector-subtag type-keyword)))
     
    87668762            (if fixtype
    87678763              (nx-target-uvector-subtag-name fixtype)
    8768               (x862-immediate-operand subtag)))))
     8764              (acode-immediate-operand subtag)))))
    87698765    (if type-keyword
    87708766      (x862-vset seg vreg xfer type-keyword uvector index newval (unless *x862-reckless* (nx-lookup-target-uvector-subtag type-keyword)))
  • release/1.4/source/compiler/nx2.lisp

    r13075 r13148  
    236236            (setf (acode-operator ref) op
    237237                  (acode-operands ref) operands)))))))
     238
     239(defun acode-immediate-operand (x)
     240  (let* ((x (acode-unwrapped-form x)))
     241    (if (eq (acode-operator x) (%nx1-operator immediate))
     242      (cadr x)
     243      (compiler-bug "not an immediate: ~s" x))))
Note: See TracChangeset for help on using the changeset viewer.