]> gitweb.factorcode.org Git - factor.git/commitdiff
cpu.ppc: fix bootstrap
authorSlava Pestov <slava@factorcode.org>
Wed, 9 Sep 2009 04:53:51 +0000 (23:53 -0500)
committerSlava Pestov <slava@factorcode.org>
Wed, 9 Sep 2009 04:53:51 +0000 (23:53 -0500)
basis/cpu/ppc/ppc.factor

index 4306be61b56b4f9be18f50ba880e1630f37f6c55..8f2071a0dc5cb9e6933856dbe3447dae0bf98953 100644 (file)
@@ -298,6 +298,14 @@ M:: ppc %binary-float-function ( dst src1 src2 func -- )
     func f %alien-invoke
     dst float-function-return ;
 
+! Internal format is always double-precision on PowerPC
+M: ppc %single>double-float 2drop ;
+
+M: ppc %double>single-float 2drop ;
+
+M: ppc %unbox-alien ( dst src -- )
+    alien-offset LWZ ;
+
 M:: ppc %unbox-any-c-ptr ( dst src temp -- )
     [
         { "is-byte-array" "end" "start" } [ define-label ] each
@@ -540,6 +548,7 @@ M: ppc %compare-imm [ (%compare-imm) ] 2dip %boolean ;
 M:: ppc %compare-float-ordered ( dst src1 src2 cc temp -- )
     src1 src2 cc negate-cc \ (%compare-float-ordered) (%compare-float) :> branch2 :> branch1
     dst temp branch1 branch2 (%boolean) ;
+
 M:: ppc %compare-float-unordered ( dst src1 src2 cc temp -- )
     src1 src2 cc negate-cc \ (%compare-float-unordered) (%compare-float) :> branch2 :> branch1
     dst temp branch1 branch2 (%boolean) ;
@@ -559,7 +568,7 @@ M:: ppc %compare-branch ( label src1 src2 cc -- )
     label cc %branch ;
 
 M:: ppc %compare-imm-branch ( label src1 src2 cc -- )
-    src1 src2 (%compare)
+    src1 src2 (%compare-imm)
     label cc %branch ;
 
 :: (%branch) ( label branch1 branch2 -- )
@@ -571,7 +580,7 @@ M:: ppc %compare-float-ordered-branch ( label src1 src2 cc -- )
     label branch1 branch2 (%branch) ;
 
 M:: ppc %compare-float-unordered-branch ( label src1 src2 cc -- )
-    cc src1 src2 \ (%compare-float-unordered) (%compare-float) :> branch2 :> branch1
+    src1 src2 cc \ (%compare-float-unordered) (%compare-float) :> branch2 :> branch1
     label branch1 branch2 (%branch) ;
 
 : load-from-frame ( dst n rep -- )