Commit Graph

704 Commits (2c7fee3345bd755bd386512b8c1e2b6baa9ed92e)

Author SHA1 Message Date
Slava Pestov e0e09234cf Rename get-fpu-state entry point to fpu-state, and fix stack-checker unit tests 2010-09-04 12:58:59 -07:00
Slava Pestov 0184107101 cpu.x86.64: fix bootstrap 2010-09-02 21:17:14 -07:00
Slava Pestov 6617eca683 Fix three problems discovered by running math.floats.env tests in a loop:
- Crash if allocating error triggers a GC from a signal/SEH handler
- Crash if GC runs with floating point traps enabled on Windows
- Floating point traps didn't prettyprint properly
2010-09-02 22:57:14 -05:00
Slava Pestov c2348c620c cpu.x86.32: commit 05ba77262a only fixed the start-context-and-delete callframe leak on x86-64. Fix it on x86-32 and add a regression test 2010-08-22 19:30:54 -07:00
Slava Pestov 84698985ad Officially drop PowerPC port 2010-08-15 20:10:11 -07:00
Joe Groff f4478a44db cpu.x86.64: rescue from the perils of cut and paste code (fix bug reported by x6j8x) 2010-08-14 09:14:22 -07:00
Slava Pestov f3dfae04ba compiler: now that FFI has been deconcatenatized, we no longer need the special ##unary-float-function and ##binary-float-function fastpaths 2010-08-13 23:59:19 -07:00
Slava Pestov ed5cea57ea compiler.cfg: Reading the return value of a float-returning function on x86-32 had a side effect of popping the x87 stack, so it was not correct for DCE to just eliminate this if the return value was not used. Fix this by adding a new dead-outputs slot to alien-call-insns and having DCE move dead returns there 2010-08-13 23:19:56 -07:00
Slava Pestov 31ef4ad844 math.libm: fix regression: fsqrt intrinsic was not working ever since change was made to inline FUNCTION: bodies 2010-08-12 21:41:57 -07:00
Slava Pestov 5d0f847a0c cpu.x86.32: fix 32-bit bootstrap 2010-08-02 20:51:29 -04:00
Slava Pestov 05ba77262a Fix start-context-and-delete sub-primitive (reported by Sascha Matzke) 2010-08-02 20:28:23 -04:00
Slava Pestov c1ab48f44b cpu.x86: save context before calling new_context() since it can trigger GC (bug reported by Sascha Matzke) 2010-07-30 01:07:53 -04:00
Slava Pestov 7d792778f5 FFI rewrite part 7: compile callback bodies with the optimizing compiler 2010-07-28 00:49:26 -04:00
Slava Pestov 917622eeb1 cpu.x86.64: fix calling varargs functions 2010-07-19 16:03:39 -04:00
Slava Pestov 0abdfbfc1b compiler.cfg: open-code parameter boxing and unboxing for certain C types 2010-07-19 10:25:13 -04:00
Slava Pestov 333b9a34cc compiler.cfg: nuke ##allot-byte-array instruction 2010-07-16 19:57:45 -04:00
Slava Pestov bbcffab3fa compiler.cfg: ##unbox-long-long can have multiple outputs now, clean up long long parameter passing code using this 2010-07-15 19:49:29 -04:00
Slava Pestov cc3a96c5a1 cpu.x86.32: fix %binary-float-function 2010-07-15 03:09:06 -04:00
Slava Pestov ba74dfd78e cpu.x86.64: fix typos 2010-07-14 17:59:51 -04:00
Slava Pestov f50addd3f4 cpu.x86: fix %load/store-stack-param for 32-bit 2010-07-14 17:50:40 -04:00
Slava Pestov f133a5f2be compiler: re-architect low-level optimizer to allow more than one output value per instruction 2010-07-13 07:40:14 -04:00
Joe Groff 3af17c6bfc cpu.x86.assembler: add MOVQ xmm, xmm/m64 and MOVQ xmm/m64, xmm instructions 2010-07-08 10:19:11 -07:00
Slava Pestov 8fd5d3c86a FFI rewrite part 6: deconcatenatize 2010-07-02 15:44:12 -04:00
Slava Pestov fb4de47abf 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 5e39764ccd vm: have to be extra careful when messing with return addresses 2010-06-13 18:12:57 -04:00
Slava Pestov d91524b98d vm: context switching needs to scrub the return address 2010-06-12 19:54:31 -04:00
Slava Pestov dbf6bac599 cpu.x86: combine 32-bit and 64-bit %dispatch template 2010-06-11 21:52:38 -04:00
Slava Pestov a08295d9b7 GC maps for more compact inline GC checks 2010-06-11 20:06:00 -04:00
Joe Groff ba143db496 compiler.cfg.intrinsics.simd: intrinsic support for double-2>float-4 conversion 2010-06-01 00:34:50 -07:00
Slava Pestov fc234b89dd cpu.x86: fix callbacks receiving stack parameters on Win64 2010-05-23 23:08:07 -04:00
Slava Pestov e65a1b301a cpu.x86.64: callback prologue was clobbering 5th parameter register on x86-64 2010-05-23 03:00:53 -04:00
Slava Pestov b8ec5c6176 Stack allocation improvements
- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas
2010-05-22 02:37:00 -04:00
Slava Pestov f4ff644329 cpu.x86.32: fix load error 2010-05-19 01:29:52 -04:00
Slava Pestov bcf7a5e15e Use ##local-allot to simplify longlong unboxing 2010-05-19 01:07:22 -04:00
Slava Pestov 5dd2115665 compiler.cfg: generalize ##prepare-struct-caller instruction to alloca()-like ##local-allot 2010-05-19 00:33:15 -04:00
Slava Pestov d05bb6e5d7 cpu.x86.assembler: drop useless ST0 operand from some x87 instructions 2010-05-18 19:37:59 -04:00
Slava Pestov f6430de98a cpu.x86.x87: compares were clobbering ST0 2010-05-18 19:18:53 -04:00
Slava Pestov 0bc97cce00 cpu.x86.assembler: fix typo 2010-05-18 17:59:34 -04:00
Slava Pestov 379dd67ee8 cpu.x86.x87: use FISTPD to convert floats to integers, instead of the SSE3 instruction FISTTPD 2010-05-18 17:10:58 -04:00
Slava Pestov 4b2f4fc72e cpu.x86.assembler: AH CH DH BH register operands now work properly 2010-05-18 17:10:32 -04:00
Slava Pestov 8611ba2a4d cpu.x86.64: call check-sse to ensure that cpu.x86.sse is loaded 2010-05-17 11:43:42 -04:00
Slava Pestov 66e9bed2d8 cpu.x86: add x87 codegen for Model T enthusiasts 2010-05-17 11:35:47 -04:00
Joe Groff 62b882937a cpu.x86.assembler: a choice selection of x87 instructions 2010-05-17 02:02:40 -07:00
Slava Pestov 325df742b0 cpu.x86.32: clean up %unary/binary-float-function 2010-05-17 04:03:13 -04:00
Slava Pestov ed04758ad6 cpu.x86: get rid of this extra-stack-space nonsense 2010-05-17 02:14:44 -04:00
Slava Pestov 0f5d9d368a compiler.cfg: refactor stack frame code and fix frame pointer usage in callbacks 2010-05-16 21:04:40 -04:00
Slava Pestov c83c850080 compiler: hack to make XCreateIC() work on x86-64 2010-05-16 04:49:53 -04:00
Slava Pestov 99757a8e0b Merge branch 'master' of git://factorcode.org/git/factor 2010-05-16 04:10:03 -04:00
Slava Pestov 3356661d11 Fixes for FFI changes 2010-05-16 04:09:47 -04:00
Joe Groff bf27af58f4 compiler.cfg.instructions: ##select-vector instruction mapping to SSE4 PEXTR* 2010-05-16 00:50:19 -07:00