Commit Graph

202 Commits (bd04fa9a59c396f89ae87341410e9c3ebe480963)

Author SHA1 Message Date
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
Slava Pestov 9366ad650d Add unportable tag 2008-11-06 09:29:21 -06:00
sheeple d2ec46e38f PowerPC backend almost functional; some new compiler unit tests added,
better compilation of 'f eq?'; f becomes an immediate operand
move aux-offset to compiler.constants
2008-11-06 06:27:27 -06:00
Slava Pestov 7741096bff Tweak PPC register usage; gcc doesn't like it when you mess with r31 for some reason 2008-11-06 03:36:46 -06:00
Slava Pestov 53cd75b06c Add string-nth intrinsic 2008-11-06 01:11:28 -06:00
Slava Pestov 2239f4fb99 More work on PowerPC backend; change register usage, free up some more integer and float regs (untested) 2008-11-05 04:20:35 -06:00
Slava Pestov dae41147fe %bignum>integer now takes a temporary register since this is useful on both x86 and ppc 2008-11-05 04:16:08 -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 10d3b4a55d New PPC backend (untested) 2008-11-05 00:31:08 -06:00
Slava Pestov d8345b5eda Update PPC non-optimizing compiler backend: there are three new sub-primitives to support 2008-11-04 06:07:19 -06:00
Slava Pestov 75e9708488 Oops 2008-11-03 06:50:59 -06:00
Slava Pestov e6f6cd5d93 Fix USING: -- you can now make ppc images, they just don't work yet 2008-11-03 06:40:14 -06:00
Slava Pestov 59f4f25b91 Loop alignment: appears to be a small win for reverse-complement 2008-11-03 06:20:51 -06:00
Slava Pestov 44a2499c17 fixnum-shift-fast and fixnum-mod subprimitives 2008-11-03 01:18:35 -06:00
Slava Pestov dd20b39cd6 fixnum-shift-fast subprimitive 2008-11-03 00:03:39 -06:00
Slava Pestov abb02f1784 Flesh out shift instructions 2008-11-03 00:03:00 -06:00
Slava Pestov 804c6f93ea Fix x86.32 2008-10-31 21:07:41 -05:00
Slava Pestov db4db19cd9 Start working on coalescing 2008-10-28 02:38:37 -07:00
Slava Pestov 69a0ad5e42 Ricing locals 2008-10-23 05:49:32 -05:00
Slava Pestov 84820244dd Merge branch 'master' into new_codegen 2008-10-21 23:19:20 -05:00
Slava Pestov 52020c2fe3 Fixing x86 instruction encoding for addressing with base = ESP or R12 2008-10-21 23:18:27 -05: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 37cf7d9a9c Add SSA comparison instructions, fix various problems 2008-10-20 05:55:20 -05:00
Slava Pestov f092622fac CFG IR is now pure SSA 2008-10-20 01:56:28 -05:00
Slava Pestov 14d8696f40 Oops, don't mix register classes in active set 2008-10-19 03:34:42 -05:00
Slava Pestov 774ecf61e9 Implement spilling on x86 2008-10-19 01:10:45 -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 f2c6f8de5b Using fry in cpu.x86, working on alien intrinsics 2008-10-13 16:43:58 -05:00
Slava Pestov 740b6ef3f2 Free up a register on x86.64 2008-10-13 14:03:21 -05:00
Slava Pestov d8d3645d72 Fixing more codegen bugs 2008-10-13 12:49:20 -05:00
Slava Pestov ae3c4ae1b6 Fix some problems with callbacks 2008-10-12 23:32:14 -05:00
Slava Pestov 2f4f86d288 Fix (set-slot) template 2008-10-12 17:36:34 -05:00
Slava Pestov 048d8daf09 Update intrinsics 2008-10-11 14:05:24 -05:00
Slava Pestov 3844cb62d8 Fix %write-barrier 2008-10-10 03:16:26 -05:00
Slava Pestov c98651043c Fix reversed polarity of FP comparisons 2008-10-10 02:33:47 -05:00
Slava Pestov e5a55dafad Fix bignum inline allocator 2008-10-09 17:03:30 -05:00
Slava Pestov 2438c78c6c Merge branch 'master' into new_codegen 2008-10-09 14:18:24 -05:00
sheeple bb6b998686 Fix alien-indirect on ppc 2008-10-09 14:04:33 -05:00
Slava Pestov cf46a832e7 Debugging register allocator and inline allocation 2008-10-08 23:42:53 -05:00
Slava Pestov 0e4e05d5cd Debugging new codegen 2008-10-08 03:51:44 -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 e69278b8fc Merging in new codegen 2008-10-07 16:17:55 -05:00
Slava Pestov 3c2caf948a 16-align stack on x86-64 2008-10-06 00:33:47 -05:00
Slava Pestov 4ca06ae50f Typo 2008-10-06 00:20:24 -05:00
Slava Pestov 33d775890c More stack frame refactoring 2008-10-06 00:20:00 -05:00
Slava Pestov a5fcb006fb Clean up x86 stack frame code a bit more 2008-10-05 22:17:56 -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 2305117c21 Fix PPC bootstrap 2008-09-13 20:40:54 -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 2f96db70b5 Merge branch 'master' of git://factorcode.org/git/factor 2008-09-11 01:21:49 -05:00
Doug Coleman b544a3b1b7 ppc bootstrap 2008-09-11 01:15:31 -05:00
Slava Pestov 127896c201 More fixes 2008-09-11 00:48:23 -05:00
Slava Pestov 0c8e2584b4 Fixing unit tests for make, fry changes 2008-09-11 00:20:06 -05:00
Slava Pestov cf80dd122a Updating code for make and fry changes 2008-09-10 22:11:40 -05:00
Slava Pestov 44f53de164 Move make to its own vocabulary, remove fry _ feature 2008-09-10 20:07:00 -05:00
Slava Pestov a3d1379b8c Fix bug with large structs passed by value on x86.64 2008-09-09 03:10:43 -05:00
Slava Pestov aea0fed14c Fixing basis -> extra dependencies 2008-09-05 19:29:14 -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 d552ee1071 Tweak PPC intrinsics 2008-09-03 04:02:25 -05:00
Slava Pestov a4a00f6e40 Adding missing optimizations to finalization pass 2008-09-02 22:59:49 -05:00
sheeple 1ef49b1a00 fix intrinsic 2008-09-02 17:02:15 -05:00
sheeple 6dcb6b9c95 Merge branch 'master' of git://factorcode.org/git/factor 2008-09-01 19:06:02 -05:00
sheeple c8cecf8768 Fix stack effect declarations 2008-09-01 19:06:00 -05:00
Slava Pestov 4be346cd9c Fixing PowerPC intrinsics 2008-09-01 18:34:16 -05:00
Slava Pestov 0c304b8fc6 Removing old accessor usages from core and basis 2008-08-31 07:45:33 -05:00
Slava Pestov b73bc69084 Fix PPC again, oops 2008-08-31 05:50:02 -05:00
Slava Pestov 01e1092c8d Fix PowerPC backend 2008-08-31 02:12:12 -05:00
Slava Pestov 6ead724b25 Fixing bugs 2008-08-29 04:23:39 -05:00
Slava Pestov 1fcbdf9d52 Fix more compiler bugs 2008-08-29 00:26:47 -05:00
Slava Pestov 86f11713e3 Fixing some more bugs 2008-08-22 03:12:15 -05:00
Slava Pestov 87cd0a5dab Fix 2008-08-13 14:17:36 -05:00
Slava Pestov a5ff214d67 More load fixes 2008-08-12 03:38:56 -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 04df07ae7e Fix PowerPC make-image 2008-07-29 00:07:31 -05:00
Slava Pestov d66f887736 Create basis vocab root 2008-07-28 22:03:13 -05:00