Opened 10 years ago

Closed 10 years ago

#804 closed defect (fixed)

fixnum->double vinsn broken on ARM

Reported by: ivan4th Owned by:
Priority: normal Milestone:
Component: Compiler Version: trunk
Keywords: Cc:


Compilation of the following function fails on ARM:

(defun fixnum-double (x)
  (declare (fixnum x))
  (* x 10d0))

That's because it uses FIXNUM->DOUBLE vinsn that has :single-float temp which is not supported by CCL::ALLOCATE-TEMPORARY-VREG.

Change History (1)

comment:1 Changed 10 years ago by gb

  • Resolution set to fixed
  • Status changed from new to closed

(In [14557]) %fixnum-to-double: make the single-float temp an arg, as a a short-term approach.

(Because of the way that ARM FPRs are aliased - d0 maps to both s0 and s1 - any code that deals with both single and doubles needs to be more careful about aliasing than it likely is.)

Fixes ticket:804.

Note: See TracTickets for help on using tickets.