Commit Graph

132 Commits (30a5296b9b496510458f21c55434ab3a413489d8)

Author SHA1 Message Date
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
Slava Pestov ae4f9a2809 Add fixnum/mod-fast and fixnum/i-fast subprimitives 2008-11-21 02:11:36 -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 eef45a1cc3 Tweak PowerPC %dispatch 2008-11-13 05:58:49 -06:00
Slava Pestov a14e1ebcb5 Fix PowerPC bootstrap 2008-11-13 05:55:34 -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 029ee67525 Fix ppc make-image 2008-11-13 04:12:09 -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
sheeple ffe4bd6787 Various updates 2008-11-10 03:18:58 -06:00
Slava Pestov 28e397420d Fix USING: 2008-11-08 21:43:55 -06:00
unknown 7a6a280b5c Fix conflict 2008-11-08 21:41:33 -06:00
unknown f7fe84e563 Working on Win64 FFI 2008-11-08 21:40:47 -06:00
Slava Pestov 65dea0aa26 PowerPC backend fixes 2008-11-08 20:36:14 -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 de0cc7f99a Merge branch 'master' of git://factorcode.org/git/factor 2008-11-07 20:49:42 -06:00
Slava Pestov 639da2d335 Refactor OS-specific parts of PowerPC backend 2008-11-07 20:45:25 -06:00
unknown 7365959f01 Starting work on Win64 port 2008-11-07 20:33:32 -06:00
sheeple d1f248dac6 Fixing PowerPC backend: prolog register clobberage, spilling, and general stack frame usage. Add some lame tests for spilling 2008-11-06 19:00:56 -06:00