double->single float conversion isn't a no-op on x87 anymore
[sbcl.git] / src / compiler / ppc / move.lisp
index e5b8324..e0c83fe 100644 (file)
@@ -33,7 +33,7 @@
 
 (define-move-fun (load-character 1) (vop x y)
   ((immediate) (character-reg))
-  (inst li y (char-code (tn-value x))))
+  (inst lr y (char-code (tn-value x))))
 
 (define-move-fun (load-system-area-pointer 1) (vop x y)
   ((immediate) (sap-reg))
   (:generator 4
     (let ((done (gen-label)))
       (inst andi. temp x fixnum-tag-mask)
-      (sc-case y
-        (signed-reg
-         (inst srawi y x n-fixnum-tag-bits))
-        (unsigned-reg
-         (inst srwi y x n-fixnum-tag-bits)))
+      (inst srawi y x n-fixnum-tag-bits)
 
       (inst beq done)
       (loadw y x bignum-digits-offset other-pointer-lowtag)