 Timestamp:
 Sep 8, 2014, 3:17:16 PM (5 years ago)
 Location:
 release/1.10/source
 Files:

 6 edited
Legend:
 Unmodified
 Added
 Removed

release/1.10/source
 Property svn:mergeinfo changed
/trunk/source merged: 16190
 Property svn:mergeinfo changed

release/1.10/source/compiler/X86/X8632/x8632vinsns.lisp
r16104 r16192 4238 4238 (definex8632vinsn (nfpstoreunboxedword :nfp :set) (() 4239 4239 ((val :u32) 4240 (offset :u16const) 4241 (nfp :imm))) 4242 (movl (:%l val) (:@ (:apply + 16 offset) (:% nfp)))) 4240 (offset :u16const))) 4241 (movd (:%l val) (:%mmx x8632::stacktemp)) 4242 (movl (:@ (:%seg :rcontext) x8632::tcr.nfp) (:%l val)) 4243 (movd (:%mmx x8632::stacktemp) (:@ (:apply + 16 offset) (:% val))) 4244 (movd (:%mmx x8632::stacktemp) (:% val))) 4243 4245 4244 4246 4245 4247 (definex8632vinsn (nfploadunboxedword :nfp :ref) (((val :u32)) 4246 ((offset :u16const) 4247 (nfp :imm)))4248 (movl (:@ (:apply + 16 offset) (:% nfp)) (:%l val)))4248 ((offset :u16const))) 4249 (movl (:@ (:%seg :rcontext) x8632::tcr.nfp) (:%l val)) 4250 (movl (:@ (:apply + 16 offset) (:% val)) (:%l val))) 4249 4251 4250 4252 (definex8632vinsn (nfpstoresinglefloat :nfp :set) … … 4302 4304 (movl (:@ (:%seg :rcontext) x8632::tcr.nfp) (:%l nfp)) 4303 4305 (cmpl (:%l reg) (:@ (:apply + offset 16) (:%l nfp)))) 4306 4307 (definex8632vinsn nfplogiornaturalregister (() 4308 ((offset :u16const) 4309 (reg :u32)) 4310 ((nfp :lisp))) ; sic 4311 (movl (:@ (:%seg :rcontext) x8632::tcr.nfp) (:%l nfp)) 4312 (orl (:@ (:apply + offset 16) (:%l nfp)) (:%l reg))) 4313 4314 (definex8632vinsn nfplogandnaturalregister (() 4315 ((offset :u16const) 4316 (reg :u32)) 4317 ((nfp :lisp))) ; sic 4318 (movl (:@ (:%seg :rcontext) x8632::tcr.nfp) (:%l nfp)) 4319 (andl (:@ (:apply + offset 16) (:%l nfp)) (:%l reg))) 4320 4321 (definex8632vinsn nfplogxornaturalregister (() 4322 ((offset :u16const) 4323 (reg :u32)) 4324 ((nfp :lisp))) ; sic 4325 (movl (:@ (:%seg :rcontext) x8632::tcr.nfp) (:%l nfp)) 4326 (xorl (:@ (:apply + offset 16) (:%l nfp)) (:%l reg))) 4327 4328 (definex8632vinsn nfpaddnaturalregister (() 4329 ((offset :u16const) 4330 (reg :u32)) 4331 ((nfp :lisp))) ; sic 4332 (movl (:@ (:%seg :rcontext) x8632::tcr.nfp) (:%l nfp)) 4333 (addl (:@ (:apply + offset 16) (:%l nfp)) (:%l reg))) 4334 4335 (definex8632vinsn nfpsubtractnaturalregister (() 4336 ((offset :u16const) 4337 (reg :u32)) 4338 ((nfp :lisp))) ; sic 4339 (movl (:@ (:%seg :rcontext) x8632::tcr.nfp) (:%l nfp)) 4340 (subl (:%l reg) (:@ (:apply + offset 16) (:%l nfp))) 4341 (movl (:@ (:apply + offset 16) (:%l nfp)) (:%l reg))) 4342 4343 4344 4304 4345 4305 4346 (definex8632vinsn (temppushunboxedword :push :word :csp) 
release/1.10/source/compiler/X86/x862.lisp
r16186 r16192 297 297 (setq reg (availableimmtemp 298 298 *availablebackendimmtemps* 299 : u32)))299 :natural))) 300 300 (setq vinsn 301 301 (! nfploadunboxedword reg offset nfp))) … … 350 350 (ecase type 351 351 (#. memspecnfptypenatural 352 (if (and (eql vregclass hardregclassgpr) 353 (eql vregmode hardregclassgprmodeu32)) 352 (if (and (eql vregclass hardregclassgpr) 353 (eql vregmode (targetwordsizecase 354 (64 hardregclassgprmodeu64) 355 (32 hardregclassgprmodeu32)))) 354 356 vreg 355 357 (makeunwiredlreg 356 (availableimmtemp *availablebackendimmtemps* : u32))))358 (availableimmtemp *availablebackendimmtemps* :natural)))) 357 359 (#. memspecnfptypedoublefloat 358 360 (if (and (eql vregclass hardregclassfpr) … … 406 408 (reg nil) 407 409 (nfpbits 0)) 408 (cond ((and (subtypep type '(unsignedbyte 32))410 (cond ((and (subtypep type *nxtargetnaturaltype*) 409 411 NIL 410 (not (subtypep type '(signedbyte 30))))412 (not (subtypep type *nxtargetfixnumtype*))) 411 413 (setq reg (availableimmtemp 412 *availablebackendimmtemps* : u32)414 *availablebackendimmtemps* :natural) 413 415 nfpbits memspecnfptypenatural)) 414 416 ((subtypep type 'singlefloat) … … 3785 3787 (let* ((offset *x862nfpdepth*) 3786 3788 (size 16) 3787 (nfp ( x862nfpreg seg)))3789 (nfp (if (targetarchcase (:x8664 t) (:x8632 afloat))(x862nfpreg seg)))) 3788 3790 (setq vinsn 3789 3791 (if afloat … … 3793 3795 (:complexsinglefloat (! nfpstorecomplexsinglefloat areg offset nfp)) 3794 3796 (:complexdoublefloat (! nfpstorecomplexdoublefloat areg offset nfp))) 3795 (! nfpstoreunboxedword areg offset nfp))) 3797 (targetarchcase 3798 (:x8664 (! nfpstoreunboxedword areg offset nfp)) 3799 (:x8632 (! nfpstoreunboxedword areg offset))))) 3796 3800 (incf offset size) 3797 3801 (push vinsn *x862allnfppushes*) … … 3811 3815 (setq vinsn (x862vpopregister seg areg)) 3812 3816 (let* ((offset ( *x862nfpdepth* 16)) 3813 (nfp (x862nfpreg seg))) 3817 (nfp (if (targetarchcase (:x8664 t) (:x8632 afloat)) 3818 (x862nfpreg seg)))) 3814 3819 (setq vinsn 3815 3820 (if afloat … … 3819 3824 (:complexsinglefloat (! nfploadcomplexsinglefloat areg offset nfp)) 3820 3825 (:complexdoublefloat (! nfploadcomplexfloat areg offset nfp))) 3821 (! nfploadunboxedword areg offset nfp))) 3826 (targetarchcase 3827 (:x8664 3828 (! nfploadunboxedword areg offset nfp)) 3829 (:x8632 3830 (! nfploadunboxedword areg offset))))) 3822 3831 (setq *x862nfpdepth* offset))) 3823 3832 vinsn))) … … 10764 10773 (if (not (or u31x u31y)) 10765 10774 (withimmtarget () (xreg :natural) 10766 (withadditionalimmreg () 10775 (targetarchcase 10776 (:x8664 10767 10777 (withimmtarget (xreg) (yreg :natural) 10768 10778 (x862twotargetedregforms seg x xreg y yreg) 10769 10779 (! %natural+ xreg yreg))) 10780 (:x8632 10781 (let* ((*x862nfpdepth* *x862nfpdepth*) 10782 (offset *x862nfpdepth*)) 10783 (x862onetargetedregform seg x xreg) 10784 (x862pushregister seg xreg) 10785 (x862onetargetedregform seg y xreg) 10786 (! nfpaddnaturalregister offset xreg)))) 10770 10787 (< xreg)) 10771 10788 (let* ((other (if u31x y x))) … … 10788 10805 (if (not u31y) 10789 10806 (withimmtarget () (xreg :natural) 10790 (withadditionalimmreg () 10807 (targetarchcase 10808 (:x8664 10791 10809 (withimmtarget (xreg) (yreg :natural) 10792 10810 (x862twotargetedregforms seg x xreg y yreg) 10793 (! %natural xreg yreg)) 10794 (< xreg))) 10811 (! %natural xreg yreg))) 10812 (:x8632 10813 (let* ((*x862nfpdepth* *x862nfpdepth*) 10814 (offset *x862nfpdepth*)) 10815 (x862onetargetedregform seg x xreg) 10816 (x862pushregister seg xreg) 10817 (x862onetargetedregform seg y xreg) 10818 (! nfpsubtractnaturalregister offset xreg)))) 10819 (< xreg)) 10795 10820 (progn 10796 10821 (withimmtarget () (xreg :natural) … … 10814 10839 (if (not constant) 10815 10840 (withimmtarget () (xreg :natural) 10816 (withadditionalimmreg () 10841 (targetarchcase 10842 (:x8664 10817 10843 (withimmtarget (xreg) (yreg :natural) 10818 10844 (x862twotargetedregforms seg x xreg y yreg) 10819 10845 (! %naturallogior xreg yreg))) 10846 (:x8632 10847 (let* ((*x862nfpdepth* *x862nfpdepth*) 10848 (offset *x862nfpdepth*)) 10849 (x862onetargetedregform seg x xreg) 10850 (x862pushregister seg xreg) 10851 (x862onetargetedregform seg y xreg) 10852 (! nfplogiornaturalregister offset xreg)))) 10820 10853 (< xreg)) 10821 10854 (let* ((other (if u31x y x))) … … 10840 10873 (if (not constant) 10841 10874 (withimmtarget () (xreg :natural) 10842 (withadditionalimmreg () 10875 (targetarchcase 10876 (:x8664 10843 10877 (withimmtarget (xreg) (yreg :natural) 10844 10878 (x862twotargetedregforms seg x xreg y yreg) 10845 10879 (! %naturallogxor xreg yreg))) 10880 (:x8632 10881 (let* ((*x862nfpdepth* *x862nfpdepth*) 10882 (offset *x862nfpdepth*)) 10883 (x862onetargetedregform seg x xreg) 10884 (x862pushregister seg xreg) 10885 (x862onetargetedregform seg y xreg) 10886 (! nfplogxornaturalregister offset xreg)))) 10846 10887 (< xreg)) 10847 10888 (let* ((other (if u32x y x))) … … 10866 10907 (if (not constant) 10867 10908 (withimmtarget () (xreg :natural) 10868 (withadditionalimmreg () 10909 (targetarchcase 10910 (:x8664 10869 10911 (withimmtarget (xreg) (yreg :natural) 10870 10912 (x862twotargetedregforms seg x xreg y yreg) 10871 10913 (! %naturallogand xreg yreg))) 10914 (:x8632 10915 (let* ((*x862nfpdepth* *x862nfpdepth*) 10916 (offset *x862nfpdepth*)) 10917 (x862onetargetedregform seg x xreg) 10918 (x862pushregister seg xreg) 10919 (x862onetargetedregform seg y xreg) 10920 (! nfplogandnaturalregister offset xreg)))) 10872 10921 (< xreg)) 10873 10922 (let* ((other (if u31x y x))) 
release/1.10/source/compiler/acoderewrite.lisp
r16174 r16192 71 71 (defun rewriteacodeform (form &optional (type t)) 72 72 (when (acodep form) 73 (let* ((op (acodeoperator form)) 74 (rewrite (svref *acoderewritefunctions* (logand op operatoridmask)))) 75 (if rewrite 76 (funcall rewrite form type) 77 (if (logbitp operatoracodesubformsbit op) 78 (dolist (operand (acodeoperands form)) 79 (rewriteacodeform operand)) 80 (format t "~&can't rewrite ~s : ~s" (acodeoperatorname op) form)))))) 73 (unless (acodewalked form) 74 (setf (acodewalked form) t) 75 (let* ((op (acodeoperator form)) 76 (rewrite (svref *acoderewritefunctions* (logand op operatoridmask)))) 77 (if rewrite 78 (funcall rewrite form type) 79 (if (logbitp operatoracodesubformsbit op) 80 (dolist (operand (acodeoperands form)) 81 (rewriteacodeform operand)) 82 (format t "~&can't rewrite ~s : ~s" (acodeoperatorname op) form))))))) 81 83 82 84 (defun acodewrapinunaryop (form op) … … 171 173 (if c2 172 174 (setf (acodeoperator form2) (%nx1operator immediate) 175 (acode.assertedtype form2) nil 173 176 (acodeoperands form2) (cons (float c2 0.0d0) nil)) 174 177 (if (acodeformtypep form2 'fixnum trustdecls) … … 178 181 (if c1 179 182 (setf (acodeoperator form1) (%nx1operator immediate) 183 (acode.assertedtype form1) nil 180 184 (acodeoperands form1) (cons (float c1 0.0d0) nil)) 181 185 (if (acodeformtypep form1 'fixnum trustdecls) … … 186 190 (if c2 187 191 (setf (acodeoperator form2) (%nx1operator immediate) 192 (acode.assertedtype form2) nil 188 193 (acodeoperands form2) (cons (float c2 0.0f0) nil)) 189 194 (if (acodeformtypep form2 'fixnum trustdecls) … … 193 198 (if c1 194 199 (setf (acodeoperator form1) (%nx1operator immediate) 200 (acode.assertedtype form1) nil 195 201 (acodeoperands form1) (cons (float c1 0.0f0) nil)) 196 202 (if (acodeformtypep form1 'fixnum trustdecls) 
release/1.10/source/compiler/nxbasic.lisp
r16085 r16192 68 68 ;;; a plist someday. 69 69 (defun acodenote (acode) 70 (acode.info acode)) 70 (when (acodep acode) 71 (cdr (acode.info acode)))) 71 72 72 73 (defun (setf acodenote) (note acode) 73 (when note74 (when (and note (acodep acode)) 74 75 ;; Only record if have a unique key 75 76 (unless (or (nxnull acode) 76 77 (nxt acode)) 77 (setf (acode.info acode) note)))) 78 (setf (cdr (acode.info acode)) note)))) 79 80 (defun acodewalked (acode) 81 (car (acode.info acode))) 82 83 (defun (setf acodewalked) (val acode) 84 (setf (car (acode.info acode)) val)) 78 85 79 86 
release/1.10/source/compiler/nxenv.lisp
r16085 r16192 32 32 acode.operands ; list, elements often acode 33 33 acode.assertedtype ; NIL or type specifier. 34 acode.info ; plist: notes, etc34 acode.info ; cons of "walked" marker, notr 35 35 ) 36 36 … … 485 485 486 486 (defmacro makeacode* (operator operands) 487 `(%istruct 'acode ,operator ,operands nil nil))487 `(%istruct 'acode ,operator ,operands nil (cons nil nil))) 488 488 489 489 (defmacro makeacode (operator &rest args)
Note: See TracChangeset
for help on using the changeset viewer.