Commit Graph

1399 Commits (fa57d3e85dae506db5c1838b088d07f142b54191)

Author SHA1 Message Date
John Benediktsson 39c3f10138 bignum: incorporate some fixes from @slavapestov. 2012-08-10 14:28:44 -07:00
John Benediktsson c4f85efc9d vm: make sure we zero out the end of the bignums. 2012-08-04 18:02:27 -07:00
John Benediktsson 61a6b5692f vm: a bit faster not to trim on each iteration... 2012-08-04 09:13:05 -07:00
John Benediktsson f7bb7c6a32 vm: additional fix in bignum_gcd. 2012-08-03 21:50:48 -07:00
John Benediktsson 37001708cd vm: some fixes to fast bignum gcd. 2012-08-03 12:13:46 -07:00
John Benediktsson 5c8a2a4057 vm: fix updating size inside bignum_gcd loop. 2012-08-02 17:36:07 -07:00
Doug Coleman 30e34ca616 bignum: Fix bignum_gcd algorithm from overwriting the wrong bignum memory. Add GC_BIGNUM to prevent gc crashes. Fixes #599. 2012-08-02 17:16:03 -07:00
John Benediktsson 426c449ee1 vm: adding more GC_BIGNUM to WIN64 path. See #599. 2012-08-02 17:04:22 -07:00
Doug Coleman 106ecdb6dd compaction: Less than is the new greater than. Fixes #558. 2012-07-25 17:57:50 -07:00
Doug Coleman 1a9caec368 Config.macosx: first two digits of 'xcodebuild -version' number is enough; throw away rest of version number.
$ xcodebuild -version
Xcode 4.3.3
Build version 4E3002
Fixes #543.
2012-06-22 15:23:07 -07:00
Doug Coleman e9ec95ad4f compaction: Inifnite headaches--cured! Two compact functions, one was not like the other. 2012-05-27 18:26:03 -07:00
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