Commit Graph

738 Commits (2f0efb62e87c8e1f45d967ee2986b51ccc12c7b7)

Author SHA1 Message Date
Joe Groff c78b4d7f60 cpu.x86.*.bootstrap: save flags in signal-handlers 2011-11-04 11:56:01 -07:00
Joe Groff db1a47ffc1 cpu.x86.bootstrap: cell -> bootstrap-cell 2011-11-04 11:54:40 -07:00
Joe Groff a944e41e79 cpu.x86.assembler: PUSHF, POPF instructions 2011-11-04 11:23:11 -07:00
Joe Groff d4f24f44c3 cpu.x86.64.bootstrap: save all the regs on signal
Appears to fix another sporadic crash from mason on x86-64. There's no reason to cut corners here, really.
2011-11-04 10:01:56 -07:00
Joe Groff a28192859a cpu.x86.bootstrap: don't safepoint in a safepoint
Safepointing in the signal-handler primitive causes a crash if the safepoint is guarded and the signal being handled was raised by a safepoint. Put our own RET in the subprimitive to bail out before the standard epilog gets written out. This tentatively appears to fix #349.
2011-11-03 20:19:38 -07:00
Joe Groff 1155da01c9 cpu.x86.32.bootstrap: typo 2011-11-03 13:07:13 -07:00
Joe Groff 7ac94bd09f vm: always generate safepoints in jit
Even if there's no stack frame we still need to safepoint before leaving the function. Fixes #332.
2011-11-03 11:57:43 -07:00
Joe Groff 75cba3106a remove BSD,solaris,etc. misc platform support code 2011-11-02 17:13:51 -07:00
Joe Groff a3979cd123 fix platform dependency in leaf-signal-handler 2011-11-02 13:23:12 -07:00
Joe Groff 0ee07f1f2a cpu.x86.bootstrap: simplify leaf-signal-handler
We can use RET (stack-frame-size - cell) instead of doing stack gymnastics.
2011-11-02 13:23:08 -07:00
Doug Coleman be12f2b27d Make "foo.private" require load foo instead.
Move require from vocabs.loader to vocabs. Update everything.
Fixes #201.
2011-11-02 11:50:03 -07:00
Joe Groff 09088ec3ce cleanups from code review 2011-10-27 21:18:23 -07:00
Joe Groff 871ea10cb0 cpu.x86.64: also must save ctx-reg 2011-10-27 21:18:21 -07:00
Joe Groff 66ffd0f138 cpu.x86.32: update for resumable signal handlers 2011-10-27 21:18:19 -07:00
Joe Groff 9c7731e4c9 vm: suppress signal-handler stack frame generation
This is a hack; see #295
2011-10-27 21:18:19 -07:00
Joe Groff 1eddaf34f1 vm: resumably handle signals from leaf procedures 2011-10-27 21:18:18 -07:00
Joe Groff cb6f175ef8 vm: dispatch signal handlers through subprimitive
We also need to save C ABI volatile registers before calling the signal handler in order to be able to reliably resume. Add signal-handler and leaf-signal-handler subprimitives to preserve volatile registers before invoking the signal handler C function.
2011-10-27 21:18:18 -07:00
Joe Groff d41c3f2709 cpu.x86.(32,64).bootstrap: get rid of PUSH malarky
In the function prologue, move the stack pointer once after the stack frame is set up instead of PUSHing the stack frame piece by piece.
2011-10-27 21:14:50 -07:00
Joe Groff cf45e0d581 compiler: add ##safepoint IR insn 2011-10-27 21:14:46 -07:00
Joe Groff 6e237abb5e cpu.x86.assembler: add MOVABS instruction
MOVABS generates the one-byte opcode version of MOV eAX, [absolute] or MOV [absolute], eAX, which saves a byte per safepoint on x86-32.
2011-10-27 21:14:45 -07:00
Joe Groff 09d0fdaf8d cpu.x86.bootstrap: add safepoint to jit-epilog 2011-10-27 21:14:45 -07:00
Doug Coleman cb41cc99d8 Fix 32bit platform bootstrap 2011-10-24 16:24:01 -07:00
Doug Coleman 14a2511d57 Found a few more places to use lookup-c-type 2011-10-24 15:58:40 -07:00
Doug Coleman 7bfbe17861 Rename c-type to lookup-c-type. Fixes #230. 2011-10-24 14:37:24 -07:00
Slava Pestov b1b7b24ad5 Add RT_INLINE_CACHE_MISS relocation type to avoid frequent dlsym lookups when compiling PICs. Fixes #123 2011-10-03 00:26:21 -07:00
Slava Pestov 8336d898a3 Rework non-optimizing compiler backend to use compiler.codegen.relocation 2011-10-03 00:26:21 -07:00
Slava Pestov 83f602c1da Split up compiler.codegen.fixup into compiler.codegen.{gc-maps,labels,relocation} 2011-10-03 00:25:47 -07:00
Doug Coleman 94f3ca3b8c Remove all non-core uses of (scan-token)
Add scan-datum
Add scan-number
Document more words
Fixes #225.
2011-10-02 12:00:08 -07:00
Doug Coleman 17e0fbe501 Remove Windows CE from core/ basis/ and build-support/
Rename the winnt singleton to windows in core/ basis/ extra/
Rename boot images winnt -> windows
Fixes #84.
2011-09-18 23:19:06 -05:00
Slava Pestov 238fea7b7e cpu.ppc: add 'not loaded' tags so that load-all doesn't break an x86 image 2011-08-24 23:52:02 -07:00
Erik Charlebois 1ed2bc6231 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Slava Pestov 55fd15c45a Move <ref>, deref and little-endian? from alien.c-types to alien.data, remove <c-object> 2010-12-25 16:55:36 -08:00
Doug Coleman 657b490f69 Remove <uint> *uint and friends. Hopefully remove the last usages of these words 2010-10-25 15:54:42 -05:00
Slava Pestov 4877d32cb3 compiler: preliminary implementation of tracking derived pointers in GC maps 2010-09-27 20:12:44 -07:00
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