Merge branch 'master' of git://factorcode.org/git/factor
commit
5ccf7bc99f
|
@ -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 ;
|
||||
|
|
|
@ -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 ;
|
||||
|
|
|
@ -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 ;
|
||||
|
|
|
@ -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 -- )
|
||||
|
|
Loading…
Reference in New Issue