Fix spaces that crept into vm/ cpp files
parent
c08fa9cb6e
commit
d22eb40360
|
@ -11,7 +11,7 @@ SHARED_FLAG = -dynamiclib
|
||||||
ifdef X11
|
ifdef X11
|
||||||
LIBS = -lm -framework Cocoa -L/opt/local/lib $(X11_UI_LIBS) -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
|
LIBS = -lm -framework Cocoa -L/opt/local/lib $(X11_UI_LIBS) -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
|
||||||
else
|
else
|
||||||
LIBS = -lm -framework Cocoa -framework AppKit
|
LIBS = -lm -framework Cocoa -framework AppKit
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LINKER = $(CPP) $(CFLAGS) -dynamiclib -single_module -std=gnu99 \
|
LINKER = $(CPP) $(CFLAGS) -dynamiclib -single_module -std=gnu99 \
|
||||||
|
|
|
@ -96,7 +96,7 @@ typedef fixnum bignum_length_type;
|
||||||
#define BIGNUM_ASSERT(expression) \
|
#define BIGNUM_ASSERT(expression) \
|
||||||
{ \
|
{ \
|
||||||
if (! (expression)) \
|
if (! (expression)) \
|
||||||
BIGNUM_EXCEPTION (); \
|
BIGNUM_EXCEPTION (); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* not BIGNUM_DISABLE_ASSERTION_CHECKS */
|
#endif /* not BIGNUM_DISABLE_ASSERTION_CHECKS */
|
||||||
|
|
|
@ -58,20 +58,20 @@ inline static bool tail_call_site_p(cell return_address)
|
||||||
|
|
||||||
inline static unsigned int fpu_status(unsigned int status)
|
inline static unsigned int fpu_status(unsigned int status)
|
||||||
{
|
{
|
||||||
unsigned int r = 0;
|
unsigned int r = 0;
|
||||||
|
|
||||||
if (status & 0x20000000)
|
if (status & 0x20000000)
|
||||||
r |= FP_TRAP_INVALID_OPERATION;
|
r |= FP_TRAP_INVALID_OPERATION;
|
||||||
if (status & 0x10000000)
|
if (status & 0x10000000)
|
||||||
r |= FP_TRAP_OVERFLOW;
|
r |= FP_TRAP_OVERFLOW;
|
||||||
if (status & 0x08000000)
|
if (status & 0x08000000)
|
||||||
r |= FP_TRAP_UNDERFLOW;
|
r |= FP_TRAP_UNDERFLOW;
|
||||||
if (status & 0x04000000)
|
if (status & 0x04000000)
|
||||||
r |= FP_TRAP_ZERO_DIVIDE;
|
r |= FP_TRAP_ZERO_DIVIDE;
|
||||||
if (status & 0x02000000)
|
if (status & 0x02000000)
|
||||||
r |= FP_TRAP_INEXACT;
|
r |= FP_TRAP_INEXACT;
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Defined in assembly */
|
/* Defined in assembly */
|
||||||
|
|
|
@ -55,20 +55,20 @@ inline static bool tail_call_site_p(cell return_address)
|
||||||
|
|
||||||
inline static unsigned int fpu_status(unsigned int status)
|
inline static unsigned int fpu_status(unsigned int status)
|
||||||
{
|
{
|
||||||
unsigned int r = 0;
|
unsigned int r = 0;
|
||||||
|
|
||||||
if (status & 0x01)
|
if (status & 0x01)
|
||||||
r |= FP_TRAP_INVALID_OPERATION;
|
r |= FP_TRAP_INVALID_OPERATION;
|
||||||
if (status & 0x04)
|
if (status & 0x04)
|
||||||
r |= FP_TRAP_ZERO_DIVIDE;
|
r |= FP_TRAP_ZERO_DIVIDE;
|
||||||
if (status & 0x08)
|
if (status & 0x08)
|
||||||
r |= FP_TRAP_OVERFLOW;
|
r |= FP_TRAP_OVERFLOW;
|
||||||
if (status & 0x10)
|
if (status & 0x10)
|
||||||
r |= FP_TRAP_UNDERFLOW;
|
r |= FP_TRAP_UNDERFLOW;
|
||||||
if (status & 0x20)
|
if (status & 0x20)
|
||||||
r |= FP_TRAP_INEXACT;
|
r |= FP_TRAP_INEXACT;
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -201,7 +201,7 @@ cell object::binary_payload_start() const
|
||||||
return sizeof(wrapper);
|
return sizeof(wrapper);
|
||||||
default:
|
default:
|
||||||
critical_error("Invalid header",(cell)this);
|
critical_error("Invalid header",(cell)this);
|
||||||
return 0; /* can't happen */
|
return 0; /* can't happen */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ void factor_vm::collect_mark_impl(bool trace_contexts_p)
|
||||||
data->tenured->clear_mark_bits();
|
data->tenured->clear_mark_bits();
|
||||||
|
|
||||||
collector.trace_roots();
|
collector.trace_roots();
|
||||||
if(trace_contexts_p)
|
if(trace_contexts_p)
|
||||||
{
|
{
|
||||||
collector.trace_contexts();
|
collector.trace_contexts();
|
||||||
collector.trace_context_code_blocks();
|
collector.trace_context_code_blocks();
|
||||||
|
|
|
@ -45,7 +45,7 @@ struct gc_event {
|
||||||
struct gc_state {
|
struct gc_state {
|
||||||
gc_op op;
|
gc_op op;
|
||||||
u64 start_time;
|
u64 start_time;
|
||||||
jmp_buf gc_unwind;
|
jmp_buf gc_unwind;
|
||||||
gc_event *event;
|
gc_event *event;
|
||||||
|
|
||||||
explicit gc_state(gc_op op_, factor_vm *parent);
|
explicit gc_state(gc_op op_, factor_vm *parent);
|
||||||
|
|
|
@ -61,7 +61,7 @@ struct jit {
|
||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_position(fixnum position_)
|
void set_position(fixnum position_)
|
||||||
{
|
{
|
||||||
if(computing_offset_p)
|
if(computing_offset_p)
|
||||||
position = position_;
|
position = position_;
|
||||||
|
|
|
@ -168,7 +168,7 @@ void factor_vm::primitive_bignum_xor()
|
||||||
void factor_vm::primitive_bignum_shift()
|
void factor_vm::primitive_bignum_shift()
|
||||||
{
|
{
|
||||||
fixnum y = untag_fixnum(ctx->pop());
|
fixnum y = untag_fixnum(ctx->pop());
|
||||||
bignum* x = untag<bignum>(ctx->pop());
|
bignum* x = untag<bignum>(ctx->pop());
|
||||||
ctx->push(tag<bignum>(bignum_arithmetic_shift(x,y)));
|
ctx->push(tag<bignum>(bignum_arithmetic_shift(x,y)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,35 +6,35 @@ namespace factor
|
||||||
|
|
||||||
inline static unsigned int uap_fpu_status(void *uap)
|
inline static unsigned int uap_fpu_status(void *uap)
|
||||||
{
|
{
|
||||||
ucontext_t *ucontext = (ucontext_t *)uap;
|
ucontext_t *ucontext = (ucontext_t *)uap;
|
||||||
if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_387)
|
if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_387)
|
||||||
{
|
{
|
||||||
struct save87 *x87 = (struct save87 *)(&ucontext->uc_mcontext.mc_fpstate);
|
struct save87 *x87 = (struct save87 *)(&ucontext->uc_mcontext.mc_fpstate);
|
||||||
return x87->sv_env.en_sw;
|
return x87->sv_env.en_sw;
|
||||||
}
|
}
|
||||||
else if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
|
else if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
|
||||||
{
|
{
|
||||||
struct savexmm *xmm = (struct savexmm *)(&ucontext->uc_mcontext.mc_fpstate);
|
struct savexmm *xmm = (struct savexmm *)(&ucontext->uc_mcontext.mc_fpstate);
|
||||||
return xmm->sv_env.en_sw | xmm->sv_env.en_mxcsr;
|
return xmm->sv_env.en_sw | xmm->sv_env.en_mxcsr;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline static void uap_clear_fpu_status(void *uap)
|
inline static void uap_clear_fpu_status(void *uap)
|
||||||
{
|
{
|
||||||
ucontext_t *ucontext = (ucontext_t *)uap;
|
ucontext_t *ucontext = (ucontext_t *)uap;
|
||||||
if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_387)
|
if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_387)
|
||||||
{
|
{
|
||||||
struct save87 *x87 = (struct save87 *)(&ucontext->uc_mcontext.mc_fpstate);
|
struct save87 *x87 = (struct save87 *)(&ucontext->uc_mcontext.mc_fpstate);
|
||||||
x87->sv_env.en_sw = 0;
|
x87->sv_env.en_sw = 0;
|
||||||
}
|
}
|
||||||
else if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
|
else if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
|
||||||
{
|
{
|
||||||
struct savexmm *xmm = (struct savexmm *)(&ucontext->uc_mcontext.mc_fpstate);
|
struct savexmm *xmm = (struct savexmm *)(&ucontext->uc_mcontext.mc_fpstate);
|
||||||
xmm->sv_env.en_sw = 0;
|
xmm->sv_env.en_sw = 0;
|
||||||
xmm->sv_env.en_mxcsr &= 0xffffffc0;
|
xmm->sv_env.en_mxcsr &= 0xffffffc0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,25 +6,25 @@ namespace factor
|
||||||
|
|
||||||
inline static unsigned int uap_fpu_status(void *uap)
|
inline static unsigned int uap_fpu_status(void *uap)
|
||||||
{
|
{
|
||||||
ucontext_t *ucontext = (ucontext_t *)uap;
|
ucontext_t *ucontext = (ucontext_t *)uap;
|
||||||
if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
|
if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
|
||||||
{
|
{
|
||||||
struct savefpu *xmm = (struct savefpu *)(&ucontext->uc_mcontext.mc_fpstate);
|
struct savefpu *xmm = (struct savefpu *)(&ucontext->uc_mcontext.mc_fpstate);
|
||||||
return xmm->sv_env.en_sw | xmm->sv_env.en_mxcsr;
|
return xmm->sv_env.en_sw | xmm->sv_env.en_mxcsr;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline static void uap_clear_fpu_status(void *uap)
|
inline static void uap_clear_fpu_status(void *uap)
|
||||||
{
|
{
|
||||||
ucontext_t *ucontext = (ucontext_t *)uap;
|
ucontext_t *ucontext = (ucontext_t *)uap;
|
||||||
if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
|
if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
|
||||||
{
|
{
|
||||||
struct savefpu *xmm = (struct savefpu *)(&ucontext->uc_mcontext.mc_fpstate);
|
struct savefpu *xmm = (struct savefpu *)(&ucontext->uc_mcontext.mc_fpstate);
|
||||||
xmm->sv_env.en_sw = 0;
|
xmm->sv_env.en_sw = 0;
|
||||||
xmm->sv_env.en_mxcsr &= 0xffffffc0;
|
xmm->sv_env.en_mxcsr &= 0xffffffc0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,16 +5,16 @@ namespace factor
|
||||||
|
|
||||||
inline static unsigned int uap_fpu_status(void *uap)
|
inline static unsigned int uap_fpu_status(void *uap)
|
||||||
{
|
{
|
||||||
ucontext_t *ucontext = (ucontext_t *)uap;
|
ucontext_t *ucontext = (ucontext_t *)uap;
|
||||||
return ucontext->uc_mcontext.fpregs->swd
|
return ucontext->uc_mcontext.fpregs->swd
|
||||||
| ucontext->uc_mcontext.fpregs->mxcsr;
|
| ucontext->uc_mcontext.fpregs->mxcsr;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline static void uap_clear_fpu_status(void *uap)
|
inline static void uap_clear_fpu_status(void *uap)
|
||||||
{
|
{
|
||||||
ucontext_t *ucontext = (ucontext_t *)uap;
|
ucontext_t *ucontext = (ucontext_t *)uap;
|
||||||
ucontext->uc_mcontext.fpregs->swd = 0;
|
ucontext->uc_mcontext.fpregs->swd = 0;
|
||||||
ucontext->uc_mcontext.fpregs->mxcsr &= 0xffffffc0;
|
ucontext->uc_mcontext.fpregs->mxcsr &= 0xffffffc0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define UAP_STACK_POINTER(ucontext) (((ucontext_t *)ucontext)->uc_mcontext.gregs[15])
|
#define UAP_STACK_POINTER(ucontext) (((ucontext_t *)ucontext)->uc_mcontext.gregs[15])
|
||||||
|
|
|
@ -79,12 +79,12 @@ LONG factor_vm::exception_handler(PEXCEPTION_POINTERS pe)
|
||||||
else
|
else
|
||||||
signal_callstack_top = NULL;
|
signal_callstack_top = NULL;
|
||||||
|
|
||||||
switch (e->ExceptionCode)
|
switch (e->ExceptionCode)
|
||||||
{
|
{
|
||||||
case EXCEPTION_ACCESS_VIOLATION:
|
case EXCEPTION_ACCESS_VIOLATION:
|
||||||
signal_fault_addr = e->ExceptionInformation[1];
|
signal_fault_addr = e->ExceptionInformation[1];
|
||||||
c->EIP = (cell)factor::memory_signal_handler_impl;
|
c->EIP = (cell)factor::memory_signal_handler_impl;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATUS_FLOAT_DENORMAL_OPERAND:
|
case STATUS_FLOAT_DENORMAL_OPERAND:
|
||||||
case STATUS_FLOAT_DIVIDE_BY_ZERO:
|
case STATUS_FLOAT_DIVIDE_BY_ZERO:
|
||||||
|
|
14
vm/vm.hpp
14
vm/vm.hpp
|
@ -184,20 +184,20 @@ struct factor_vm
|
||||||
void bignum_destructive_add(bignum * bignum, bignum_digit_type n);
|
void bignum_destructive_add(bignum * bignum, bignum_digit_type n);
|
||||||
void bignum_destructive_scale_up(bignum * bignum, bignum_digit_type factor);
|
void bignum_destructive_scale_up(bignum * bignum, bignum_digit_type factor);
|
||||||
void bignum_divide_unsigned_large_denominator(bignum * numerator, bignum * denominator,
|
void bignum_divide_unsigned_large_denominator(bignum * numerator, bignum * denominator,
|
||||||
bignum * * quotient, bignum * * remainder, int q_negative_p, int r_negative_p);
|
bignum * * quotient, bignum * * remainder, int q_negative_p, int r_negative_p);
|
||||||
void bignum_divide_unsigned_normalized(bignum * u, bignum * v, bignum * q);
|
void bignum_divide_unsigned_normalized(bignum * u, bignum * v, bignum * q);
|
||||||
bignum_digit_type bignum_divide_subtract(bignum_digit_type * v_start, bignum_digit_type * v_end,
|
bignum_digit_type bignum_divide_subtract(bignum_digit_type * v_start, bignum_digit_type * v_end,
|
||||||
bignum_digit_type guess, bignum_digit_type * u_start);
|
bignum_digit_type guess, bignum_digit_type * u_start);
|
||||||
void bignum_divide_unsigned_medium_denominator(bignum * numerator,bignum_digit_type denominator,
|
void bignum_divide_unsigned_medium_denominator(bignum * numerator,bignum_digit_type denominator,
|
||||||
bignum * * quotient, bignum * * remainder,int q_negative_p, int r_negative_p);
|
bignum * * quotient, bignum * * remainder,int q_negative_p, int r_negative_p);
|
||||||
void bignum_destructive_normalization(bignum * source, bignum * target, int shift_left);
|
void bignum_destructive_normalization(bignum * source, bignum * target, int shift_left);
|
||||||
void bignum_destructive_unnormalization(bignum * bignum, int shift_right);
|
void bignum_destructive_unnormalization(bignum * bignum, int shift_right);
|
||||||
bignum_digit_type bignum_digit_divide(bignum_digit_type uh, bignum_digit_type ul,
|
bignum_digit_type bignum_digit_divide(bignum_digit_type uh, bignum_digit_type ul,
|
||||||
bignum_digit_type v, bignum_digit_type * q) /* return value */;
|
bignum_digit_type v, bignum_digit_type * q) /* return value */;
|
||||||
bignum_digit_type bignum_digit_divide_subtract(bignum_digit_type v1, bignum_digit_type v2,
|
bignum_digit_type bignum_digit_divide_subtract(bignum_digit_type v1, bignum_digit_type v2,
|
||||||
bignum_digit_type guess, bignum_digit_type * u);
|
bignum_digit_type guess, bignum_digit_type * u);
|
||||||
void bignum_divide_unsigned_small_denominator(bignum * numerator, bignum_digit_type denominator,
|
void bignum_divide_unsigned_small_denominator(bignum * numerator, bignum_digit_type denominator,
|
||||||
bignum * * quotient, bignum * * remainder,int q_negative_p, int r_negative_p);
|
bignum * * quotient, bignum * * remainder,int q_negative_p, int r_negative_p);
|
||||||
bignum_digit_type bignum_destructive_scale_down(bignum * bignum, bignum_digit_type denominator);
|
bignum_digit_type bignum_destructive_scale_down(bignum * bignum, bignum_digit_type denominator);
|
||||||
bignum * bignum_remainder_unsigned_small_denominator(bignum * n, bignum_digit_type d, int negative_p);
|
bignum * bignum_remainder_unsigned_small_denominator(bignum * n, bignum_digit_type d, int negative_p);
|
||||||
bignum *bignum_digit_to_bignum(bignum_digit_type digit, int negative_p);
|
bignum *bignum_digit_to_bignum(bignum_digit_type digit, int negative_p);
|
||||||
|
@ -314,7 +314,7 @@ struct factor_vm
|
||||||
if(!(current_gc && current_gc->op == collect_growing_heap_op))
|
if(!(current_gc && current_gc->op == collect_growing_heap_op))
|
||||||
{
|
{
|
||||||
assert((cell)pointer >= data->seg->start
|
assert((cell)pointer >= data->seg->start
|
||||||
&& (cell)pointer < data->seg->end);
|
&& (cell)pointer < data->seg->end);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue