Changeset 13795
- Timestamp:
- Jun 9, 2010, 9:08:19 PM (14 years ago)
- File:
-
- 1 edited
-
branches/arm/compiler/ARM/arm2.lisp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/arm/compiler/ARM/arm2.lisp
r13789 r13795 304 304 (case cond 305 305 (:EQ (values arm::arm-cond-eq t)) 306 (:NE (values arm::arm-cond- ne t))306 (:NE (values arm::arm-cond-eq nil)) 307 307 (:GT (values arm::arm-cond-gt t)) 308 (:LE (values arm::arm-cond- le t))308 (:LE (values arm::arm-cond-gt nil)) 309 309 (:LT (values arm::arm-cond-lt t)) 310 (:GE (values arm::arm-cond- ge t))))310 (:GE (values arm::arm-cond-lt nil)))) 311 311 312 312 … … 3128 3128 (^)))) 3129 3129 3130 ;;; Have to extract a bit out of the CR when a boolean result needed.3131 3130 (defun arm2-compare-double-float-registers (seg vreg xfer ireg jreg cr-bit true-p) 3132 3131 (with-arm-local-vinsn-macros (seg vreg xfer) … … 3144 3143 (^))) 3145 3144 (^)))) 3145 3146 (defun arm2-compare-single-float-registers (seg vreg xfer ireg jreg cr-bit true-p) 3147 (with-arm-local-vinsn-macros (seg vreg xfer) 3148 (if vreg 3149 (regspec-crf-gpr-case 3150 (vreg dest) 3151 (progn 3152 (! single-float-compare dest ireg jreg) 3153 (^ cr-bit true-p)) 3154 (progn 3155 (with-crf-target () flags 3156 (! single-float-compare flags ireg jreg) 3157 3158 (! cond->boolean dest (if true-p cr-bit (logxor cr-bit 1)))) 3159 (^))) 3160 (^)))) 3161 3162 3146 3163 3147 3164 … … 6531 6548 (with-fp-target (r1) (r2 :single-float) 6532 6549 (multiple-value-bind (r1 r2) (arm2-two-untargeted-reg-forms seg form1 r1 form2 r2) 6533 (arm2-compare- double-float-registers seg vreg xfer r1 r2 cr-bit true-p))))))6550 (arm2-compare-single-float-registers seg vreg xfer r1 r2 cr-bit true-p)))))) 6534 6551 6535 6552 (eval-when (:compile-toplevel :execute)
Note:
See TracChangeset
for help on using the changeset viewer.
