Joe Groff
7520da41cc
use MOVDDUP for double-2 broadcast to eliminate a %copy
2009-09-28 12:00:03 -05:00
Joe Groff
2e8bb98781
cpu.x86.assembler: make SSE shuffle instructions accept an array of indexes so they're easier to use
2009-09-28 11:45:45 -05:00
Joe Groff
965730efbe
SSE integer gather and broadcast
2009-09-28 11:24:08 -05:00
Slava Pestov
4abfe06b51
Fixing various test failures caused by C type parser change, and clarify C type docs some more
2009-09-28 08:48:39 -05:00
Slava Pestov
9a06e6f424
math.vectors.simd: add intrinsic for int-4-boa, uint-4-boa, fix tests for C type parser change, fix software fallback for horizontal shifts
2009-09-28 06:34:22 -05:00
Slava Pestov
08a2eb74f4
cpu.x86: shifts didn't work if dst != src1; re-organize file a bit
2009-09-28 05:39:53 -05:00
Slava Pestov
f73bb2d068
cpu.x86.32: fix %unary/binary-float-function on Windows; need to look up symbols in libm and not VM binary
2009-09-28 04:51:53 -05:00
Phil Dawes
6fa0a93498
ppc asm to pass vm pointer: initial bootstrap
2009-09-28 07:48:37 +01:00
Slava Pestov
7e4b9b6377
cpu.x86: fix regression: fsqrt intrinsic wasn't used
2009-09-28 02:27:55 -05:00
Slava Pestov
b2ea3afd84
math.vectors.simd: add hlshift, hrshift (128-bit shift), vbitandn intrinsics
2009-09-28 02:17:46 -05:00
Slava Pestov
59fbe85c9b
compiler.cfg: nuke ##bignum>integer and ##integer>bignum since they were unused
2009-09-27 20:36:05 -05:00
Slava Pestov
f757b454cc
Merge branch 'master' into more_aggressive_coalescing
2009-09-27 19:29:50 -05:00
Slava Pestov
705b4ab5c3
compiler.cfg.linear-scan: fix partial sync point logic in case where dst == src, and clean up spilling code
2009-09-27 19:28:20 -05:00
Slava Pestov
91e63c0c6f
cpu.x86.32: implement %unary-float-function and %binary-float-function; speeds up partial-sums and struct-arrays benchmarks
2009-09-27 18:06:30 -05:00
Slava Pestov
1e841e5086
compiler.cfg.ssa.destruction: more aggressive coalescing work in progress
2009-09-27 17:17:26 -05:00
Joe Groff
dce02fcdfb
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-26 20:38:19 -05:00
Joe Groff
2cf0f3e5d3
move alien.inline, alien.cxx, alien.marshall to unmaintained; nuke alien.structs
2009-09-26 20:37:42 -05:00
sheeple
3476f2e28c
Fixing PPC backend for ##slot change
2009-09-26 13:21:42 -05:00
sheeple
01a4047126
Merge branch 'slots' of git://factorcode.org/git/factor into slots
...
Conflicts:
basis/cpu/x86/x86.factor
2009-09-26 03:12:42 -05:00
Daniel Ehrenberg
30bca97b61
An attempt at porting the slot change to PPC
2009-09-26 02:58:18 -05:00
Daniel Ehrenberg
51f2bbd74b
Completing slot and set-slot changes on x86
2009-09-26 01:39:48 -05:00
Daniel Ehrenberg
7bd330cfd5
Making ##slot and ##set-slot not have a temporary parameter
2009-09-26 00:28:14 -05:00
Slava Pestov
8610fa5e48
cpu: cleanups
2009-09-25 21:47:05 -05:00
Phil Dawes
46f90c7588
removed %vm-invoke-*-arg completely
2009-09-25 20:03:03 +01:00
Phil Dawes
d457df1fbf
moved %(un)nest-stacks out to cpu specific files to eliminate %vm-invoke from compiler.codegen
2009-09-25 19:32:08 +01:00
Phil Dawes
28420c587a
isolated %vm-invoke-blah-arg crap to 64.factor
2009-09-25 19:02:41 +01:00
Phil Dawes
68f85a69b3
removed param-reg-* HOOKs
2009-09-25 18:58:55 +01:00
Phil Dawes
a07a2f7496
compiler.codegen passes temp reg to %call-gc
2009-09-25 18:48:13 +01:00
Phil Dawes
4552e02624
made inline_gc a VM_C_API function
2009-09-25 18:29:07 +01:00
Slava Pestov
93149a6be9
Merge branch 'fix_stack_alignment' of git://github.com/phildawes/factor
2009-09-24 19:54:51 -05:00
Phil Dawes
f5c70d4ad7
make inline_gc regparm(3) and cleaned up %call-gc stack alignment
2009-09-24 21:45:56 +01:00
Slava Pestov
0686a7a65c
cpu.ppc: add representation hooks for shifts
2009-09-24 13:00:12 -05:00
Slava Pestov
cb497f009b
Merge branch 'vm_cleanup' of git://github.com/phildawes/factor
2009-09-24 04:31:55 -05:00
Slava Pestov
1b84f179cd
cpu.x86: don't generate SSE2 instructions if only SSE1 is available
2009-09-24 04:07:15 -05:00
Slava Pestov
abe3b869cf
cpu.ppc: fix compile errors
2009-09-24 03:55:01 -05:00
Slava Pestov
7b6128dd03
math.vectors.simd: add v<< and v>> intrinsics for bitwise shifts on elements
2009-09-24 03:32:39 -05:00
Phil Dawes
a3c84ea278
x86 bootstrap cleanup: renamed arg to arg1
2009-09-24 08:16:57 +01:00
Phil Dawes
d25fe552ab
removed superflous whitspace lines
2009-09-24 08:02:14 +01:00
Slava Pestov
e4d566b1c2
cpu.ppc: make it load
2009-09-24 00:13:27 -05:00
Slava Pestov
3d0c9c4337
cpu.ppc: fix typos
2009-09-23 23:38:17 -05:00
Slava Pestov
4ec566b15d
cpu.x86/ppc: unify register-to-register moves using %copy so that better coalescing can eliminate more moves later
2009-09-23 22:49:54 -05:00
Slava Pestov
3104aa3962
cpu.ppc: add dummy vector ops
2009-09-23 20:31:12 -05:00
Slava Pestov
dfc9fd071e
Add longlong-2, ulonglong-2, longlong-4, ulonglong-4 SIMD types, fix int-4 multiplication on SSE2
2009-09-23 20:23:25 -05:00
Slava Pestov
563ecbd871
cpu.x86.assembler: cleanup
2009-09-23 19:30:36 -05:00
Slava Pestov
6d4e5af088
cpu.x86.features: don't fold away sse-version, instead memoize it and recompute on startup
2009-09-23 05:13:15 -05:00
Slava Pestov
43fa252af5
math.vectors.simd: new operations: vabs vsqrt vbitand vbitor vbitxor
2009-09-23 02:47:14 -05:00
Slava Pestov
d23826906f
Merge branch 'master' into integer-simd
2009-09-22 20:21:40 -05:00
Slava Pestov
b0f87fd6a0
cpu.ppc: fix load errors
2009-09-22 05:24:34 -05:00
Slava Pestov
603a560eaf
cpu.x86: fix using list
2009-09-20 23:24:30 -05:00
Slava Pestov
9d90bdd439
Fix conflict
2009-09-20 23:18:07 -05:00
Slava Pestov
ea44ea3522
math.vectors.simd: add saturated arithmetic operations
2009-09-20 23:16:02 -05:00
Slava Pestov
acea55c692
math.vectors: add v+- word which is accelerated by SSE3
2009-09-20 17:43:16 -05:00
Slava Pestov
47d8763340
More integer SIMD work
...
- move generated vocab support from specialized-arrays to vocabs.generated
- add fuzz testing to math.vectors.simd
- add alien type support for integer SIMD vectors
- SIMD: parsing word generates a SIMD type, instead of pre-generating them all in math.vectors.simd
2009-09-20 16:48:17 -05:00
Slava Pestov
29c4512066
cpu.x86: cleanup
2009-09-20 04:17:34 -05:00
Slava Pestov
f8a91438cd
Merge Phil Dawes' VM work
2009-09-20 03:48:08 -05:00
Slava Pestov
e77341b90c
math.vectors.simd: redesign to be more flexible, integer SIMD work in progress
2009-09-20 02:08:32 -05:00
Joe Groff
076ab42dc3
move some allocation words that don't really have much to do with c types out of alien.c-types into a new alien.data vocab
2009-09-17 22:36:05 -05:00
Joe Groff
aa1edad078
disambiguate math:float in cpu.ppc
2009-09-17 19:10:40 -05:00
Joe Groff
01d2ef415a
get compiler tests loading
2009-09-16 09:20:47 -05:00
Phil Dawes
c7b7517f36
small x86 asm cleanup
2009-09-16 08:22:17 +01:00
Phil Dawes
8a65f35c31
vm passed in primitives as arg0 for x86.64
2009-09-16 08:22:17 +01:00
Phil Dawes
4af25578d8
fixed up some alien boxing (x86 32 & 64)
2009-09-16 08:20:50 +01:00
Phil Dawes
0470b7d2c5
fixed vm ptr passing to to_value_struct
2009-09-16 08:20:50 +01:00
Phil Dawes
1b92721660
fixed vm ptr passing to box_small_struct
2009-09-16 08:20:50 +01:00
Phil Dawes
888eae9554
fixed vm ptr passing to box_value_struct
2009-09-16 08:20:50 +01:00
Phil Dawes
3345922330
quick test vocab for mt stuff
2009-09-16 08:20:50 +01:00
Phil Dawes
b02c602a89
added vm passing to some alien/boxing functions and added some vm asserts
2009-09-16 08:20:10 +01:00
Phil Dawes
5cd2fbb564
vm ptr passed to lazy_jit_compile on x86.64
2009-09-16 08:20:10 +01:00
Phil Dawes
be1b079eb5
Primitives now pass vm ptr on 64bit x86
2009-09-16 08:20:09 +01:00
Phil Dawes
0bc7c0c1d0
separated vm-1st-arg and vm-3rd-arg asm invoke words (needed for ppc & x86.64)
2009-09-16 08:20:09 +01:00
Phil Dawes
005549ba43
vm pointer passed to nest_stacks and unnest_stacks (win32)
2009-09-16 08:17:26 +01:00
Phil Dawes
cdb6304fef
Dev checkpoint
2009-09-16 08:17:26 +01:00
Phil Dawes
3b52df9e02
added vm ptr to x86.32 boxing asm
2009-09-16 08:16:33 +01:00
Phil Dawes
ff54a57eb3
added code to pass vm ptr to some unboxers
2009-09-16 08:16:32 +01:00
Phil Dawes
ff8f2b10ec
fixed up getenv compiler intrinsic to use vm struct userenv
2009-09-16 08:16:32 +01:00
Phil Dawes
5bb04857bf
moved cards_offset and decks_offset into vm struct (for x86)
2009-09-16 08:16:31 +01:00
Phil Dawes
c010afc345
nursery global variable moved into vm
2009-09-16 08:16:31 +01:00
Phil Dawes
0be499de8a
renamed to vm-field-offset. Slava's better at naming than me
2009-09-16 08:16:31 +01:00
sheeple
0b0937cf0e
ppc asm to get stack_chain using vm ptr
2009-09-16 08:16:31 +01:00
Phil Dawes
88d3179358
Added a vm C-STRUCT, using it for struct offsets in x86 asm
2009-09-16 08:16:31 +01:00
Phil Dawes
9a37b6abb6
moved stack_chain into vm struct
2009-09-16 08:16:31 +01:00
Phil Dawes
465f06ebc2
throw_impl now forwards the vm ptr
2009-09-16 08:16:30 +01:00
Phil Dawes
4afc16e95b
passing vm ptr to lazy_jit_compile mostly working
2009-09-16 08:16:30 +01:00
Phil Dawes
6a193bb0d5
Added %vm-invoke to pass vm ptr to vm functions (x86.32 only, otherwise uses singleton vm)
2009-09-16 08:16:30 +01:00
Phil Dawes
57011aed51
vm ptr passed to primitives on X86.32 (other cpus still use singleton vm ptr)
2009-09-16 08:16:30 +01:00
Joe Groff
3b4330fcf6
get things to a point where they bootstrap again
2009-09-15 21:43:18 -05:00
Joe Groff
ab8abeaee4
Merge branch 'master' into c-type-words
2009-09-15 19:14:41 -05:00
Joe Groff
4d16c569f0
struct classes now make their own C type without help from alien.structs. remove alien.structs dependencies from everywhere outside of alien and compiler, and have the FFI handle both alien.structs and classes.struct c-types
2009-09-15 17:38:49 -05:00
Joe Groff
35b76b83af
convert compiler cpu backends to use c-type words
2009-09-15 16:08:42 -05:00
Slava Pestov
64cddef3e1
cpu.ppc: fix %single>double-float and %double>single-float
2009-09-10 13:04:58 -05:00
Joe Groff
4d1e832f79
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-09 17:14:48 -05:00
Joe Groff
c50a35c062
altivec instructions for powerpc assembler
2009-09-09 17:14:36 -05:00
Slava Pestov
ed09dfe3ae
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-09 13:56:20 -05:00
Slava Pestov
daff63071f
Fix the build
2009-09-09 13:44:54 -05:00
Slava Pestov
a01f693335
cpu.ppc: fix bootstrap
2009-09-08 23:53:51 -05:00
Slava Pestov
0e2a3e4292
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-08 22:34:17 -05:00
Slava Pestov
cd5133b233
cpu.x86: tweak SIMD intrinsics
2009-09-08 22:34:01 -05:00
Joe Groff
f166797dd4
no really, update ppc for argument order changes
2009-09-08 22:21:00 -05:00
Joe Groff
3003b9e5d0
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-08 21:58:25 -05:00
Joe Groff
c95a7febb0
update cpu.ppc for argument order changes
2009-09-08 21:58:11 -05:00