Changeset 13982 for branches


Ignore:
Timestamp:
Jul 19, 2010, 2:39:49 PM (9 years ago)
Author:
gb
Message:

Try not to run out of imm regs when storing double-floats to foreign
memory.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/arm/compiler/ARM/arm-vinsns.lisp

    r13968 r13982  
    687687      (index :s16const))
    688688     ((low (:u32 #.arm::imm0))
    689       (high (:u32 #.arm::imm1))))
     689      (high (:u32 #.arm::imm1))
     690      (addr (:u32 #.arm::imm2))))       ; addr should be :address
     691  (add addr src (:$ index))
    690692  (fmrrd low high src)
    691   (strd low (:@ src (:$ index))))
     693  (strd low (:@ addr (:$ 0))))
    692694
    693695(define-arm-vinsn (mem-set-double-float :predicatable)
     
    695697     ((val :double-float)
    696698      (src :address)
    697       (index :s32))                     ; imm2, I presume
     699      (index :s32))                     
    698700     ((low (:u32 #.arm::imm0))
    699       (high (:u32 #.arm::imm1))))
     701      (high (:u32 #.arm::imm1))
     702      (addr (:u32 #.arm::imm2))))       ; addr should be :address
     703  (add addr src index)
    700704  (fmrrd low high src)
    701   (strd low (:@ src index)))
     705  (strd low (:@ addr (:$ 0))))
    702706
    703707(define-arm-vinsn (mem-ref-c-single-float :predicatable)
Note: See TracChangeset for help on using the changeset viewer.