(inst ,opinst r y))
(t
(if (sc-is x ,constant-sc)
- (inst ,load-inst r (get-constant x))
+ (inst ,load-inst tmp (get-constant x))
(move tmp x))
(inst ,opinst tmp y)
(move r tmp)))))
`(progn
(move dup real)
(inst unpcklps dup dup)))
- ,single-inst movss movaps
+ ,single-inst movss movq
single-reg fp-single-immediate single-float
complex-single-reg fp-complex-single-immediate complex-single-float
,single-real-complex-name ,single-complex-real-name)
:load-if (not (sc-is x ,constant-sc)))
(y :scs (,sc ,constant-sc)
:target mask
- :load-if (not (sc-is x ,constant-sc))))
+ :load-if (not (sc-is y ,constant-sc))))
(:arg-types ,type ,type)
(:temporary (:sc ,sc :from :eval) mask)
(:temporary (:sc any-reg) bits)
(signed-reg
(inst ,inst y x)
))))))
- (frob %unary-truncate cvttss2si single-reg single-float nil)
- (frob %unary-truncate cvttsd2si double-reg double-float nil)
+ (frob %unary-truncate/single-float cvttss2si single-reg single-float nil)
+ (frob %unary-truncate/double-float cvttsd2si double-reg double-float nil)
(frob %unary-round cvtss2si single-reg single-float t)
(frob %unary-round cvtsd2si double-reg double-float t))