Commit Graph

1388 Commits (1d8449115ccd091c03ce46445aa42a3d29c0c333)

Author SHA1 Message Date
Doug Coleman c577a5468e vm: Typo for SITE_CFLAGS. Fixes #491. 2012-04-10 16:28:04 -07:00
John Benediktsson 5794ab46a0 vm: use euclid gcd on win64 until we find a better way to do the 128-bit math. 2012-04-06 11:42:59 -07:00
John Benediktsson eb556bfb06 vm: use twodigit type for all variables (fixes 32-bit warning). 2012-04-06 09:36:25 -07:00
Doug Coleman 4a29dafcdf 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
John Benediktsson 22c26ff3f5 vm: adding bignum_gcd primitive. 2012-04-05 09:17:35 -07:00
Joe Groff 3f9b2ef47a use clang when building w/ xcode >4.3; it's faster 2012-02-18 23:40:38 -08:00
Joe Groff b094d4d0ec vm: actually code_block_pic is a fine frame type 2011-12-21 21:12:54 -08:00
Joe Groff 7121e0d598 vm: also smoke-check callstack after pic update 2011-12-21 18:31:37 -08:00
Joe Groff 0b72b811fc vm: flush after print_obj so it's usable from gdb 2011-12-21 13:25:28 -08:00
Joe Groff 9f137c66d4 vm: fashion brigade 2011-12-21 13:25:05 -08:00
Joe Groff 442923b561 vm: walk stack on inline_cache_miss if PIC_DEBUG=1
Reveals inline cache stack coherency bug behind #460
2011-12-21 13:24:35 -08:00
Joe Groff b6f323450f vm: load mega cache object before popping frame
Fixes #457 harder
2011-12-20 14:38:01 -08:00
Joe Groff f513894435 vm: unwind-native-frames is special
Fixes #457
2011-12-19 16:54:25 -08:00
Joe Groff 842eb27785 vm: cleanups 2011-12-14 09:56:50 -08:00
Joe Groff 1c7bd9a7b4 vm: don't scribble memory handling leaf signals 2011-12-14 09:56:50 -08:00
Joe Groff 7c9332e966 cpu.x86.*: clean up signal handler prolog code
Also bump the signal handler frame sizes up again since it looks like we shrank them too much.
2011-12-14 09:56:50 -08:00
Joe Groff 7844c66d6e vm: factor out word_stack_frame_size 2011-12-14 09:56:49 -08:00
Joe Groff a1ee881435 vm: get rid of now-trivial innermost_stack_frame 2011-12-14 09:56:49 -08:00
Joe Groff 079025559d simplify function prologs 2011-12-14 09:56:49 -08:00
Joe Groff 2f20ee6fb0 vm: fix types after rebase 2011-12-14 09:56:49 -08:00
Joe Groff 604ceb957c vm: replace remaining stack_frame-based logic 2011-12-14 09:56:49 -08:00
Joe Groff d74f194b07 vm: remove _reversed from callstack iterator names
Now that they're the only game in town we can give them the short names
2011-12-14 09:56:49 -08:00
Joe Groff f6a5f48da0 vm: remove iterate_callstack_object 2011-12-14 09:56:48 -08:00
Joe Groff a1958c67bd vm: callstack_reversed for callstack_to_array 2011-12-14 09:56:48 -08:00
Joe Groff 0af5fff27c remove iterate_callstack now that it's unused 2011-12-14 09:56:48 -08:00
Joe Groff 822a658cc3 vm: callstack_reversed in call_frame_scrubber 2011-12-14 09:56:48 -08:00
Joe Groff 9236c05e60 vm: stage code block map fixup properly for GC
Don't update the map until the very last thing, and pass untranslated addresses to the iterator functors. Somewhat complicated by the fact that, for startup_fixup, the map is initialized with fixed-up values, so the fixup functor needs a flag indicating whether it operates with a fixed or unfixed code heap map.
2011-12-14 09:56:48 -08:00
Joe Groff e6a80aa9aa vm: callstack_reversed in code_block_visitor 2011-12-14 09:56:48 -08:00
Joe Groff d12b6e375b vm: iterate_callstack_reversed in slot_visitor 2011-12-14 09:56:47 -08:00
Joe Groff e116bc497b vm: reversed callstack iteration 2011-12-14 09:56:47 -08:00
Joe Groff e2fafaed9c WIP verify_callstack function
dumps callstack in reverse order so i can visually inspect that it matches the old forward walking logic
2011-12-14 09:56:47 -08:00
Joe Groff ef38688e87 vm: method to calculate frame size for address
If we're before the prolog or or in a leaf procedure, the stack frame is really a leaf frame created by the signal handler, with a known fixed size, instead of the real stack frame (if any) with a different size.
2011-12-14 09:56:47 -08:00
Joe Groff 5b9aee2c91 vm: don't suffer null return addresses 2011-12-14 09:56:46 -08:00
Joe Groff 1911905c6b vm: frame size for signal handler code blocks 2011-12-14 09:56:46 -08:00
Joe Groff 0b94018d9f vm: initialize all_blocks set after initial fixup 2011-12-14 09:56:46 -08:00
Joe Groff 3868895b56 vm: make all_blocks a set of cells
gcc was doing bad things assuming the pointer given to upper_bound was aligned
2011-12-14 09:56:46 -08:00
Joe Groff 36d1e0a78c vm: verifier shouldn't check for leftovers
It doesn't work after things have been freed
2011-12-14 09:56:45 -08:00
Joe Groff d6227c182b vm: pack frame size into code block header bits 2011-12-14 09:56:45 -08:00
Joe Groff e21f316583 vm: store stack frame size in code blocks
Change modify-code-heap primitive so it takes a sixth element in each array for the frame size.
2011-12-14 09:56:45 -08:00
Joe Groff bd7e6b33f8 vm: erase code blocks from all_blocks during sweep
Fixes #437
2011-12-13 12:28:09 -08:00
Joe Groff 083b856604 vm: reinitialize all_blocks from scratch after gc
Faster and more likely to be correct than trying to fixup the existing set
2011-12-12 19:05:48 -08:00
Joe Groff 4bbb2f5b72 vm: only verify all_blocks set if it's invalid
Verifying on every sample is way too slow to be practical when debugging bootstrap.
2011-12-12 19:04:56 -08:00
Joe Groff 4870ac8f1d vm: add compact-gc command to factorbug 2011-12-12 19:03:42 -08:00
Joe Groff dea0bedb99 vm: fix msvc warning 2011-11-29 12:19:17 -08:00
Joe Groff 26226d460e vm: factor out embedded image detection code 2011-11-27 14:39:21 -08:00
Joe Groff cca526df73 vm: support self-executing image file 2011-11-27 12:37:54 -08:00
Joe Groff 88d31b166b vm: don't die if foreign thread gets async signal
Fixes #425
2011-11-23 11:26:42 -08:00
Joe Groff 065a4d4353 vm: remove useless forward declare 2011-11-23 11:11:28 -08:00
Joe Groff b6246f2c00 vm: quell warnings from vars only used by asserts 2011-11-23 11:11:28 -08:00
Joe Groff 4df56f31f2 vm: clean up baroque jit safepoint logic 2011-11-23 11:11:27 -08:00