Commit Graph

46 Commits (f93b2f1c2950d2d818997608263ada16ae7b43fc)

Author SHA1 Message Date
Slava Pestov 44bfff7c7b Rename ##load-indirect to ##load-reference since this is more descriptive; value numbering doesn't assign expressions to ##load-reference nodes since this would end up folding literals which were eq? but not = 2009-01-29 01:44:58 -06:00
Slava Pestov 34792a9f23 Remove >r/r> 2008-12-17 19:17:37 -06:00
Slava Pestov 0021cde743 Fix more compile errors 2008-12-15 22:21:56 -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 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 c7c3bbc5f5 Fix register assignments on 64-bit x86 2008-11-30 08:05:36 -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 12d4f684ec Fix <long>, <ulong>, *long, *ulong on win64 2008-11-24 16:28:56 -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 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
unknown ccd13ce975 Define intptr_t type 2008-11-17 18:42:10 -06:00
Slava Pestov 20f5541d35 Refactoring FFI for Win64 2008-11-17 13:34:37 -06:00
Slava Pestov eb05dd3a12 Optimize a ##dispatch that is applied to the result of a ##sub-imm or ##add-imm; this eliminates an instruction from the common 1 fixnum-fast { ... } dispatch and 8 fixnum-fast { ... } dispatch code sequences appearing in generic word expansions 2008-11-13 04:16:08 -06:00
Slava Pestov cfa82cb474 New calling convention for VM primitives:
instead of the Factor side passing the stack pointer as the first parameter, and having the VM save it to stack_chain->top, we instead have the Factor side save it. Eliminates a lot of crud in the VM
2008-11-13 03:20:34 -06:00
Slava Pestov 28e397420d Fix USING: 2008-11-08 21:43:55 -06:00
unknown f7fe84e563 Working on Win64 FFI 2008-11-08 21:40:47 -06:00
Slava Pestov 9cc193ea5b Add unportable tags and fix my-arch word 2008-11-07 22:37:40 -06:00
Slava Pestov eb83b542d6 Fix unix x86.64 bootstrap 2008-11-07 21:54:13 -06:00
unknown 7365959f01 Starting work on Win64 port 2008-11-07 20:33:32 -06:00
Slava Pestov 8b7c47a68b Clean up x86 backend: move cpu.x86.architecture to cpu.x86, use branchless arithmetic in some intrinsics 2008-11-05 04:15:48 -06:00
Slava Pestov 44a2499c17 fixnum-shift-fast and fixnum-mod subprimitives 2008-11-03 01:18:35 -06:00
Slava Pestov 1b06ab1b39 Fixing various bugs 2008-10-21 23:17:32 -05:00
Slava Pestov 87e9fbb34c Comparison operations 2008-10-21 03:21:29 -05:00
Slava Pestov e92f795a76 More work on intrinsics; memory allocation and slot access now expands correctly 2008-10-20 20:40:15 -05:00
Slava Pestov 508b1f52b8 Update x86 backend for SSA codegen 2008-10-20 05:55:57 -05:00
Slava Pestov f092622fac CFG IR is now pure SSA 2008-10-20 01:56:28 -05:00
Slava Pestov fe2c20882a Fix alien accessor intrinsics; a bit more complex now that we don't reserve a tempreg 2008-10-13 22:43:32 -05:00
Slava Pestov 740b6ef3f2 Free up a register on x86.64 2008-10-13 14:03:21 -05:00
Slava Pestov ae3c4ae1b6 Fix some problems with callbacks 2008-10-12 23:32:14 -05:00
Slava Pestov 7b6d9c4c4f Debugging new codegen 2008-10-07 20:00:38 -05:00
Slava Pestov e6e313eba9 Backend updates 2008-10-07 16:42:11 -05:00
Slava Pestov 33d775890c More stack frame refactoring 2008-10-06 00:20:00 -05:00
Slava Pestov d5112a0ced Working on stack frame cleanup 2008-10-05 21:30:29 -05:00
Slava Pestov c19f2257f4 Fix permission bits 2008-10-02 08:34:49 -05:00
Slava Pestov 722cacddb4 Fixing some problems with returning structs by value in x86.64 FFI 2008-09-13 20:28:13 -05:00
Slava Pestov 8b9784108e Don't clobber RBX 2008-09-13 14:25:06 -05:00
Slava Pestov 6d050a61a7 Fix Joe Groff's x86-64 structs/callbacks bug 2008-09-12 04:02:32 -05:00
Slava Pestov 127896c201 More fixes 2008-09-11 00:48:23 -05:00
Slava Pestov fdf75fe110 Remove slots.deprecated, remove unused slots from slot-spec tuple; last vestiges of old accessors are now gone forever 2008-09-03 18:47:52 -05:00
Slava Pestov 0c304b8fc6 Removing old accessor usages from core and basis 2008-08-31 07:45:33 -05:00
Slava Pestov 6ead724b25 Fixing bugs 2008-08-29 04:23:39 -05:00
Slava Pestov 48fa2e2d0e Updating some code 2008-08-12 03:31:48 -05:00
Slava Pestov 6408b01e9d Add 'unportable' tag in place of hard-coded list of 'dangerous' vocabs in load-everything 2008-07-29 16:47:52 -05:00
Slava Pestov d66f887736 Create basis vocab root 2008-07-28 22:03:13 -05:00