Index: /branches/arm/level-0/ARM/arm-numbers.lisp
===================================================================
--- /branches/arm/level-0/ARM/arm-numbers.lisp	(revision 13805)
+++ /branches/arm/level-0/ARM/arm-numbers.lisp	(revision 13806)
@@ -88,29 +88,19 @@
 
 ;;; Caller guarantees that result fits in a fixnum.
-#+notyet
 (defarmlapfunction %truncate-double-float->fixnum ((arg arg_z))
-  (get-double-float fp0 arg)
-  (fctiwz fp0 fp0)
-  (stwu tsp -16 tsp)
-  (stw tsp 4 tsp)
-  (stfd fp0 8 tsp)
-  (lwz imm0 (+ 8 4) tsp)
-  (lwz tsp 0 tsp)
-  (box-fixnum arg_z imm0)  
-  (blr))
-
-
-
-#+notyet
+  (get-double-float d0 arg)
+  (ftosizd s2 d0)
+  (fmrs imm0 s2)
+  (box-fixnum arg_z imm0)
+  (bx lr))
+
+
+
 (defarmlapfunction %truncate-short-float->fixnum ((arg arg_z))
-  (get-single-float fp0 arg)
-  (fctiwz fp0 fp0)
-  (stwu tsp -16 tsp)
-  (stw tsp 4 tsp)
-  (stfd fp0 8 tsp)
-  (lwz imm0 (+ 8 4) tsp)
-  (lwz tsp 0 tsp)
-  (box-fixnum arg_z imm0)  
-  (blr))
+  (get-single-float s0 arg imm0)
+  (ftosizs s2 s0)
+  (fmrs imm0 s2)
+  (box-fixnum arg_z imm0)
+  (bx lr))
 
 
