Code cleanups

db4
Slava Pestov 2009-05-07 12:33:31 -05:00
parent 466533d509
commit d7b40d72a0
4 changed files with 10 additions and 12 deletions

View File

@ -48,6 +48,8 @@ TUPLE: interval { from read-only } { to read-only } ;
: (a,inf] ( a -- interval ) 1/0. (a,b] ; inline : (a,inf] ( a -- interval ) 1/0. (a,b] ; inline
: [0,inf] ( -- interval ) 0 [a,inf] ; foldable
: [-inf,inf] ( -- interval ) full-interval ; inline : [-inf,inf] ( -- interval ) full-interval ; inline
: compare-endpoints ( p1 p2 quot -- ? ) : compare-endpoints ( p1 p2 quot -- ? )
@ -262,7 +264,7 @@ TUPLE: interval { from read-only } { to read-only } ;
: interval-abs ( i1 -- i2 ) : interval-abs ( i1 -- i2 )
{ {
{ [ dup empty-interval eq? ] [ ] } { [ dup empty-interval eq? ] [ ] }
{ [ dup full-interval eq? ] [ drop 0 [a,inf] ] } { [ dup full-interval eq? ] [ drop [0,inf] ] }
{ [ 0 over interval-contains? ] [ (interval-abs) { 0 t } suffix points>interval ] } { [ 0 over interval-contains? ] [ (interval-abs) { 0 t } suffix points>interval ] }
[ (interval-abs) points>interval ] [ (interval-abs) points>interval ]
} cond ; } cond ;
@ -376,7 +378,7 @@ SYMBOL: incomparable
: interval-log2 ( i1 -- i2 ) : interval-log2 ( i1 -- i2 )
{ {
{ empty-interval [ empty-interval ] } { empty-interval [ empty-interval ] }
{ full-interval [ 0 [a,inf] ] } { full-interval [ [0,inf] ] }
[ [
to>> first 1 max dup most-positive-fixnum > to>> first 1 max dup most-positive-fixnum >
[ drop full-interval interval-log2 ] [ drop full-interval interval-log2 ]

View File

@ -303,7 +303,7 @@ cell heap_size(heap *heap)
} }
/* Compute where each block is going to go, after compaction */ /* Compute where each block is going to go, after compaction */
cell compute_heap_forwarding(heap *heap, unordered_map<heap_block *,char *> &forwarding) cell compute_heap_forwarding(heap *heap, unordered_map<heap_block *,char *> &forwarding)
{ {
heap_block *scan = first_block(heap); heap_block *scan = first_block(heap);
char *address = (char *)first_block(heap); char *address = (char *)first_block(heap);
@ -324,7 +324,7 @@ cell heap_size(heap *heap)
return (cell)address - heap->seg->start; return (cell)address - heap->seg->start;
} }
void compact_heap(heap *heap, unordered_map<heap_block *,char *> &forwarding) void compact_heap(heap *heap, unordered_map<heap_block *,char *> &forwarding)
{ {
heap_block *scan = first_block(heap); heap_block *scan = first_block(heap);

View File

@ -1,9 +1,5 @@
#include "asm.h" #include "asm.h"
/* Note that primitive word definitions are compiled with
__attribute__((regparm 2), so the pointer to the word object is passed in EAX,
and the callstack top is passed in EDX */
#define ARG0 %eax #define ARG0 %eax
#define ARG1 %edx #define ARG1 %edx
#define STACK_REG %esp #define STACK_REG %esp
@ -59,9 +55,9 @@ DEF(bool,check_sse2,(void)):
mov %edx,%eax mov %edx,%eax
ret ret
DEF(F_FASTCALL void,primitive_inline_cache_miss,(void)): DEF(void,primitive_inline_cache_miss,(void)):
mov (%esp),%ebx mov (%esp),%ebx
DEF(F_FASTCALL void,primitive_inline_cache_miss_tail,(void)): DEF(void,primitive_inline_cache_miss_tail,(void)):
sub $8,%esp sub $8,%esp
push %ebx push %ebx
call MANGLE(inline_cache_miss) call MANGLE(inline_cache_miss)

View File

@ -72,9 +72,9 @@ DEF(void,set_callstack,(F_STACK_FRAME *to, F_STACK_FRAME *from, CELL length, voi
call *ARG3 /* call memcpy */ call *ARG3 /* call memcpy */
ret /* return _with new stack_ */ ret /* return _with new stack_ */
DEF(F_FASTCALL void,primitive_inline_cache_miss,(void)): DEF(void,primitive_inline_cache_miss,(void)):
mov (%rsp),%rbx mov (%rsp),%rbx
DEF(F_FASTCALL void,primitive_inline_cache_miss_tail,(void)): DEF(void,primitive_inline_cache_miss_tail,(void)):
sub $STACK_PADDING,%rsp sub $STACK_PADDING,%rsp
mov %rbx,ARG0 mov %rbx,ARG0
call MANGLE(inline_cache_miss) call MANGLE(inline_cache_miss)