Changeset 14339


Ignore:
Timestamp:
Oct 8, 2010, 2:22:26 PM (9 years ago)
Author:
gb
Message:

%ILOGNOT, ASH for PPC.
%ILSL vinsns: do logical (unsigned) compare of shift count to max.

Location:
trunk/source/compiler/PPC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/PPC/PPC32/ppc32-vinsns.lisp

    r13067 r14339  
    27432743                           ((temp :u32)
    27442744                            (crx :crf)))
    2745   (cmpwi crx count (ash 31 ppc32::fixnumshift))
     2745  (cmplwi crx count (ash 31 ppc32::fixnumshift))
    27462746  (srwi temp count ppc32::fixnumshift)
    27472747  (slw dest src temp)
     
    27532753                             ((count :u8const)
    27542754                              (src :imm)))
    2755                                         ; Hard to use ppcmacroinstructions that expand into expressions involving variables.
     2755  ;; Hard to use ppcmacroinstructions that expand into expressions
     2756  ;; involving variables.
    27562757  (rlwinm dest src count 0 (:apply - ppc32::least-significant-bit count)))
    27572758
     
    40294030  (bne cr0 lab))
    40304031
     4032(define-ppc32-vinsn %ilognot (((dest :imm))
     4033                              ((src :imm)))
     4034  (subfic dest src (ash -1 ppc32::fixnumshift)))
     4035
    40314036;;; In case ppc32::*ppc-opcodes* was changed since this file was compiled.
    40324037(queue-fixup
  • trunk/source/compiler/PPC/PPC64/ppc64-vinsns.lisp

    r13067 r14339  
    27562756                           ((temp :u32)
    27572757                            (crx :crf)))
    2758   (cmpdi crx count (ash 63 ppc64::fixnumshift))
     2758  (cmpldi crx count (ash 63 ppc64::fixnumshift))
    27592759  (srdi temp count ppc64::fixnumshift)
    27602760  (sld dest src temp)
     
    40234023  (bne cr0 lab))
    40244024 
    4025                                              
     4025(define-ppc64-vinsn %ilognot (((dest :imm))
     4026                              ((src :imm)))
     4027  (subfic dest src (ash -1 ppc64::fixnumshift)))
    40264028                                           
    40274029
  • trunk/source/compiler/PPC/ppc2.lisp

    r14240 r14339  
    91789178                             (list nil (list arg))))))))
    91799179
     9180(defppc2 ppc2-%ilognot %ilognot (seg vreg xfer form)
     9181  (ensuring-node-target (target vreg)
     9182    (! %ilognot target (ppc2-one-untargeted-reg-form seg form target)))
     9183  (^))
     9184
     9185(defppc2 ppc2-ash ash (seg vreg xfer num amt)
     9186  (or (acode-optimize-ash seg vreg xfer num amt *ppc2-trust-declarations*)
     9187      (progn
     9188        (ppc2-two-targeted-reg-forms seg num ($ ppc::arg_y) amt ($ ppc::arg_z))
     9189        (ppc2-fixed-call-builtin seg vreg xfer nil (subprim-name->offset '.SPbuiltin-ash)))))
     9190
    91809191(defun show-function-constants (f)
    91819192  (cond ((typep f 'function)
Note: See TracChangeset for help on using the changeset viewer.