Commit Graph

456 Commits (98c3e1f7c17adaa019eb09cfbbbd99e46631d244)

Author SHA1 Message Date
Joe Groff 37a091a188 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-30 23:04:04 -05:00
Joe Groff 21e4b28b67 add a %blend-vector intrinsic for v? 2009-09-30 23:03:59 -05:00
Slava Pestov 65421b111b math.vectors.simd: use fallbacks for hlshift, hrshift, vshuffle if parameter is not a literal;al; element access in int-4 on x86-64 now sign-extends the value; don't throw error at compile time if parameter for vshuffle does not have enough elements 2009-09-30 20:04:37 -05:00
Slava Pestov de58c3c294 cpu.ppc: update for alien intrinsic changes 2009-09-30 18:22:59 -05:00
Phil Dawes 86593598d0 ppc asm to pass vm pointer: alien + compiled code 2009-09-30 21:23:53 +01:00
Slava Pestov 8e201ca4b7 Various minor compiler tweaks: Combine address calculation with dereferencing in alien accessors; convert SIMD XOR of a vector with itself into an XOR of the destination with itself; convert SIMD unbox of zero vector into XOR of the destination with itself; fix SIMD indexing on x86-64 2009-09-30 05:00:36 -05:00
Slava Pestov 2b13245704 math.vectors.simd: add fast intrinsic for 'nth', replace broadcast primitive with shuffles 2009-09-29 04:48:11 -05:00
Slava Pestov a6e8277b2c math.vectors.simd: add vshuffle intrinsic 2009-09-28 23:12:13 -05:00
Slava Pestov db217295b0 Work in progress 2009-09-28 17:31:34 -05:00
Slava Pestov e343b46479 cpu.ppc: update for %unary/binary-float-function change 2009-09-28 16:40:52 -05:00
Slava Pestov 49dba53760 cpu.x86: cleanups 2009-09-28 16:38:35 -05:00
Joe Groff 4e2e45b70d use PSHUFD for longlong-2 broadcast when dst != src to avoid a %copy 2009-09-28 12:04:08 -05:00
Joe Groff 3f90473f09 use MOVDDUP for double-2 broadcast to eliminate a %copy 2009-09-28 12:00:03 -05:00
Joe Groff 467c389948 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 f7d416a4e4 SSE integer gather and broadcast 2009-09-28 11:24:08 -05:00
Slava Pestov f08521bf83 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 1109fb5725 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 dc1b6043dc cpu.x86: shifts didn't work if dst != src1; re-organize file a bit 2009-09-28 05:39:53 -05:00
Slava Pestov 542dd577d9 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 6f0d25a8b3 ppc asm to pass vm pointer: initial bootstrap 2009-09-28 07:48:37 +01:00
Slava Pestov daf8f0ebba cpu.x86: fix regression: fsqrt intrinsic wasn't used 2009-09-28 02:27:55 -05:00
Slava Pestov 10c5fe5933 math.vectors.simd: add hlshift, hrshift (128-bit shift), vbitandn intrinsics 2009-09-28 02:17:46 -05:00
Slava Pestov e8cfaccef0 compiler.cfg: nuke ##bignum>integer and ##integer>bignum since they were unused 2009-09-27 20:36:05 -05:00
Slava Pestov 6dd8e4657e Merge branch 'master' into more_aggressive_coalescing 2009-09-27 19:29:50 -05:00
Slava Pestov 6f2a4eba51 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 2efab6efad 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 a267100781 compiler.cfg.ssa.destruction: more aggressive coalescing work in progress 2009-09-27 17:17:26 -05:00
Joe Groff bf3eef9e2d Merge branch 'master' of git://factorcode.org/git/factor 2009-09-26 20:38:19 -05:00
Joe Groff e30819bcac move alien.inline, alien.cxx, alien.marshall to unmaintained; nuke alien.structs 2009-09-26 20:37:42 -05:00
sheeple 24b27f4c42 Fixing PPC backend for ##slot change 2009-09-26 13:21:42 -05:00
sheeple 2b35f52ed2 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 01082d743d An attempt at porting the slot change to PPC 2009-09-26 02:58:18 -05:00
Daniel Ehrenberg 364332bd70 Completing slot and set-slot changes on x86 2009-09-26 01:39:48 -05:00
Daniel Ehrenberg fb7f6ab455 Making ##slot and ##set-slot not have a temporary parameter 2009-09-26 00:28:14 -05:00
Slava Pestov 2e1be3f513 cpu: cleanups 2009-09-25 21:47:05 -05:00
Phil Dawes 64aa4fba9f removed %vm-invoke-*-arg completely 2009-09-25 20:03:03 +01:00
Phil Dawes 5b404aae7e 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 f9e736c1f0 isolated %vm-invoke-blah-arg crap to 64.factor 2009-09-25 19:02:41 +01:00
Phil Dawes baa41f451f removed param-reg-* HOOKs 2009-09-25 18:58:55 +01:00
Phil Dawes c0957ed908 compiler.codegen passes temp reg to %call-gc 2009-09-25 18:48:13 +01:00
Phil Dawes aa71248937 made inline_gc a VM_C_API function 2009-09-25 18:29:07 +01:00
Slava Pestov fab916fb97 Merge branch 'fix_stack_alignment' of git://github.com/phildawes/factor 2009-09-24 19:54:51 -05:00
Phil Dawes 8b005f5b1d make inline_gc regparm(3) and cleaned up %call-gc stack alignment 2009-09-24 21:45:56 +01:00
Slava Pestov a562722c4c cpu.ppc: add representation hooks for shifts 2009-09-24 13:00:12 -05:00
Slava Pestov 2ea0b9da1d Merge branch 'vm_cleanup' of git://github.com/phildawes/factor 2009-09-24 04:31:55 -05:00
Slava Pestov 1b30310a35 cpu.x86: don't generate SSE2 instructions if only SSE1 is available 2009-09-24 04:07:15 -05:00
Slava Pestov a702bfa215 cpu.ppc: fix compile errors 2009-09-24 03:55:01 -05:00
Slava Pestov 24039cb56a math.vectors.simd: add v<< and v>> intrinsics for bitwise shifts on elements 2009-09-24 03:32:39 -05:00
Phil Dawes c747e39923 x86 bootstrap cleanup: renamed arg to arg1 2009-09-24 08:16:57 +01:00
Phil Dawes 911471c411 removed superflous whitspace lines 2009-09-24 08:02:14 +01:00
Slava Pestov a345c26a14 cpu.ppc: make it load 2009-09-24 00:13:27 -05:00
Slava Pestov 7c4632d2b9 cpu.ppc: fix typos 2009-09-23 23:38:17 -05:00
Slava Pestov 3581d0b09b 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 5854fa0c03 cpu.ppc: add dummy vector ops 2009-09-23 20:31:12 -05:00
Slava Pestov 165496d2f2 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 960602059d cpu.x86.assembler: cleanup 2009-09-23 19:30:36 -05:00
Slava Pestov 34a533d9f4 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 abac963882 math.vectors.simd: new operations: vabs vsqrt vbitand vbitor vbitxor 2009-09-23 02:47:14 -05:00
Slava Pestov fda8870848 Merge branch 'master' into integer-simd 2009-09-22 20:21:40 -05:00
Slava Pestov 9b26bd059d cpu.ppc: fix load errors 2009-09-22 05:24:34 -05:00
Slava Pestov e4872212b1 cpu.x86: fix using list 2009-09-20 23:24:30 -05:00
Slava Pestov e04fba6bc7 Fix conflict 2009-09-20 23:18:07 -05:00
Slava Pestov 66871995c9 math.vectors.simd: add saturated arithmetic operations 2009-09-20 23:16:02 -05:00
Slava Pestov 78c949b9b7 math.vectors: add v+- word which is accelerated by SSE3 2009-09-20 17:43:16 -05:00
Slava Pestov dfb43bd2ca 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 0d77efef29 cpu.x86: cleanup 2009-09-20 04:17:34 -05:00
Slava Pestov fc5fe2bd2a Merge Phil Dawes' VM work 2009-09-20 03:48:08 -05:00
Slava Pestov ea2bcd69c7 math.vectors.simd: redesign to be more flexible, integer SIMD work in progress 2009-09-20 02:08:32 -05:00
Joe Groff 4a1422e7fe 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 db2eba9b58 disambiguate math:float in cpu.ppc 2009-09-17 19:10:40 -05:00
Joe Groff ac5ea1769b get compiler tests loading 2009-09-16 09:20:47 -05:00
Phil Dawes 30b8b98446 small x86 asm cleanup 2009-09-16 08:22:17 +01:00
Phil Dawes a73886942a vm passed in primitives as arg0 for x86.64 2009-09-16 08:22:17 +01:00
Phil Dawes 123c6ce703 fixed up some alien boxing (x86 32 & 64) 2009-09-16 08:20:50 +01:00
Phil Dawes 46dac01d50 fixed vm ptr passing to to_value_struct 2009-09-16 08:20:50 +01:00
Phil Dawes 54d8285c7e fixed vm ptr passing to box_small_struct 2009-09-16 08:20:50 +01:00
Phil Dawes 0841b7ee90 fixed vm ptr passing to box_value_struct 2009-09-16 08:20:50 +01:00
Phil Dawes 898f5be1e0 quick test vocab for mt stuff 2009-09-16 08:20:50 +01:00
Phil Dawes 26586c24f0 added vm passing to some alien/boxing functions and added some vm asserts 2009-09-16 08:20:10 +01:00
Phil Dawes d7e2f770c0 vm ptr passed to lazy_jit_compile on x86.64 2009-09-16 08:20:10 +01:00
Phil Dawes 44d2d8672e Primitives now pass vm ptr on 64bit x86 2009-09-16 08:20:09 +01:00
Phil Dawes f5e6d43e1e 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 6e5ddc0c33 vm pointer passed to nest_stacks and unnest_stacks (win32) 2009-09-16 08:17:26 +01:00
Phil Dawes b629429086 Dev checkpoint 2009-09-16 08:17:26 +01:00
Phil Dawes 6c046ec5bf added vm ptr to x86.32 boxing asm 2009-09-16 08:16:33 +01:00
Phil Dawes 780415b159 added code to pass vm ptr to some unboxers 2009-09-16 08:16:32 +01:00
Phil Dawes 2a1a4ccf27 fixed up getenv compiler intrinsic to use vm struct userenv 2009-09-16 08:16:32 +01:00
Phil Dawes cb3df86491 moved cards_offset and decks_offset into vm struct (for x86) 2009-09-16 08:16:31 +01:00
Phil Dawes fd72e140d2 nursery global variable moved into vm 2009-09-16 08:16:31 +01:00
Phil Dawes 6da959ff3b renamed to vm-field-offset. Slava's better at naming than me 2009-09-16 08:16:31 +01:00
sheeple 3602f86ab1 ppc asm to get stack_chain using vm ptr 2009-09-16 08:16:31 +01:00
Phil Dawes 77a13b1b6a Added a vm C-STRUCT, using it for struct offsets in x86 asm 2009-09-16 08:16:31 +01:00
Phil Dawes f9f1031dd8 moved stack_chain into vm struct 2009-09-16 08:16:31 +01:00
Phil Dawes 53aa98902e throw_impl now forwards the vm ptr 2009-09-16 08:16:30 +01:00
Phil Dawes 60d0300876 passing vm ptr to lazy_jit_compile mostly working 2009-09-16 08:16:30 +01:00
Phil Dawes 1fda8af73b 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 df37e010d4 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 334e93bbbf get things to a point where they bootstrap again 2009-09-15 21:43:18 -05:00
Joe Groff e33857a0c3 Merge branch 'master' into c-type-words 2009-09-15 19:14:41 -05:00
Joe Groff 02b797f11b 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