Slava Pestov
a506754739
cpu.ppc: updates for write barrier and allocation changes (untested)
2009-10-15 04:54:16 -05:00
Slava Pestov
2efc7d1b9e
cpu.ppc.bootstrap: update for JIT relocation changes
2009-10-15 04:47:54 -05:00
Slava Pestov
9357ee378e
cpu.architecture: move dummy -reps words here, from cpu.ppc
2009-10-08 03:48:03 -05:00
Joe Groff
529c444e32
add insns for vector pack, unpack, integer>float, and float>integer
2009-10-05 22:34:14 -05:00
Slava Pestov
b4e36608da
compiler.cfg: remove _gc instruction, it doesn't need to exist, and change GC checks to ensure that the right amount of space is available instead of blindly checking for 1Kb
2009-10-05 05:27:49 -05:00
Joe Groff
0c9c3d4859
add %merge-vector-head and %merge-vector-tail instructions to back vmerge
2009-10-03 21:48:53 -05:00
Joe Groff
04bb03bb61
add intrinsics for v<=, v<, v=, v>, v>=, vunordered?
2009-10-03 11:29:34 -05:00
Joe Groff
38f413a8a6
add intrinsic for vnot/vbitnot
2009-10-02 20:04:28 -05:00
Slava Pestov
df9b0f695f
cpu.ppc: remove useless comment
2009-10-02 03:31:53 -05:00
Slava Pestov
2c136d6536
Merge branch 'reentrantvm' of git://github.com/phildawes/factor
2009-10-02 03:28:21 -05:00
Joe Groff
53b265f682
Merge branch 'master' of git://factorcode.org/git/factor
...
Conflicts:
basis/compiler/codegen/codegen.factor
2009-10-01 23:14:16 -05:00
Joe Groff
d14f150b58
%test-vector instruction for vany?, vall?, vnone?
2009-10-01 15:35:38 -05:00
Joe Groff
987ced4070
%compare-vector instruction (only does v= for now)
2009-10-01 14:31:37 -05:00
Joe Groff
a93f8f66f9
Revert "add a %blend-vector intrinsic for v?"
...
This reverts commit 21e4b28b67
.
2009-09-30 23:40:37 -05:00
Joe Groff
67cc45235d
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-30 23:04:04 -05:00
Joe Groff
7db7b63552
add a %blend-vector intrinsic for v?
2009-09-30 23:03:59 -05:00
Slava Pestov
a7dd4ad5cc
cpu.ppc: update for alien intrinsic changes
2009-09-30 18:22:59 -05:00
Phil Dawes
bc70311e69
ppc asm to pass vm pointer: alien + compiled code
2009-09-30 21:23:53 +01:00
Slava Pestov
f395d83379
math.vectors.simd: add fast intrinsic for 'nth', replace broadcast primitive with shuffles
2009-09-29 04:48:11 -05:00
Slava Pestov
e1a9b25562
cpu.ppc: update for %unary/binary-float-function change
2009-09-28 16:40:52 -05:00
Phil Dawes
6fa0a93498
ppc asm to pass vm pointer: initial bootstrap
2009-09-28 07:48:37 +01: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
1e841e5086
compiler.cfg.ssa.destruction: more aggressive coalescing work in progress
2009-09-27 17:17:26 -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
Slava Pestov
8610fa5e48
cpu: cleanups
2009-09-25 21:47:05 -05: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
Slava Pestov
0686a7a65c
cpu.ppc: add representation hooks for shifts
2009-09-24 13:00:12 -05:00
Slava Pestov
abe3b869cf
cpu.ppc: fix compile errors
2009-09-24 03:55:01 -05: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
b0f87fd6a0
cpu.ppc: fix load errors
2009-09-22 05:24:34 -05:00
Slava Pestov
f8a91438cd
Merge Phil Dawes' VM work
2009-09-20 03:48:08 -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
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
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
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
c50a35c062
altivec instructions for powerpc assembler
2009-09-09 17:14:36 -05:00
Slava Pestov
a01f693335
cpu.ppc: fix bootstrap
2009-09-08 23:53:51 -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
Slava Pestov
8916fb7a3c
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-08 21:51:21 -05:00
Slava Pestov
7e2f0e5dbf
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
9be1f42fe9
typos in cpu.ppc
2009-09-08 21:44:11 -05:00
Joe Groff
0ea9949e51
split unordered and ordered float comparison intrinsics in compiler; generate only unordered comparisons for now
2009-09-08 17:04:26 -05:00
Slava Pestov
bbca00e2ae
Fix conflicts
2009-09-07 23:51:25 -05:00
Slava Pestov
382e1d5b0e
fix some typos in cpu.ppc
2009-09-04 11:18:41 -05:00
Slava Pestov
92d5d8f0c5
Merge branch 'master' of git://factorcode.org/git/factor into ppc-float-compare
2009-09-04 10:58:50 -05:00
Joe Groff
638e351131
update powerpc compiler to generate correct float comparisons
2009-09-04 10:51:12 -05:00
Slava Pestov
fc1bf07a1f
cpu.ppc: fix typo
2009-09-04 06:41:33 -05:00
Joe Groff
c480bec303
convert comparison branch code in compiler to use locals
2009-09-03 21:19:39 -05:00
Slava Pestov
4d5a4222b6
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
036ff77306
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
85a2bfab6c
compiler: eliminate boilerplate by centralizing info in declarative INSN: syntax
2009-09-02 06:22:37 -05:00
Slava Pestov
f91b539c31
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
6f1a7c731c
cpu.ppc: fix %box-displaced-alien
2009-08-30 20:56:04 -05:00
Slava Pestov
9595be4bf9
%box-displaced-alien: fix clobberage found by Doug
2009-08-30 05:11:08 -05:00
sheeple
98f93f799b
cpu.ppc: fix ##box-displaced-alien
2009-08-27 04:43:45 -05:00
Slava Pestov
f662e6403a
compiler: new inline intrinsic for <displaced-alien> where the inputs have known types; value numbering now eliminates unnecessary allocation of displaced aliens if the result is immediately unboxed again
2009-08-27 00:06:19 -05:00
Slava Pestov
b7e29ca8dd
cpu.ppc.assembler: LOAD32 assembler macro was busted
2009-08-25 22:37:10 -05:00
Slava Pestov
1afd001393
basis/cpu: eliminate some usages of rot
2009-08-25 19:38:48 -05:00
Slava Pestov
7b2c9df341
cpu.ppc.assembler: fix FMR and FMR. opcodes
2009-08-25 19:33:35 -05:00
sheeple
b14dd8ab67
cpu.ppc: integer>fixnum scratch area overlapped with the rest of stack frame, very bad
2009-08-22 20:23:28 -05:00
Slava Pestov
2c533472f8
Merge branch 'master' of git://factorcode.org/git/factor
2009-08-21 18:48:44 -05:00
Slava Pestov
9ab8734441
cpu.ppc: work in progress
2009-08-21 18:48:34 -05:00
Doug Coleman
3f3d57032b
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring
2009-08-13 19:21:44 -05:00
Slava Pestov
725280d424
Split off the notion of a register representation from a register class
2009-08-07 17:44:50 -05:00
Slava Pestov
61fe034e3e
cpu.ppc: put spill slots and GC roots in stack frame where subroutine calls can't clobber them
2009-07-31 23:47:07 -05:00
Slava Pestov
957a5b7b9b
cpu.ppc: fix small typos
2009-07-31 17:57:15 -05:00
Slava Pestov
dd2dc2bb24
cpu.ppc: Updating PowerPC backend for codegen changes over the last two months: new shift intrinsics added, fixnum overflow intrinsics are now treated like conditionals, GC checks are more complex and have a different API
2009-07-30 21:44:22 -05:00
Slava Pestov
9ad9600764
Remove %dispatch-label since its tehe same on all platforms; fix %gc on PowerPC
2009-06-07 21:46:28 -05:00
Slava Pestov
76d74c16af
Fixing various bugs; alias analysis wasn't handling ##phi nodes, stack analysis incorrectly handled height-changing back edges and ##fixnum-*, clean up ##dispatch generation
2009-05-29 01:39:14 -05:00
Slava Pestov
93509cdcec
Fix cpu.ppc for strict vocabulary search path semantics
2009-05-16 08:58:10 -05:00
Slava Pestov
66a9416473
Update documentation for stricter vocabulary search path semantics
2009-05-16 00:29:21 -05:00
Slava Pestov
05e0171dea
cpu.ppc: really fix bool type
2009-05-10 19:10:20 -05:00
Slava Pestov
9986f6e23e
Fix bool type on PowerPC
2009-05-10 19:01:38 -05:00
Slava Pestov
94bd764d35
Merge branch 'master' of git://factorcode.org/git/factor
2009-05-07 23:26:37 -05:00
Slava Pestov
e52476f108
cpu.ppc: fix alien-indirect
2009-05-07 23:26:33 -05:00
Slava Pestov
ff674dac22
cpu.ppc: bools are 4 bytes on OS X/PowerPC
2009-05-07 23:18:41 -05:00
Slava Pestov
5c4bb80bc3
Update PowerPC %jump and %dispatch-label, and add PIC-related functions to cpu-ppc.hpp
2009-05-07 19:47:38 -05:00
Slava Pestov
4a2492c3fc
Merge branch 'master' of git://factorcode.org/git/factor
2009-05-07 19:41:54 -05:00
Slava Pestov
25886ff453
cpu.ppc.bootstrap: updates
2009-05-07 19:40:25 -05:00
Slava Pestov
3591f6c684
Count megamorphic cache hits
2009-05-07 14:26:08 -05:00
Slava Pestov
12a34d81f7
JIT now supports multiple relocations per code template. This simplifies non-optimizing compiler backends
2009-05-06 20:04:49 -05:00
Slava Pestov
581d017b46
Working on inline caching for tail call sites
2009-05-06 19:22:22 -05:00
Slava Pestov
c93d876075
Better separation of concerns: cpu.{x86,ppc}.assembler no longer depends on compiler.codegen.fixup and cpu.architecture. Rename rt-xt-direct to rt-xt-pic to better explain its purpose
2009-05-06 16:14:53 -05:00
Slava Pestov
075fb1d3a6
Merge branch 'master' of git://factorcode.org/git/factor
2009-05-06 15:34:48 -05:00