Merge branch 'master' of git://factorcode.org/git/factor

db4
Slava Pestov 2009-07-13 22:59:19 -05:00
commit 5ccf7bc99f
4 changed files with 27 additions and 15 deletions
basis
compiler/cfg/value-numbering/rewrite
math/matrices
specialized-vectors/functor
ui/gadgets/worlds

View File

@ -52,9 +52,12 @@ M: insn rewrite ;
[ src2>> tag-mask get bitand 0 = ]
} 1&& ; inline
: tagged>constant ( n -- n' )
tag-bits get neg shift ; inline
: (rewrite-tagged-comparison) ( insn -- src1 src2 cc )
[ src1>> vreg>expr in1>> vn>vreg ]
[ src2>> tag-bits get neg shift ]
[ src2>> tagged>constant ]
[ cc>> ]
tri ; inline
@ -206,15 +209,20 @@ M: ##or-imm rewrite [ bitor ] \ ##or-imm combine-imm ;
M: ##xor-imm rewrite [ bitxor ] \ ##xor-imm combine-imm ;
: rewrite-add? ( insn -- ? )
src2>> vreg-small-constant? ;
M: ##add rewrite
dup rewrite-add? [
: new-arithmetic ( obj op -- )
[
[ dst>> ]
[ src1>> ]
[ src2>> vreg>constant ] tri \ ##add-imm new-insn
dup number-values
] when ;
[ src2>> vreg>constant ] tri
] dip new-insn dup number-values ; inline
M: ##sub rewrite constant-fold ;
: rewrite-arithmetic ( insn op -- ? )
over src2>> vreg-small-constant? [
new-arithmetic constant-fold
] [
drop
] if ; inline
M: ##add rewrite \ ##add-imm rewrite-arithmetic ;
M: ##sub rewrite \ ##sub-imm rewrite-arithmetic ;

View File

@ -120,7 +120,7 @@ IN: math.matrices
PRIVATE>
: cross ( vec1 vec2 -- vec3 ) [ i ] [ j ] [ k ] 2tri 3array ;
: cross ( vec1 vec2 -- vec3 ) [ [ i ] [ j ] [ k ] 2tri ] keep 3sequence ;
: proj ( v u -- w )
[ [ v. ] [ norm-sq ] bi / ] keep n*v ;

View File

@ -1,6 +1,6 @@
! Copyright (C) 2008, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: functors sequences sequences.private growable
USING: accessors alien.c-types functors sequences sequences.private growable
prettyprint.custom kernel words classes math parser ;
QUALIFIED: vectors.functor
IN: specialized-vectors.functor
@ -21,6 +21,8 @@ V A <A> vectors.functor:define-vector
M: V contract 2drop ;
M: V byte-length underlying>> byte-length ;
M: V pprint-delims drop \ V{ \ } ;
M: V >pprint-sequence ;

View File

@ -163,9 +163,11 @@ M: world resize-world
M: world (>>dim)
[ call-next-method ]
[
dup handle>>
[ [ set-gl-context ] [ resize-world ] bi ]
[ drop ] if
dup active?>> [
dup handle>>
[ [ set-gl-context ] [ resize-world ] bi ]
[ drop ] if
] [ drop ] if
] bi ;
GENERIC: draw-world* ( world -- )