Commit Graph

191 Commits (44dc1aadc0bd68677cb201c87c78bd50f3e3e21f)

Author SHA1 Message Date
Slava Pestov 0fbe78be00 cpu.x86.64: fix calling varargs functions 2010-07-19 16:03:39 -04:00
Slava Pestov e5dd21b0b9 compiler.cfg: nuke ##allot-byte-array instruction 2010-07-16 19:57:45 -04:00
Slava Pestov e7191998f8 cpu.x86.64: fix typos 2010-07-14 17:59:51 -04:00
Slava Pestov 867530223c cpu.x86: fix %load/store-stack-param for 32-bit 2010-07-14 17:50:40 -04:00
Slava Pestov e27adb2830 compiler: re-architect low-level optimizer to allow more than one output value per instruction 2010-07-13 07:40:14 -04:00
Slava Pestov a55c8ee671 FFI rewrite part 6: deconcatenatize 2010-07-02 15:44:12 -04:00
Slava Pestov e86f434f26 Add GC maps to ##box, ##box-long-long, ##alien-invoke, ##alien-indirect and ##call-gc; remove ##gc-map instruction 2010-06-14 19:39:46 -04:00
Slava Pestov 70b8a74208 vm: have to be extra careful when messing with return addresses 2010-06-13 18:12:57 -04:00
Slava Pestov 3f28c0e7f5 vm: context switching needs to scrub the return address 2010-06-12 19:54:31 -04:00
Slava Pestov 8ed4760b51 cpu.x86: combine 32-bit and 64-bit %dispatch template 2010-06-11 21:52:38 -04:00
Slava Pestov 806e54630a GC maps for more compact inline GC checks 2010-06-11 20:06:00 -04:00
Slava Pestov c9ad0856d5 cpu.x86.64: callback prologue was clobbering 5th parameter register on x86-64 2010-05-23 03:00:53 -04:00
Slava Pestov 3104ad779a cpu.x86.64: call check-sse to ensure that cpu.x86.sse is loaded 2010-05-17 11:43:42 -04:00
Slava Pestov 7ff309d50e cpu.x86: get rid of this extra-stack-space nonsense 2010-05-17 02:14:44 -04:00
Slava Pestov a7b5957f6d compiler: hack to make XCreateIC() work on x86-64 2010-05-16 04:49:53 -04:00
Slava Pestov e6abc0be15 Fixes for FFI changes 2010-05-16 04:09:47 -04:00
Slava Pestov 5b48cd2a63 FFI rewrite part 5: return value boxing and callback parameter boxing now uses vregs; simplify return value unboxing 2010-05-16 03:43:23 -04:00
Slava Pestov 4a98278720 cpu.x86.32: check for SSE2 on bootstrap since Factor now requires it 2010-05-13 18:25:46 -04:00
Slava Pestov f89b85db7b Temporary fixes for x86-32 until FFI boxing is rewritten 2010-05-12 01:41:49 -04:00
Slava Pestov 1c76c87c5c cpu.x86.64: fix typo 2010-05-11 22:29:46 -04:00
Slava Pestov ee0640f176 Move flatten-c-type to death row so that it can be executed in part 5 2010-05-11 22:26:31 -04:00
Slava Pestov eb802208d1 FFI rewrite part 4: parameter and return value unboxing redesign 2010-05-11 19:11:44 -04:00
Slava Pestov 45689dbfe6 compiler: simplify ##unbox-small/large-struct by emitting an ##unbox-any-c-ptr first 2010-05-10 01:38:34 -04:00
Slava Pestov 4478c3a51a FFI rewrite part 3: eliminate ##push-context-stack and ##pop-context-stack 2010-05-10 00:46:29 -04:00
Slava Pestov 7316d41226 FFI rewrite part 2: use ##peek and ##replace instructions to access stack 2010-05-09 23:26:43 -04:00
Slava Pestov 2912f21acc cpu.x86.64.unix: fix load error 2010-05-09 22:15:14 -04:00
Slava Pestov c211c3e84e FFI rewrite part 1: split up ##alien-invoke and friends into smaller instructions 2010-05-09 21:36:52 -04:00
Slava Pestov f988dad79c compiler.cfg: add ##load-float instruction for single precision floating point constants 2010-05-07 18:26:00 -04:00
Slava Pestov e763c74096 More FFI cleanups 2010-05-05 01:13:45 -04:00
Slava Pestov 58e4381eb1 compiler: new "binary literal area" at the end of a word's machine code stores constant floats and SIMD vectors; this allows ##load-reference/##load-memory fusion to be performed on x86-64, with a RIP-relative address reaching the data; also simplifies VM since custom relocation types used by the previous 32-bit-only optimization are no longer needed 2010-05-03 17:34:35 -04:00
Slava Pestov 95ff5ffe51 New GC checks work in progress 2010-05-03 17:34:16 -04:00
Slava Pestov 503c0fcfde compiler: Start using tagged-rep for stuff, and split up compiler.cfg.representations into several sub-vocabularies 2010-05-03 17:34:01 -04:00
Slava Pestov da6bcbedfc Replace 'untested' tag with 'not loaded' and 'not tested' tags 2010-04-13 18:43:01 -07:00
Slava Pestov 1434a305c8 vm: add a new rc-absolute-1 relocation class to allow storing values in 8-bit operands, and optimized code sequences for inline caches using this 2010-04-12 14:22:41 -07:00
Slava Pestov 46a1fb2646 Merge remote branch 'origin/abi-symbols' into fastcall-madness 2010-04-10 00:10:33 -07:00
Slava Pestov f828f9fdaa Fiddle with register assignments in non-optimizing x86-32 backend 2010-04-10 00:10:05 -07:00
Joe Groff 3e0d86f355 Merge branch 'master' of git://factorcode.org/git/factor into abi-symbols
Conflicts:
	basis/compiler/tests/alien.factor
