Commit Graph

151 Commits (82a7e28082f97548fadd78fc632e90e715f666d9)

Author SHA1 Message Date
Slava Pestov 34792a9f23 Remove >r/r> 2008-12-17 19:17:37 -06:00
Slava Pestov c5160d76e9 Merge qualified, alias, symbols, constants into core 2008-12-17 18:10:01 -06:00
Slava Pestov 97fd662d61 Clean up PPC backend a bit 2008-12-16 02:03:21 -06:00
Slava Pestov 0021cde743 Fix more compile errors 2008-12-15 22:21:56 -06:00
Slava Pestov 5a45119252 Fix jit-dispatch on x86-64; was broken on windows 2008-12-15 20:55:24 -06:00
Slava Pestov 09c60f7e90 Fix some vocabularies for new requirement that inline words have a stack effect declaration 2008-12-15 20:31:55 -06:00
Slava Pestov d821cd7281 Fix win64 bootstrap 2008-12-10 01:19:22 -06:00
Slava Pestov 4b927f732f Clean up JIT backend a little 2008-12-09 17:14:17 -06:00
Slava Pestov 05e4626c49 Clean up 2008-12-09 03:22:09 -06:00
Slava Pestov 0359ec8eac Fix PowerPC backend again 2008-12-06 16:57:28 -06:00
Slava Pestov 8a8f0c925c Use BSR instruction to implement fixnum-log2 intrinsic 2008-12-06 15:31:17 -06:00
Slava Pestov d2ce4355f8 Fixing PPC backend 2008-12-06 15:30:40 -06:00
Slava Pestov a56d480aa6 Various optimizations leading to a 10% speedup on compiling empty EBNF parser:
- open-code getenv primitive
- inline tuple predicates in finalization
- faster partial dispatch
- faster built-in type predicates
- faster tuple predicates
- faster lo-tag dispatch
- compile V{ } clone and H{ } clone more efficiently
- add fixnum fast-path to =; avoid indirect branch if two fixnums not eq
- faster >alist on hashtables
2008-12-06 09:16:29 -06:00
Slava Pestov b06cfc6225 Update ppc backend for recent string intrinsic changes 2008-12-06 00:12:07 -06:00
Slava Pestov 82cf6530c6 set-string-nth-fast intrinsic was busted 2008-12-05 23:52:09 -06:00
Slava Pestov e256846acd Tweak string representation; high bit indicates if character has high bits in aux vector. Avoids memory access in common case. Split set-string-nth into two primitives; set-string-nth-fast is open-coded by optimizing compiler. 13% improvement on reverse-complement 2008-12-05 06:38:51 -06:00
Slava Pestov e5ed7447ed Removing more >r/r> usages 2008-12-03 08:46:16 -06:00
Slava Pestov e4db2afb7e Update cpu.x86.assembler to use dip instead of >r/r> 2008-12-02 03:10:01 -06:00
Slava Pestov a558f91d5d Better command-line processing 2008-12-01 16:10:48 -06:00
Slava Pestov 3e25d14e54 Code cleanup: refactoring usages of rot and -rot to use newer idioms instead 2008-11-30 17:47:29 -06:00
Slava Pestov f55c5d1bd0 Fix compile error 2008-11-30 11:37:39 -06:00
Slava Pestov c7c3bbc5f5 Fix register assignments on 64-bit x86 2008-11-30 08:05:36 -06:00
sheeple 6400085bea Fix bootstrap, add a unit test 2008-11-30 07:36:29 -06:00
sheeple ff000f3e82 Merge branch 'master' of git://factorcode.org/git/factor 2008-11-30 07:25:37 -06:00
Slava Pestov e7f4563374 fixnum* intrinsic for x86 2008-11-30 07:26:49 -06:00
sheeple abc486c342 Subtraction overflow was wrong way round on PowerPC 2008-11-30 06:08:16 -06:00
sheeple 26c002d23f Fix fixnum* problem; result was shifted to the right by 3 bits if both input registers were equal 2008-11-29 00:44:46 -06:00
U-SLAVA-DFB8FF805\Slava 6f0ec04310 Fix stack effect of param-reg-[12] on x86.3C2 2008-11-24 19:09:55 -06:00
Slava Pestov 9081247e34 Merge branch 'master' of git://factorcode.org/git/factor into faster_overflow_checks 2008-11-28 22:26:49 -06:00
sheeple 2b1a90e90a Fixing PowerPC arithmetic primitives 2008-11-28 22:22:26 -06:00
Slava Pestov bac609d7af Implement both-fixnums? sub-primitive for PowerPC 2008-11-28 21:18:42 -06:00
Slava Pestov 68dd6cc35a Working on PowerPC overflow checks 2008-11-28 20:02:50 -06:00
Slava Pestov eb8c621b6f Faster generic arithmetic on fiixnums: both-fixnums? sub-primitive performs a check if the top two stack items are both fixnums with a single conditional branch 2008-11-28 08:35:02 -06:00
Slava Pestov f44506089d More work on overflow instructions: don't need temp register anymore, add -tail variants which don't need stack frame 2008-11-28 06:36:30 -06:00
Slava Pestov 5634becda1 ##fixnum-add, ##fixnum-sub instructions open-code overflow check 2008-11-28 05:33:58 -06:00
Slava Pestov 6dfce7d4e7 load-locals is a primitive now, change semantics of get-locals to bum out 2 instructions from the sub-primitive 2008-11-27 22:30:29 -06:00
Slava Pestov 12d4f684ec Fix <long>, <ulong>, *long, *ulong on win64 2008-11-24 16:28:56 -06:00
Slava Pestov e62a558cf4 Merge branch 'master' of git://factorcode.org/git/factor 2008-11-24 12:01:55 -06:00
Slava Pestov d849287779 Fix fixnum/i-fast and fixnum/md-fast on PowerPC 2008-11-24 12:01:08 -06:00
sheeple 6c568d5c3d Fix PowerPC bootstrap 2008-11-24 11:34:18 -06:00
Slava Pestov ab689c098b Clean up direct literal code and make a first attempt at PowerPC support 2008-11-24 08:16:14 -06:00
Slava Pestov 2aaf860f47 Experimental optimizations 2008-11-24 06:40:51 -06:00
Slava Pestov dbf52c6176 Fix PowerPC bootstrap 2008-11-24 01:45:36 -06:00
Slava Pestov 87bc7d8c8b Update PPC non-optimizing compiler backend 2008-11-24 00:29:34 -06:00
Slava Pestov d86524f4bc Non-optimizing compiler now compiles dip, 2dip, 3dip, if, with direct branches instead of indirect branches. 8% bootstrap time improvement on Core Duo 2 2008-11-24 00:23:17 -06:00
Slava Pestov 60964487e0 Fix PowerPC dip/2dip/3dip 2008-11-23 04:14:17 -06:00
Slava Pestov 616df5da22 PowerPC dip/2dip/3dip JIT intrinsics (untested) 2008-11-23 03:04:45 -06:00
Slava Pestov a4d9cdfeb3 Refactor all usages of >r/r> in core to use dip, 2dip, 3dip
Non-optimizing compiler now special-cases dip, 2dip, 3dip following a
literal quotation: this allows us to break the dip/slip meta-circle
without explicit calls to >r/r>
2008-11-23 02:44:56 -06:00
Slava Pestov 303b3f2f83 Fix compile error in x86 bootstrap 2008-11-23 00:09:23 -06:00
Slava Pestov d5559d4132 Add fixnum/mod and fixnum/i subprimitives on PowerPC 2008-11-21 02:24:37 -06:00