Björn Lindqvist
7661ed3b57
VM: replacing the copy assignment operators of the smart pointers
...
Little more to write, but much easier to see what is going on with
methods rather than assignment operator overloading.
2016-11-23 06:42:06 +01:00
Björn Lindqvist
94b274490c
Revert "VM: undo a8aaa42882
( #1513 )"
...
This reverts commit e50ef532ca
.
2016-11-12 00:19:52 +01:00
Björn Lindqvist
e50ef532ca
VM: undo a8aaa42882
( #1513 )
2016-11-11 17:36:04 +01:00
Björn Lindqvist
51408b66cb
VM: the jit class doesn't need to store the code block type
2016-10-19 09:28:59 +02:00
Alexander Iljin
0d57734dab
vm: replace block comments /**/ with line comments //
2016-09-09 05:47:52 +02:00
Björn Lindqvist
59443dca01
VM: new method quotation_jit:nth
...
It's less tedious than writing array_nth(elements.untagged(), i + N) everywhere
2016-05-31 03:37:24 +02:00
Björn Lindqvist
4a471ba07c
VM: make it so compiling mega cache lookups doesn't generate stack frames ( #651 )
2016-05-30 08:23:18 +02:00
Björn Lindqvist
3b016bc254
VM: a bunch of more methods on the factor_vm class that can be made into funtions
2016-05-30 07:44:26 +02:00
Björn Lindqvist
00a64c9271
VM: name change no_non_safepoint_words_p -> stack_frame_p
...
It returns true if the quotation should be wrapped in a stack frame.
2016-05-30 07:44:20 +02:00
Björn Lindqvist
1fddf79724
VM: moving a few methods arounds
...
word_call, word_jump and emit_mega_cache_lookup are only used in quotations.cpp so they should be defined there too.
2016-05-30 03:03:10 +02:00
Björn Lindqvist
d911bc45fd
VM: refactors the prepare_boot_image method
...
easier to read if the methods compile_all_words and
initialize_all_quotations which are only used once are "inlined"
2015-12-04 13:57:57 +01:00
Björn Lindqvist
a8aaa42882
VM: refactoring to use the TAG macro directly over the tagged struct
...
eg. TAG(obj) is equivalent to tagged<object>(obj).type()
2015-11-22 23:42:54 +01:00
Björn Lindqvist
68c0c0f53a
VM: clear commented out code
2015-09-02 21:54:27 +02:00
Björn Lindqvist
5d7fb5da60
VM: smaller style-fixes, like removing redundant else clauses and this prefixes
2015-08-14 20:19:55 -07:00
Björn Lindqvist
3f9fa7e39e
VM: emit_prolog/emit_epilog can be simplified because stack frame and
...
safe point is always emitted together
2015-08-14 20:19:51 -07:00
Björn Lindqvist
358fae93c9
VM: the stack_frame_p() and safepoint_p() functions appear to be
...
semantically identical, let's merge them into a
no_non_safepoint_words_p() function
2015-08-14 20:19:50 -07:00
Björn Lindqvist
f5f8ce1501
VM: word_stack_frame_p() is not used and find_all_quotations() is
...
trivial so those methods can be removed
2015-08-04 16:02:09 +02:00
John Benediktsson
b065d6172d
vm: rename emit_quot to emit_quotation.
2015-07-15 11:21:20 -07:00
John Benediktsson
4c2c8f133f
vm: rename some primitives, and some cleanup.
...
* quot-compiled? => quotation-compiled?
* optimized? => word-optimized?
2015-07-15 11:13:52 -07:00
Björn Lindqvist
6ca83e7588
Reorganising bootstrap files
...
All the bootstrap.factor scripts in cpu/ are run by the bootstrap to
make boot images, but aren't used otherwise. So I think it's cleaner to
put them in one directory inside the bootstrap hierarchy.
2015-05-22 12:22:24 -07:00
Björn Lindqvist
fb9fa12cdd
VM: change the definition of entry_point in word and quotation from void* to cell
...
this gets rid of lots of redundant casts from void* to cell
2015-01-15 09:29:13 +00:00
Doug Coleman
c675694619
vm: Annotate more places where we can gc.
...
Code formatting fix.
2014-11-29 19:25:46 -06:00
Björn Lindqvist
60b7631e76
VM: fixing some implicit casts from cell to fixnum
...
The types are compatible, but it looks a little nicer if the variable
that receives a return value declared as cell also is a cell.
2014-07-10 07:54:07 -07:00
Doug Coleman
19685f4528
vm: jit::jit is a c++ constructor but it does not allocate objects to the Factor heaps.
...
Add annotations for gc allocating.
2014-02-14 20:29:26 -08:00
Erik Charlebois
ffe41b3d7f
VM: Fixup cast formatting after clang-format
...
clang-format doesn't recognize casts to non-pointer/non-template types
so it winds up adding a space between the right paren and the expression
and then failing to recognize prefix operators in the process
(e.g. foo = (cell) & bar; should be foo = (cell)&bar;). This commit
manually fixes up the major cases (fixnum, cell, all types ending in _t).
2013-05-13 14:59:24 -04:00
Erik Charlebois
435ac636c6
VM: Refactor quotations.cpp/hpp to Factor style
2013-05-12 13:24:47 -04:00
Erik Charlebois
ca2ea548be
VM: Remove exec bit from VM source files
2013-05-11 17:04:23 -04:00
Doug Coleman
86649ce1c0
vm: More allocates comments.
2013-03-25 14:05:05 -07:00
Doug Coleman
000efd9bbb
vm: Add messages about things that can allocate. Fix a gc bug in the primitive for quotation-code.
2012-08-15 21:30:55 -07:00
Joe Groff
9f137c66d4
vm: fashion brigade
2011-12-21 13:25:05 -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
7844c66d6e
vm: factor out word_stack_frame_size
2011-12-14 09:56:49 -08:00
Joe Groff
1911905c6b
vm: frame size for signal handler code blocks
2011-12-14 09:56:46 -08:00
Joe Groff
4df56f31f2
vm: clean up baroque jit safepoint logic
2011-11-23 11:11:27 -08:00
Joe Groff
0a1a252cdb
vm: replace assert with FACTOR_ASSERT
...
Factor is finally a real C++ project and has a custom assert macro. Assertion failures were still getting caught as exceptions and causing failure loops. Write our own macro that calls factor::abort on failure.
2011-11-23 11:11:26 -08:00
Joe Groff
44b608bb22
vm: emit safepoints before VM compiler prologs
...
For #379
2011-11-23 11:11:25 -08:00
Joe Groff
c31530caec
vm: strip out call-counting profiler
...
This makes the separate "code" and "entry_point" fields in word and quotation redundant, so also remove them to reclaim an additional cell per word and quotation object, which should help with #318 .
2011-11-10 16:01:07 -08:00
Joe Groff
6bb46a3f1e
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
d6eae2f42d
vm: suppress signal-handler stack frame generation
...
This is a hack; see #295
2011-10-27 21:18:19 -07:00
Erik Charlebois
64252dbdbc
32 and 64 bit Linux PPC support
2011-05-23 23:36:14 -04:00
Slava Pestov
b23aac1beb
compiler.cfg: open-code parameter boxing and unboxing for certain C types
2010-07-19 10:25:13 -04:00
Slava Pestov
cc69719147
vm: don't recompile lazy-jit-compile more than once
2010-01-20 02:48:31 +13:00
Slava Pestov
5606825e8b
vm: remove primitive table, non-optimizing compiler now looks up primitives with dlsym()
2010-01-19 20:00:33 +13:00
Slava Pestov
637a77c018
Stop wearing monocle and use the term "entry point" instead of "XT" throughout VM and compiler; also remove two unused relocation types
2010-01-18 20:54:00 +13:00
Slava Pestov
8d34a0f3c1
Store VM object in a register on x86-64
2010-01-11 01:20:32 +13:00
Slava Pestov
c04fef10c7
vm: ensure that non-optimized calls to generic words which have not yet been compiled can still work
2010-01-06 23:49:14 +13:00
Slava Pestov
36d2ac8921
vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64
2010-01-06 15:47:36 +13:00
Slava Pestov
81430947d5
PowerPC: fix set-callstack primitive and start updating optimizing compiler backend for recent changes
2009-12-28 08:08:15 -06:00
Slava Pestov
15eb8d1a0a
vm: remove VM_ASM_API
2009-12-24 01:37:24 +13:00