Commit Graph

314 Commits (6da959ff3bb924d2c22201c1bf9b6eaf003e09a7)

Author SHA1 Message Date
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 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
Slava Pestov 680e6424bc cpu.ppc: fix %single>double-float and %double>single-float 2009-09-10 13:04:58 -05:00
Joe Groff 687a86fbb7 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-09 17:14:48 -05:00
Joe Groff 54b8f04433 altivec instructions for powerpc assembler 2009-09-09 17:14:36 -05:00
Slava Pestov c04fb12f4c Merge branch 'master' of git://factorcode.org/git/factor 2009-09-09 13:56:20 -05:00
Slava Pestov 66f500bdd7 Fix the build 2009-09-09 13:44:54 -05:00
Slava Pestov 9f33d7e0fa cpu.ppc: fix bootstrap 2009-09-08 23:53:51 -05:00
Slava Pestov dd56449145 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-08 22:34:17 -05:00
Slava Pestov 19a5f58b53 cpu.x86: tweak SIMD intrinsics 2009-09-08 22:34:01 -05:00
Joe Groff fe015ce2f0 no really, update ppc for argument order changes 2009-09-08 22:21:00 -05:00
Joe Groff b71f50ee04 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-08 21:58:25 -05:00
Joe Groff b64b4a5cd9 update cpu.ppc for argument order changes 2009-09-08 21:58:11 -05:00
Slava Pestov 020e3b5713 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-08 21:51:21 -05:00
Slava Pestov 092b31910d compiler: separate ##save-context instruction from ##alien-invoke, generate a ##save-context for libm calls, and add a pass to combine multiple context saves within a basic block. Fixes crashes with FP traps thrown by libm functions on x86-32 2009-09-08 21:50:55 -05:00
Joe Groff f4e574383c typos in cpu.ppc 2009-09-08 21:44:11 -05:00
Slava Pestov fe0c137a1b Merge branch 'master' of git://factorcode.org/git/factor 2009-09-08 19:35:14 -05:00
Slava Pestov 3e90786bc1 Fix various test failures 2009-09-08 19:18:56 -05:00
Doug Coleman 8351100f7e Merge branch 'master' of git://factorcode.org/git/factor 2009-09-08 17:05:58 -05:00
Joe Groff 025a5b7b15 split unordered and ordered float comparison intrinsics in compiler; generate only unordered comparisons for now 2009-09-08 17:04:26 -05:00
Doug Coleman 74dea1e898 duplicate using 2009-09-08 17:02:31 -05:00
Slava Pestov 6396e901ca cpu.x86.features: better wording 2009-09-08 14:17:05 -05:00
Slava Pestov 05bffecab7 cpu.x86.features: add -sse-version command-line switch to override SSE detection 2009-09-08 13:56:37 -05:00
Slava Pestov 8eeeeb5c5b inline alien-vector and set-alien-vector if SIMD is not available for a small speedup 2009-09-08 13:56:17 -05:00
Slava Pestov ef09991500 Fixes 2009-09-08 00:13:18 -05:00
Slava Pestov 17821626c3 Fix conflicts 2009-09-07 23:51:25 -05:00
Joe Groff 9430fdc4b6 i had comisd/ucomisd backwards on x86 2009-09-04 12:30:30 -05:00
Slava Pestov 09c8175919 fix some typos in cpu.ppc 2009-09-04 11:18:41 -05:00
Slava Pestov 7f0ab1dc1e Merge branch 'master' of git://factorcode.org/git/factor into ppc-float-compare 2009-09-04 10:58:50 -05:00
Joe Groff e36700feb0 update powerpc compiler to generate correct float comparisons 2009-09-04 10:51:12 -05:00
Slava Pestov 7571d50bd3 cpu.ppc: fix typo 2009-09-04 06:41:33 -05:00
Slava Pestov 1f5193198b compiler: clean up code generation for alien boxing/unboxing a bit 2009-09-03 21:22:43 -05:00
Joe Groff b1ba82c84f convert comparison branch code in compiler to use locals 2009-09-03 21:19:39 -05:00
Slava Pestov 20dfbf7ac8 More SIMD work
- Rename SIMD types and register representations: <type>-<count> rather than <count><type>-array
- Make a functor to define 256-bit vector types, use it to define float-8 type
- Make SIMD instructions pure-insns so that they participate in value numbering
2009-09-03 20:58:56 -05:00
Joe Groff 0b9e5c034a add compiler comparison codes for floating-point unordered comparisons; update x86 backend to generate proper code for all floating-point comparisons 2009-09-03 20:32:05 -05:00
Slava Pestov 80ed4bc918 Merge branch 'master' into simd 2009-09-03 03:45:58 -05:00
Slava Pestov f811208271 Detect SSE version and enable the correct set of SIMD intrinsics 2009-09-03 03:28:38 -05:00
Slava Pestov 52b99c050e Initial implementation of SSE vector intrinsics:
- cpu.architecture: add SSE vector representations
- compiler.cfg.intrinsics.alien: remove an attempt at optimization that value numbering handles now
- compiler.cfg.representations: support instructions where the representation is set in the 'rep' slot, and support conversions between single and double floats
- alien-float, set-alien-float now use the single float representation, and the conversion is implicit; this fixes a long-standing bug where a register could get clobbered because of how %set-alien-float was defined on x86
- math.vectors.specialization: add support for SIMD specialization (where the vector word's body is replaced by another quotation), also specialize the 'sum' word
- math.vectors.simd: 4float-array, 2double-array, 4double-array types, and specializers for the math.vectors words
2009-09-03 02:33:07 -05:00
Joe Groff e9a5ed5931 i suck at reading tech docs--those were m64 instructions, not mm instructions 2009-09-02 12:58:35 -05:00
Joe Groff 0ddf19d033 get rid of useless mm->xmm instructions in cpu.x86.assembler, add MOVHLPS and MOVLHPS 2009-09-02 11:06:08 -05:00
Slava Pestov 775b9af2f7 compiler: eliminate boilerplate by centralizing info in declarative INSN: syntax 2009-09-02 06:22:37 -05:00
Slava Pestov 14a063dd92 cpu.ppc: implement fast float function calls; 3x speedup on benchmark.struct-arrays on PowerPC 2009-09-01 15:19:26 -05:00
Slava Pestov e659203907 cpu.ppc: fix %box-displaced-alien 2009-08-30 20:56:04 -05:00