Fix -pic command line switch, and enable PICs in user-space
parent
5b53562c7b
commit
dfcbd206b6
|
@ -245,6 +245,12 @@ M: f compile-engine ;
|
||||||
generic-word get "methods" word-prop
|
generic-word get "methods" word-prop
|
||||||
assoc-size 2 * next-power-of-2 f <array> ;
|
assoc-size 2 * next-power-of-2 f <array> ;
|
||||||
|
|
||||||
|
: define-cold-call ( word -- )
|
||||||
|
#! Direct calls to the generic word (not tail calls or indirect calls)
|
||||||
|
#! will jump to the inline cache entry point instead of the megamorphic
|
||||||
|
#! dispatch entry point.
|
||||||
|
dup [ f inline-cache-miss ] curry [ ] like >>direct-entry-def drop ;
|
||||||
|
|
||||||
M: single-combination perform-combination
|
M: single-combination perform-combination
|
||||||
[
|
[
|
||||||
dup build-decision-tree
|
dup build-decision-tree
|
||||||
|
@ -256,5 +262,6 @@ M: single-combination perform-combination
|
||||||
make-empty-cache ,
|
make-empty-cache ,
|
||||||
[ lookup-method (execute) ] %
|
[ lookup-method (execute) ] %
|
||||||
] [ ] make define
|
] [ ] make define
|
||||||
] 2bi
|
]
|
||||||
|
[ drop define-cold-call ] 2tri
|
||||||
] with-combination ;
|
] with-combination ;
|
|
@ -26,6 +26,8 @@ void default_parameters(F_PARAMETERS *p)
|
||||||
p->tenured_size = 4 * CELLS;
|
p->tenured_size = 4 * CELLS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
p->max_pic_size = 3;
|
||||||
|
|
||||||
p->secure_gc = false;
|
p->secure_gc = false;
|
||||||
p->fep = false;
|
p->fep = false;
|
||||||
|
|
||||||
|
@ -100,8 +102,6 @@ void init_factor(F_PARAMETERS *p)
|
||||||
p->tenured_size <<= 20;
|
p->tenured_size <<= 20;
|
||||||
p->code_size <<= 20;
|
p->code_size <<= 20;
|
||||||
|
|
||||||
p->max_pic_size = 3;
|
|
||||||
|
|
||||||
/* Disable GC during init as a sanity check */
|
/* Disable GC during init as a sanity check */
|
||||||
gc_off = true;
|
gc_off = true;
|
||||||
|
|
||||||
|
|
2
vm/run.h
2
vm/run.h
|
@ -61,7 +61,7 @@ typedef enum {
|
||||||
JIT_EXECUTE_CALL,
|
JIT_EXECUTE_CALL,
|
||||||
|
|
||||||
/* Used by polymorphic inline cache generation in inline_cache.c */
|
/* Used by polymorphic inline cache generation in inline_cache.c */
|
||||||
PIC_TAG = 53,
|
PIC_TAG = 48,
|
||||||
PIC_HI_TAG,
|
PIC_HI_TAG,
|
||||||
PIC_TUPLE,
|
PIC_TUPLE,
|
||||||
PIC_HI_TAG_TUPLE,
|
PIC_HI_TAG_TUPLE,
|
||||||
|
|
Loading…
Reference in New Issue