Changeset 14771
- Timestamp:
- May 2, 2011, 11:35:21 AM (14 years ago)
- File:
-
- 1 edited
-
trunk/source/compiler/ARM/arm-vinsns.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/compiler/ARM/arm-vinsns.lisp
r14768 r14771 170 170 171 171 172 (define-arm-vinsn (misc-ref-c-double-float :predicatable) 172 173 174 (define-arm-vinsn (misc-ref-c-double-float :predicatable :sets-lr) 173 175 (((dest :double-float)) 174 176 ((v :lisp) 175 (idx :u32const)) 176 ((low (:u32 #.arm::imm0)) 177 (high (:u32 #.arm::imm1)))) 178 (ldrd low (:@ v (:$ (:apply + arm::misc-dfloat-offset (:apply ash idx 3))))) 179 (fmdrr dest low high)) 177 (idx :u32const))) 178 (add lr v (:$ arm::double-float.pad)) 179 (fldd dest (:@ lr (:$ (:apply + (:apply ash idx 3) (- arm::double-float.value arm::double-float.pad)))))) 180 180 181 181 (define-arm-vinsn (misc-set-c-double-float :predicatable) 182 182 (((val :double-float)) 183 183 ((v :lisp) 184 (idx :u32const)) 185 ((low (:u32 #.arm::imm0)) 186 (high (:u32 #.arm::imm1)))) 187 (fmrrd low high val) 188 (strd low (:@ v (:$ (:apply + arm::misc-dfloat-offset (:apply ash idx 3)))))) 184 (idx :u32const))) 185 (add lr v (:$ arm::double-float.pad)) 186 (fstd val (:@ lr (:$ (:apply + (:apply ash idx 3) (- arm::double-float.value arm::double-float.pad)))))) 189 187 190 188 (define-arm-vinsn (misc-set-double-float :predicatable) … … 2406 2404 (mov result allocptr) 2407 2405 (bic allocptr allocptr (:$ arm::fulltagmask)) 2408 ( fmrrd header-temp high fpreg)2409 ( strd header-temp (:@ result (:$ arm::double-float.value))))2406 (add lr result (:$ arm::double-float.pad)) 2407 (fstd fpreg (:@ lr (:$ (- arm::double-float.value arm::double-float.pad))))) 2410 2408 2411 2409
Note:
See TracChangeset
for help on using the changeset viewer.
