factor/vm
Björn Lindqvist 663e5e2a09 VM: fix jit-signal-handler-prolog/epilog to account for the home space
Windows 64bit abi requires callers to reserve 32 bytes of home space in
the stack frame which the callee is free to clobber. Previous versions
of VS didn't compile code to take advantage of the home space so it
worked fined. VS2015 however, is using the home space which causes
registers and flags that were supposed to be saved to be
overwritten. The fix is to put a little extra empty space at the bottom
of the stack frame.
2015-08-26 20:23:25 +02:00
..
Config.arm GNUmakefile: use PCH so compiler goes faster 2011-11-08 08:42:46 -08:00
Config.linux vm: optionally set CC and CXX on macosx. 2014-06-06 15:13:48 -07:00
Config.linux.arm GNUmakefile: use PCH so compiler goes faster 2011-11-08 08:42:46 -08:00
Config.linux.ppc.32 vm/Config: GNUMakefile doesn't actually put the CFLAGS on the command, so use SITE_CFLAGS instead. Put -m32 in Config.x86.32, -m64 in Config.x86.64. Fixes #488. 2012-04-05 10:26:50 -07:00
Config.linux.ppc.64 vm/Config: GNUMakefile doesn't actually put the CFLAGS on the command, so use SITE_CFLAGS instead. Put -m32 in Config.x86.32, -m64 in Config.x86.64. Fixes #488. 2012-04-05 10:26:50 -07:00
Config.linux.x86.32 Build system cleanup 2007-09-22 00:41:17 -04:00
Config.linux.x86.64 GNUmakefile: Remove LIBPATH from the build system since nothing needs it. Fixes #1192. 2014-11-11 00:05:52 -08:00
Config.macosx GNUmakefile: Remove LIBPATH from the build system since nothing needs it. Fixes #1192. 2014-11-11 00:05:52 -08:00
Config.macosx.x86.32 vm/Config: GNUMakefile doesn't actually put the CFLAGS on the command, so use SITE_CFLAGS instead. Put -m32 in Config.x86.32, -m64 in Config.x86.64. Fixes #488. 2012-04-05 10:26:50 -07:00
Config.macosx.x86.64 vm/Config: GNUMakefile doesn't actually put the CFLAGS on the command, so use SITE_CFLAGS instead. Put -m32 in Config.x86.32, -m64 in Config.x86.64. Fixes #488. 2012-04-05 10:26:50 -07:00
Config.macosx.x86.fat Configs: CFLAGS isn't used by the GNUMakefile, change it to SITE_CFLAGS. 2013-03-23 12:10:37 -07:00
Config.unix Configs: CFLAGS isn't used by the GNUMakefile, change it to SITE_CFLAGS. 2013-03-23 12:10:37 -07:00
Config.windows VM: Remove exec bit from VM source files 2013-05-11 17:04:23 -04:00
Config.windows.x86.32 GNUmakefile: use PCH so compiler goes faster 2011-11-08 08:42:46 -08:00
Config.windows.x86.64 GNUmakefile: use PCH so compiler goes faster 2011-11-08 08:42:46 -08:00
Config.x86.32 vm/Config: GNUMakefile doesn't actually put the CFLAGS on the command, so use SITE_CFLAGS instead. Put -m32 in Config.x86.32, -m64 in Config.x86.64. Fixes #488. 2012-04-05 10:26:50 -07:00
Config.x86.64 vm: Typo for SITE_CFLAGS. Fixes #491. 2012-04-10 16:28:04 -07:00
Config.x86.fat GNUmakefile: use PCH so compiler goes faster 2011-11-08 08:42:46 -08:00
aging_collector.cpp VM: smaller style-fixes, like removing redundant else clauses and this prefixes 2015-08-14 20:19:55 -07:00
aging_space.hpp VM: smaller style-fixes, like removing redundant else clauses and this prefixes 2015-08-14 20:19:55 -07:00
alien.cpp VM: make allot_alien() and ffi_dlsym() use cell instead of void* 2015-08-23 18:36:31 -07:00
allot.hpp VM: simplified logic for allot_object() 2015-08-14 20:19:57 -07:00
arrays.cpp VM: refactoring that removes data_root_ranges 2014-06-12 13:50:10 -07:00
arrays.hpp vm: jit::jit is a c++ constructor but it does not allocate objects to the Factor heaps. 2014-02-14 20:29:26 -08:00
assert.hpp VM: Fixup cast formatting after clang-format 2013-05-13 14:59:24 -04:00
atomic-cl-32.hpp VM: Fixup cast formatting after clang-format 2013-05-13 14:59:24 -04:00
atomic-cl-64.hpp VM: Fixup cast formatting after clang-format 2013-05-13 14:59:24 -04:00
atomic-gcc.hpp VM: Refactor atomic-* to Factor style 2013-05-12 13:24:40 -04:00
atomic.hpp VM: Refactor atomic.hpp to Factor style 2013-05-12 13:24:41 -04:00
bignum.cpp VM: fix bignum>fixnum-strict conversion, previously most-negative-fixnum 2015-06-29 08:19:42 +02:00
bignum.hpp VM: fix bignum>fixnum-strict conversion, previously most-negative-fixnum 2015-06-29 08:19:42 +02:00
bignumint.hpp VM: change the BIGNUM_TO_POINTER macro so that it automatically sees through tagged pointers 2014-11-17 17:27:34 -08:00
bitwise_hacks.hpp VM: Fix Windows VM build following type renaming 2013-05-13 18:18:48 -04:00
booleans.hpp VM: Refactor booleans.hpp to Factor style 2013-05-12 13:24:41 -04:00
bump_allocator.hpp VM: no need for a nursery_space class, it's just a bump_allocator 2014-12-04 10:23:33 -08:00
byte_arrays.cpp VM: Replace u8-64, s8-64, cell, fixnum with stdint.h equivalents 2013-05-13 00:28:25 -04:00
byte_arrays.hpp vm: jit::jit is a c++ constructor but it does not allocate objects to the Factor heaps. 2014-02-14 20:29:26 -08:00
callbacks.cpp VM: make allot_alien() and ffi_dlsym() use cell instead of void* 2015-08-23 18:36:31 -07:00
callbacks.hpp VM: change the definition of entry_point in word and quotation from void* to cell 2015-01-15 09:29:13 +00:00
callstack.cpp VM: make allot_alien() and ffi_dlsym() use cell instead of void* 2015-08-23 18:36:31 -07:00
callstack.hpp VM: smaller style-fixes, like removing redundant else clauses and this prefixes 2015-08-14 20:19:55 -07:00
code_blocks.cpp VM: new function set_memory_locked(true/false) 2015-08-24 07:23:40 -07:00
code_blocks.hpp VM: smaller style-fixes, like removing redundant else clauses and this prefixes 2015-08-14 20:19:55 -07:00
code_heap.cpp VM: new function set_safepoint_guard to replace the functions (un)guard_safepoint 2015-08-24 07:23:40 -07:00
code_heap.hpp VM: new function set_safepoint_guard to replace the functions (un)guard_safepoint 2015-08-24 07:23:40 -07:00
code_roots.hpp VM: Remove redundant #ifdef FACTOR_DEBUGs 2013-05-12 23:44:32 -04:00
collector.hpp VM: move trace_partial_objects to visit_partial_objects since it is a 2015-08-14 20:19:55 -07:00
compaction.cpp VM: new method visit_instruction_operands(), it replaces the instruction 2015-08-04 16:02:09 +02:00
contexts.cpp VM: make allot_alien() and ffi_dlsym() use cell instead of void* 2015-08-23 18:36:31 -07:00
contexts.hpp VM: the context_object_count must be wrong, there are only 4 of them 2015-08-14 20:19:50 -07:00
cpu-arm.hpp VM: FRAME_RETURN_ADDRESS define unused 2015-08-14 20:19:54 -07:00
cpu-ppc.hpp VM: change the definition of entry_point in word and quotation from void* to cell 2015-01-15 09:29:13 +00:00
cpu-ppc.linux.S 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
cpu-x86.32.hpp VM: fix jit-signal-handler-prolog/epilog to account for the home space 2015-08-26 20:23:25 +02:00
cpu-x86.64.hpp VM: fix jit-signal-handler-prolog/epilog to account for the home space 2015-08-26 20:23:25 +02:00
cpu-x86.cpp VM: simplifies the dispatch_resumable_signal() method 2015-08-14 20:19:57 -07:00
cpu-x86.hpp VM: change the definition of entry_point in word and quotation from void* to cell 2015-01-15 09:29:13 +00:00
data_heap.cpp VM: move changes of structs to lambda functions 2015-07-06 22:49:38 +02:00
data_heap.hpp VM: replaced the reset_generation() generic method with one method for each generation 2015-01-15 09:29:14 +00:00
data_heap_checker.cpp VM: move changes of structs to lambda functions 2015-07-06 22:49:38 +02:00
data_roots.hpp VM: FACTOR_ASSERT so that data_root never wraps a null pointer, cause if it does, random crashes can happen 2014-11-17 17:27:36 -08:00
debug.cpp VM: gc required here because we are iterating all objects 2015-08-23 18:36:31 -07:00
debug.hpp VM: make the debug output a little prettier 2015-08-24 07:23:40 -07:00
dispatch.cpp vm: jit::jit is a c++ constructor but it does not allocate objects to the Factor heaps. 2014-02-14 20:29:26 -08:00
dispatch.hpp VM: Refactor dispatch to Factor style 2013-05-12 13:24:43 -04:00
entry_points.cpp VM: get_entry_point is unused 2015-07-12 22:36:59 +02:00
errors.cpp VM: merge memory_protection_error() with memory_signal_handler_impl() 2015-08-24 07:23:40 -07:00
errors.hpp vm: Fail with out_of_memory() if mprotect returns ENOMEM. 2014-11-11 06:26:55 +00:00
factor.cpp vm: store full command-line including executable first argument. 2014-12-22 22:39:52 -08:00
factor.hpp VM: new function set_memory_locked(true/false) 2015-08-24 07:23:40 -07:00
factor.rs vm: change id of windows app icon resource to more standard "APPICON" 2010-02-15 11:26:56 -08:00
ffi_test.c ffi_test.c: Casting a 32bit int to a 64bit pointer is invalid. Instead, 2015-06-05 10:21:20 -07:00
ffi_test.h ffi: test functions for bug #1021 2014-11-10 23:22:35 -08:00
fixup.hpp VM: simplified fixup_gc_workhorse::fixup_data by mering lots of functions only used once 2015-01-15 09:29:14 +00:00
float_bits.hpp VM: Replace u8-64, s8-64, cell, fixnum with stdint.h equivalents 2013-05-13 00:28:25 -04:00
free_list.cpp VM: Fixup cast formatting after clang-format 2013-05-13 14:59:24 -04:00
free_list.hpp VM: Refactor free_list to Factor style 2013-05-12 13:24:44 -04:00
free_list_allocator.hpp Revert "vm: don't use implicit this. thanks to Jon Harper for the report." 2015-08-14 11:15:55 -07:00
full_collector.cpp VM: merge full_collector.hpp into full_collector.cpp 2015-08-04 16:02:10 +02:00
gc.cpp VM: fix one callstack overflow problem by "unlocking" the callstacks 2015-08-14 20:19:58 -07:00
gc.hpp VM: new primitive (callback-room) for querying the VM about memory usage 2014-09-29 07:30:21 -07:00
gc_info.cpp VM: Fixup cast formatting after clang-format 2013-05-13 14:59:24 -04:00
gc_info.hpp VM: smaller style-fixes, like removing redundant else clauses and this prefixes 2015-08-14 20:19:55 -07:00
generic_arrays.hpp VM: get rid of the duplicated nursery instance in vm->data->nursery 2014-11-21 02:16:03 -08:00
image.cpp VM: new method visit_instruction_operands(), it replaces the instruction 2015-08-04 16:02:09 +02:00
image.hpp vm: Add threadsafe_sterror to the vm. 2014-07-04 03:00:08 -07:00
inline_cache.cpp VM: debug macros FACTOR_PRINT and FACTOR_PRINT_MARK to make better debug 2015-05-09 20:04:21 -07:00
inline_cache.hpp VM: change the definition of entry_point in word and quotation from void* to cell 2015-01-15 09:29:13 +00:00
instruction_operands.cpp VM: change the definition of entry_point in word and quotation from void* to cell 2015-01-15 09:29:13 +00:00
instruction_operands.hpp VM: Replace u8-64, s8-64, cell, fixnum with stdint.h equivalents 2013-05-13 00:28:25 -04:00
io.cpp VM: make allot_alien() and ffi_dlsym() use cell instead of void* 2015-08-23 18:36:31 -07:00
io.hpp VM: fixes so that raw_fread and safe_fread returns a size_t again 2015-06-05 02:14:49 +02:00
jit.cpp vm: Annotate more places where we can gc. 2014-11-29 19:25:46 -06:00
jit.hpp vm: Annotate more places where we can gc. 2014-11-29 19:25:46 -06:00
layouts.hpp VM: LEAF_FRAME_SIZE is 16 bytes on all platforms so we can simplify it 2015-08-26 20:23:15 +02:00
mach_signal.cpp VM: Fixup cast formatting after clang-format 2013-05-13 14:59:24 -04:00
mach_signal.hpp VM: Refactor mach_signal to Factor style 2013-05-12 13:24:45 -04:00
main-unix.cpp VM: Refactor main-* to Factor style 2013-05-12 13:24:45 -04:00
main-windows.cpp VM: attempt to cancel blocking system calls when ctrl-c is pressed 2014-05-10 18:13:04 -07:00
mark_bits.hpp VM: removes the template parameter from mark_bits 2015-01-15 09:29:13 +00:00
master.hpp VM: fix silly compile error 2015-08-04 16:02:10 +02:00
math.cpp VM: fix bignum>fixnum-strict conversion, previously most-negative-fixnum 2015-06-29 08:19:42 +02:00
math.hpp vm: generate a to_fixnum_strict to workaround an odd io.monitors issue. 2014-06-07 12:06:03 -07:00
mvm-none.cpp VM: Refactor mvm* to Factor style 2013-05-12 13:24:46 -04:00
mvm-unix.cpp VM: Refactor mvm* to Factor style 2013-05-12 13:24:46 -04:00
mvm-windows.cpp VM: attempt to cancel blocking system calls when ctrl-c is pressed 2014-05-10 18:13:04 -07:00
mvm.cpp VM: Refactor mvm* to Factor style 2013-05-12 13:24:46 -04:00
mvm.hpp VM: Refactor mvm* to Factor style 2013-05-12 13:24:46 -04:00
nursery_collector.cpp VM: cleanups, like removing redundant paranthesis and removing method 2015-05-09 20:04:22 -07:00
object_start_map.cpp VM: cleanup of some infrequently used functions that can be replaced with direct code 2015-02-28 14:14:30 -08:00
object_start_map.hpp VM: cleanup of some infrequently used functions that can be replaced with direct code 2015-02-28 14:14:30 -08:00
objects.cpp VM: you can insert the write_barrier() the first time you interate the 2015-08-04 16:02:09 +02:00
objects.hpp VM: the JIT_PROFILING special object is never used, so rename it to 2015-08-14 20:19:53 -07:00
os-genunix.cpp VM: Fixup cast formatting after clang-format 2013-05-13 14:59:24 -04:00
os-genunix.hpp vm: Add threadsafe_sterror to the vm. 2014-07-04 03:00:08 -07:00
os-linux-arm.cpp VM: Refactor os-* to Factor style 2013-05-12 13:24:46 -04:00
os-linux-arm.hpp VM: an unused #define we can eliminate 2015-08-14 20:19:50 -07:00
os-linux-ppc.32.hpp VM: FRAME_RETURN_ADDRESS define unused 2015-08-14 20:19:54 -07:00
os-linux-ppc.64.hpp VM: FRAME_RETURN_ADDRESS define unused 2015-08-14 20:19:54 -07:00
os-linux-x86.32.hpp VM: an unused #define we can eliminate 2015-08-14 20:19:50 -07:00
os-linux-x86.64.hpp VM: fix jit-signal-handler-prolog/epilog to account for the home space 2015-08-26 20:23:25 +02:00
os-linux.cpp VM: Refactor os-* to Factor style 2013-05-12 13:24:46 -04:00
os-linux.hpp VM: Refactor os-* to Factor style 2013-05-12 13:24:46 -04:00
os-macosx-x86.32.hpp VM: Refactor os-* to Factor style 2013-05-12 13:24:46 -04:00
os-macosx-x86.64.hpp VM: fix jit-signal-handler-prolog/epilog to account for the home space 2015-08-26 20:23:25 +02:00
os-macosx.hpp VM: an unused #define we can eliminate 2015-08-14 20:19:50 -07:00
os-macosx.mm vm: fix OS X issue with using symlinks from outside $factor. 2014-12-03 19:19:52 -08:00
os-unix.cpp VM: new function set_safepoint_guard to replace the functions (un)guard_safepoint 2015-08-24 07:23:40 -07:00
os-unix.hpp vm: Fail with out_of_memory() if mprotect returns ENOMEM. 2014-11-11 06:26:55 +00:00
os-windows-x86.32.cpp Reorganising bootstrap files 2015-05-22 12:22:24 -07:00
os-windows-x86.64.cpp VM: Fix Windows 64-bit build on Visual Studio 2012 2013-05-13 18:19:52 -04:00
os-windows.32.hpp VM: Refactor os-* to Factor style 2013-05-12 13:24:46 -04:00
os-windows.64.hpp VM: fix jit-signal-handler-prolog/epilog to account for the home space 2015-08-26 20:23:25 +02:00
os-windows.cpp VM: refactoring, new function get_thread_pc() and simpler logic in exception_handler() 2015-08-26 20:23:20 +02:00
os-windows.hpp vm: Simplify strerror code. 2014-07-05 18:58:24 -07:00
platform.hpp platform.hpp: Indent so I can see wtf is going on with the preprocessor control flow. 2015-06-05 10:53:02 -07:00
primitives.cpp VM: Refactor primitives.cpp/hpp to Factor style 2013-05-12 13:24:46 -04:00
primitives.hpp VM: make allot_alien() and ffi_dlsym() use cell instead of void* 2015-08-23 18:36:31 -07:00
quotations.cpp VM: smaller style-fixes, like removing redundant else clauses and this prefixes 2015-08-14 20:19:55 -07:00
quotations.hpp VM: emit_prolog/emit_epilog can be simplified because stack frame and 2015-08-14 20:19:51 -07:00
run.cpp VM: a bunch of methods on factor_vm that can be converted into free 2015-08-04 16:02:09 +02:00
run.hpp VM: Refactor run.cpp/hpp to Factor style 2013-05-12 13:24:47 -04:00
safepoints.cpp VM: instead of enqueue_safepoint() just call set_safepoint_guard() directly 2015-08-26 20:23:23 +02:00
safepoints.hpp VM: instead of enqueue_safepoint() just call set_safepoint_guard() directly 2015-08-26 20:23:23 +02:00
safeseh.asm VM: Remove exec bit from VM source files 2013-05-11 17:04:23 -04:00
sampling_profiler.cpp VM: some more fixing to make the types match better, converting void* to cell 2015-01-15 09:29:13 +00:00
sampling_profiler.hpp VM: Refactor sampling_profiler.cpp/hpp to Factor style 2013-05-12 13:24:47 -04:00
segments.hpp VM: new method set_border_locked() in segment, so that you can remove 2015-08-14 20:19:56 -07:00
slot_visitor.hpp VM: move trace_partial_objects to visit_partial_objects since it is a 2015-08-14 20:19:55 -07:00
strings.cpp VM: get rid of the duplicated nursery instance in vm->data->nursery 2014-11-21 02:16:03 -08:00
tagged.hpp VM: Remove redundant #ifdef FACTOR_DEBUGs 2013-05-12 23:44:32 -04:00
tenured_space.hpp VM: smaller style-fixes, like removing redundant else clauses and this prefixes 2015-08-14 20:19:55 -07:00
to_tenured_collector.cpp VM: to_tenured_collector isn't needed, it's just a normal collector instance 2015-05-09 20:04:21 -07:00
to_tenured_collector.hpp VM: to_tenured_collector isn't needed, it's just a normal collector instance 2015-05-09 20:04:21 -07:00
tuples.cpp VM: Refactor tuples.cpp/hpp to Factor style 2013-05-12 13:24:48 -04:00
utilities.cpp VM: Refactor utilities.cpp/hpp to Factor style 2013-05-12 13:24:48 -04:00
utilities.hpp utilities.hpp: Use auto pointer instead of gcc extension typeof(). 2015-06-05 10:20:32 -07:00
vm.cpp VM: macro FACTOR_FOR_EACH used in more places to drive iteration 2015-06-05 02:14:49 +02:00
vm.hpp VM: merge memory_protection_error() with memory_signal_handler_impl() 2015-08-24 07:23:40 -07:00
words.cpp vm: rename some primitives, and some cleanup. 2015-07-15 11:13:52 -07:00
write_barrier.hpp VM: cleanup of some infrequently used functions that can be replaced with direct code 2015-02-28 14:14:30 -08:00