Commit Graph

1399 Commits (19cd3c1faedb2c7dc2c8c2e6ea39f90c194c8be3)

Author SHA1 Message Date
John Benediktsson 5d8ffbc23b bignum: incorporate some fixes from @slavapestov. 2012-08-10 14:28:44 -07:00
John Benediktsson ac8dfc7128 vm: make sure we zero out the end of the bignums. 2012-08-04 18:02:27 -07:00
John Benediktsson e941e3c6d3 vm: a bit faster not to trim on each iteration... 2012-08-04 09:13:05 -07:00
John Benediktsson 2d1ad0cd03 vm: additional fix in bignum_gcd. 2012-08-03 21:50:48 -07:00
John Benediktsson 937cf547d9 vm: some fixes to fast bignum gcd. 2012-08-03 12:13:46 -07:00
John Benediktsson 925c0dd744 vm: fix updating size inside bignum_gcd loop. 2012-08-02 17:36:07 -07:00
Doug Coleman 745ac786a8 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 5e8ca2b046 vm: adding more GC_BIGNUM to WIN64 path. See #599. 2012-08-02 17:04:22 -07:00
Doug Coleman 6a54d0d0f3 compaction: Less than is the new greater than. Fixes #558. 2012-07-25 17:57:50 -07:00
Doug Coleman 6f7c2694e0 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 d3e7f4cff0 compaction: Inifnite headaches--cured! Two compact functions, one was not like the other. 2012-05-27 18:26:03 -07:00
Doug Coleman 1e4888e9fd vm: Typo for SITE_CFLAGS. Fixes #491. 2012-04-10 16:28:04 -07:00
John Benediktsson 965d8eca84 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 6e0e4d09dc vm: use twodigit type for all variables (fixes 32-bit warning). 2012-04-06 09:36:25 -07:00
Doug Coleman 23e00b9f85 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 629677b772 vm: adding bignum_gcd primitive. 2012-04-05 09:17:35 -07:00
Joe Groff db28f69997 use clang when building w/ xcode >4.3; it's faster 2012-02-18 23:40:38 -08:00
Joe Groff d0a42ec730 vm: actually code_block_pic is a fine frame type 2011-12-21 21:12:54 -08:00
Joe Groff da7c05a4b0 vm: also smoke-check callstack after pic update 2011-12-21 18:31:37 -08:00
Joe Groff a39b976bc1 vm: flush after print_obj so it's usable from gdb 2011-12-21 13:25:28 -08:00
Joe Groff 7ed8569018 vm: fashion brigade 2011-12-21 13:25:05 -08:00
Joe Groff 05bf24c5a4 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 cd9b3f26ee vm: load mega cache object before popping frame
Fixes #457 harder
2011-12-20 14:38:01 -08:00
Joe Groff 039224424a vm: unwind-native-frames is special
Fixes #457
2011-12-19 16:54:25 -08:00
Joe Groff e877ccfb37 vm: cleanups 2011-12-14 09:56:50 -08:00
Joe Groff 195974ff5f vm: don't scribble memory handling leaf signals 2011-12-14 09:56:50 -08:00
Joe Groff af989f533a 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 34a1257da8 vm: factor out word_stack_frame_size 2011-12-14 09:56:49 -08:00
Joe Groff 530db5fa95 vm: get rid of now-trivial innermost_stack_frame 2011-12-14 09:56:49 -08:00
Joe Groff 1c44a4e8ae simplify function prologs 2011-12-14 09:56:49 -08:00
Joe Groff c339bb9ccf vm: fix types after rebase 2011-12-14 09:56:49 -08:00
Joe Groff e56f2b5753 vm: replace remaining stack_frame-based logic 2011-12-14 09:56:49 -08:00
Joe Groff 9df2c107dc 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 e5f591c772 vm: remove iterate_callstack_object 2011-12-14 09:56:48 -08:00
Joe Groff 1ef3454e1a vm: callstack_reversed for callstack_to_array 2011-12-14 09:56:48 -08:00
Joe Groff 099559c191 remove iterate_callstack now that it's unused 2011-12-14 09:56:48 -08:00
Joe Groff b8e80ee900 vm: callstack_reversed in call_frame_scrubber 2011-12-14 09:56:48 -08:00
Joe Groff 841600fc6e 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 faa9b4ea3f vm: callstack_reversed in code_block_visitor 2011-12-14 09:56:48 -08:00
Joe Groff 00967b4931 vm: iterate_callstack_reversed in slot_visitor 2011-12-14 09:56:47 -08:00
Joe Groff 41f3190349 vm: reversed callstack iteration 2011-12-14 09:56:47 -08:00
Joe Groff 5926257d1e 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 f331766fc7 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 9bdeac9745 vm: don't suffer null return addresses 2011-12-14 09:56:46 -08:00
Joe Groff 8981fccbe8 vm: frame size for signal handler code blocks 2011-12-14 09:56:46 -08:00
Joe Groff b57d3af1d5 vm: initialize all_blocks set after initial fixup 2011-12-14 09:56:46 -08:00
Joe Groff 45ed3c4a56 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 12c569e3a7 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 14e0c9f482 vm: pack frame size into code block header bits 2011-12-14 09:56:45 -08:00
Joe Groff 9186a1bdf3 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