2010-04-06 12:30:15 -07:00
Slava Pestov 430a05dcea Store stack bounds in TIB on win64 to make C++ exceptions work 2010-04-05 19:07:10 -04:00
Slava Pestov c0af678c5b cpu.x86.assembler: add support for absolute addressing on x86-64; [RIP+] now behaves like [] did, and [] now does absolute addressing just like in 32-bit mode 2010-04-04 19:42:57 -04:00
Slava Pestov b16d91576c cpu.x86.64: fix typo that caused bootstrap crash 2010-04-03 21:11:04 -04:00
Slava Pestov 74640b7f71 Get green threads working on Windows
- store stack base and limit in TIB
- set up a frame-based structured exception handler in each context's callstack
- boot.x86.32.image has now been replaced by boot.winnt-x86.32.image and boot.unix-x86.32.image
2010-04-03 20:24:33 -04:00
Slava Pestov 0faa3bcf4a vm: pre-allocate context alien 2010-04-02 00:02:21 -04:00
Joe Groff 88fbcba067 flatten non-integral types to (stack-value) on x86.32 2010-04-01 20:56:43 -07:00
Joe Groff 666081f155 update %load-param-reg, %save-param-reg, and %cleanup to take register args into account 2010-04-01 17:36:09 -07:00
Slava Pestov eceabbc57e compiler: new set-special-object intrinsic; more efficient special-object intrinsic 2010-04-01 20:09:14 -04:00
Joe Groff ef884ef7f2 Merge branch 'master' into abi-symbols 2010-04-01 15:28:36 -07:00
Joe Groff 4fd61f0b5c cpu.architecture: alter param-regs to take abi as an (ignored for now) argument 2010-04-01 02:53:40 -07:00
Joe Groff 65c3259761 "cdecl" -> cdecl 2010-03-31 19:20:35 -07:00
Slava Pestov ef53e6ecd5 cpu.x86.64: eliminate useless instruction from primitive call sequence for a marginal to non-existent gain 2010-03-31 19:32:36 -04:00
Slava Pestov 8f0487f1c3 cpu.x86: remove useless crap from c-to-factor sub-primitive 2010-03-31 15:19:00 -04:00