Changeset 12358
 Timestamp:
 Jul 3, 2009, 2:26:49 AM (10 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

branches/working0711/ccl/compiler/X86/x862.lisp
r12339 r12358 221 221 (defvar *x862fname* nil) 222 222 (defvar *x862ra0* nil) 223 (defvar *x862codecoveragereg* nil) 223 224 224 225 (defvar *x862allocptr* nil) … … 516 517 (*x862temp0* (targetarchcase (:x8632 x8632::temp0) 517 518 (:x8664 x8664::temp0))) 519 (*x862codecoveragereg* *x862temp0*) 518 520 (*x862temp1* (targetarchcase (:x8632 x8632::temp1) 519 521 (:x8664 x8664::temp1))) … … 1243 1245 (when ,codenote 1244 1246 (withx86localvinsnmacros (,segvar) 1245 (x862storeimmediate ,segvar ,codenote *x862 temp0*)1246 (! miscsetimmediatecnode 0 *x862 temp0* 1)))1247 (x862storeimmediate ,segvar ,codenote *x862codecoveragereg*) 1248 (! miscsetimmediatecnode 0 *x862codecoveragereg* 1))) 1247 1249 (prog1 1248 1250 (progn … … 3217 3219 (defun x862twotargetedregforms (seg aform areg bform breg) 3218 3220 (let* ((avar (nx2lexicalreferencep aform)) 3219 (atriv (and (x862trivialp bform ) (nx2nodegprp breg)))3221 (atriv (and (x862trivialp bform areg) (nx2nodegprp breg))) 3220 3222 (aconst (and (not atriv) (or (x86sideeffectfreeformp aform) 3221 3223 (if avar (nx2varnotsetbyformp avar bform))))) … … 3260 3262 (cnode (nx2nodegprp creg)) 3261 3263 (atriv (or (null aform) 3262 (and (x862trivialp bform )3263 (x862trivialp cform )3264 (and (x862trivialp bform areg) 3265 (x862trivialp cform areg) 3264 3266 bnode 3265 3267 cnode))) 3266 3268 (btriv (or (null bform) 3267 (and (x862trivialp cform )3269 (and (x862trivialp cform breg) 3268 3270 cnode))) 3269 3271 (aconst (and (not atriv) … … 3304 3306 (dnode (nx2nodegprp dreg)) 3305 3307 (atriv (or (null aform) 3306 (and (x862trivialp bform )3307 (x862trivialp cform )3308 (x862trivialp dform )3308 (and (x862trivialp bform areg) 3309 (x862trivialp cform areg) 3310 (x862trivialp dform areg) 3309 3311 bnode 3310 3312 cnode 3311 3313 dnode))) 3312 3314 (btriv (or (null bform) 3313 (and (x862trivialp cform )3314 (x862trivialp dform )3315 (and (x862trivialp cform breg) 3316 (x862trivialp dform breg) 3315 3317 cnode 3316 3318 dnode))) 3317 3319 (ctriv (or (null cform) 3318 (and (x862trivialp dform )3320 (and (x862trivialp dform creg) 3319 3321 dnode))) 3320 3322 (aconst (and (not atriv) … … 4821 4823 ;;; "Trivial" means can be evaluated without allocating or modifying registers. 4822 4824 ;;; Interim definition, which will probably stay here forever. 4823 (defun x862trivialp (form & aux op bits)4825 (defun x862trivialp (form &optional reg &aux op bits) 4824 4826 (setq form (nxuntypedform form)) 4825 4827 (and … … 4838 4840 (or (%ilogbitp $vbitpunted (setq bits (nxvarbits (cadr form)))) 4839 4841 (neq (%ilogior (%ilsl $vbitclosed 1) (%ilsl $vbitsetq 1)) 4840 (%ilogand (%ilogior (%ilsl $vbitclosed 1) (%ilsl $vbitsetq 1)) bits))))))) 4842 (%ilogand (%ilogior (%ilsl $vbitclosed 1) (%ilsl $vbitsetq 1)) bits))))) 4843 (or (and reg (neq (hardregspecvalue reg) *x862codecoveragereg*)) 4844 (not (codenotep (acodenote form)))))) 4841 4845 4842 4846
Note: See TracChangeset
for help on using the changeset viewer.