Slava Pestov
ba7f1c4b2c
cpu.ppc: needs same fix for jit-profiling as on x86-64
2010-02-06 18:45:26 +13:00
Slava Pestov
92a0e50885
cpu.ppc: final fix
2010-02-03 13:37:12 -06:00
Slava Pestov
6cebf9d5a0
cpu.ppc: another fix
2010-02-04 08:19:59 +13:00
Slava Pestov
da35bbb537
cpu.ppc: load fixes
2010-02-04 08:08:31 +13:00
Slava Pestov
af47e5e8d8
Compiled code size optimizations for x86-64 resulting in development image size reduction of about 350kb
...
- RIP-relative LEA is now used to load program counter in prolog and tail calls; saves 3 bytes of code and 4 bytes of relocation information over an immediate MOV
- VM field accesses no longer involve a redundant addition
2010-02-03 23:11:35 +13:00
Slava Pestov
88004434ec
vm: remove primitive table, non-optimizing compiler now looks up primitives with dlsym()
2010-01-19 20:00:33 +13:00
Slava Pestov
0165daf56c
Stop wearing monocle and use the term "entry point" instead of "XT" throughout VM and compiler; also remove two unused relocation types
2010-01-18 20:54:00 +13:00
Slava Pestov
cfadb5994a
PowerPC optimizing compiler backend fixes
2010-01-12 08:02:10 -06:00
Slava Pestov
5ef9fb5473
More PowerPC non-optimizing compiler backend fixes
2010-01-13 03:09:43 +13:00
Slava Pestov
fe11d9f60a
unwind-stack-frames didn't load VM pointer into the VM register on PowerPC and x86-64, and so if C code had clobbered this register it would crash
2010-01-12 16:31:10 +13:00
Slava Pestov
c0ec950007
cpu.ppc: fix some typos in non-optimizing backend
2010-01-11 14:15:41 +13:00
Slava Pestov
b7f4447723
Starting to update PowerPC backend for recent VM changes (untested)
2010-01-08 19:46:27 +13:00
Slava Pestov
d2baa6dde5
vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64
2010-01-06 15:47:36 +13:00
Slava Pestov
d0c1c6b766
PowerPC: fix set-callstack primitive and start updating optimizing compiler backend for recent changes
2009-12-28 08:08:15 -06:00
Slava Pestov
98294c3ce2
cpu.ppc: fix non-optimizing compiler backend
2009-12-29 02:42:34 +13:00
Slava Pestov
faa9d942a2
Updating non-optimizing PowerPC backend for register variable removal (untested)
2009-12-28 12:40:45 +13:00
Slava Pestov
8f449f1a82
Get optimizing compiler working without global register variables in VM
2009-12-22 15:42:49 +13:00
Slava Pestov
6d9c17eea3
Fix PowerPC compiler backend for recent changes
2009-12-15 09:51:20 -05:00
Slava Pestov
31a260b74c
vm: big overhaul of non-optimizing compiler
...
- change some primitives into sub-primitives: fixnum+ fixnum- fixnum* inline-cache-miss inline-cache-miss-tail
- rename some relocation types for clarity
- some other minor re-organizations and cleanups
2009-12-15 07:20:09 -05:00
Slava Pestov
912b1265fc
Split literal table into literal and parameter tables, literal table is discarded after code block initialization
2009-12-02 04:28:15 -06:00
Slava Pestov
1e47c40eb7
cpu.ppc: update for recent changes
2009-11-11 21:26:07 -06:00
Slava Pestov
4168ffbcee
New identity-hashcode primitive
2009-11-10 21:18:54 -06:00
Slava Pestov
d630e1494c
Fix struct field alignment on PowerPC
2009-11-10 19:34:14 -06:00
Slava Pestov
1515628a7c
More PowerPC fixes
2009-11-10 17:26:34 -06:00
Slava Pestov
e2cd4274db
cpu.ppc: update megamorphic dispatch template
2009-11-10 17:13:20 -06:00
Joe Groff
f780bbddc3
deprimitivize tuck and put it to pasture
2009-11-05 22:47:05 -06:00
Slava Pestov
7714be60a9
Move platform-specific c-type initialization out of cpu.* vocabularies and into alien.c-types so that the vm vocabulary, which is loaded before cpu.*, will have correct struct offsets
2009-11-05 01:36:14 -06:00
Slava Pestov
d65296b334
vm: 4 bit tags, new representation of alien objects makes unbox-any-c-ptr more efficient (work in progress)
2009-11-02 04:25:54 -06:00
Slava Pestov
24c3c18390
vm: new megamorphic hashcode algorithm improves bootstrap speed
2009-11-02 01:37:58 -06:00
Slava Pestov
051dcb6849
Merge branch 'master' into new_gc
2009-10-30 03:03:05 -05:00
Joe Groff
c6761710a6
Merge branch 'master' of http://factorcode.org/git/factor
...
Conflicts:
basis/locals/locals.factor
basis/peg/peg.factor
extra/infix/infix.factor
2009-10-28 16:17:24 -05:00
Joe Groff
22a9be5ea5
update existing code to use :> ( ) when possible
2009-10-28 16:11:33 -05:00
Doug Coleman
a57e990af7
parsed -> suffix!, add append!
2009-10-28 13:38:27 -05:00
Slava Pestov
f442d1949b
Change data heap alignment to 16 bytes
2009-10-20 12:45:00 -05:00
Slava Pestov
9599d86ec5
compiler: FFI is now slightly more efficient when unboxing parameters, only changes data stack height once
2009-10-20 04:31:48 -05:00
Slava Pestov
0a3029d9f2
compiler: on PPC, ANDI, ORI and XORI instructions take an unsigned 16-bit immediate, unlike ADDI, SUBI and MULLI which take a signed 16-bit immediate. The code generator was not aware of this, and so for example '[ >fixnum -16 bitand ]' would generate incorrect code. Split up small-enough? hook into immediate-arithmetic? and immediate-bitwise? and update value numbering to be aware of this. Fixes classes.struct bitfields test failure
2009-10-19 04:58:29 -05:00
Joe Groff
663706634c
use FRSP to convert double to single on PPC
2009-10-17 00:13:50 -05:00
Slava Pestov
14972463f7
cpu.ppc.bootstrap: fix callback-stub relocation
2009-10-16 12:06:40 -05:00
Slava Pestov
030d035e94
vm: code heap compaction at runtime using compact-gc primitive
2009-10-16 11:39:35 -05:00
Slava Pestov
a6ade7aadc
cpu.ppc: fix %write-barrier
2009-10-15 05:13:47 -05:00
Slava Pestov
b8f75f404e
cpu.ppc: fix typo
2009-10-15 05:01:20 -05:00
Slava Pestov
9e5a9abfe1
cpu.ppc: updates for write barrier and allocation changes (untested)
2009-10-15 04:54:16 -05:00
Slava Pestov
7a6e2f9b07
cpu.ppc.bootstrap: update for JIT relocation changes
2009-10-15 04:47:54 -05:00
Slava Pestov
5f0d4abb4a
cpu.architecture: move dummy -reps words here, from cpu.ppc
2009-10-08 03:48:03 -05:00
Joe Groff
84ecb1266d
add insns for vector pack, unpack, integer>float, and float>integer
2009-10-05 22:34:14 -05:00
Slava Pestov
931107397c
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
dca9d3e535
add %merge-vector-head and %merge-vector-tail instructions to back vmerge
2009-10-03 21:48:53 -05:00
Joe Groff
335df20713
add intrinsics for v<=, v<, v=, v>, v>=, vunordered?
2009-10-03 11:29:34 -05:00
Joe Groff
e2e75c6b3a
add intrinsic for vnot/vbitnot
2009-10-02 20:04:28 -05:00
Slava Pestov
9ac62dc476
cpu.ppc: remove useless comment
2009-10-02 03:31:53 -05:00