win64: initial CGC build

This commit is contained in:
Matthew Flatt 2010-12-03 16:34:58 -07:00 committed by Matthew Flatt
parent 8affb5b13f
commit 7319b539f0
32 changed files with 952 additions and 207 deletions

View File

@ -418,9 +418,9 @@ static Scheme_Object *foreign_ffi_obj_name(int argc, Scheme_Object *argv[])
/* longs and ints are really the same */
#define scheme_get_realint_val(x,y) \
scheme_get_int_val(x,(long*)(y))
scheme_get_int_val(x,(intptr_t*)(y))
#define scheme_get_unsigned_realint_val(x,y) \
scheme_get_unsigned_int_val(x,(unsigned long*)(y))
scheme_get_unsigned_int_val(x,(uintptr_t*)(y))
#define scheme_make_realinteger_value \
scheme_make_integer_value
#define scheme_make_realinteger_value_from_unsigned \
@ -1049,13 +1049,13 @@ ffi_abi sym_to_abi(char *who, Scheme_Object *sym)
if (SCHEME_FALSEP(sym) || SAME_OBJ(sym, default_sym))
return FFI_DEFAULT_ABI;
else if (SAME_OBJ(sym, sysv_sym)) {
#ifdef WINDOWS_DYNAMIC_LOAD
#if defined(WINDOWS_DYNAMIC_LOAD) && !defined(_WIN64)
return FFI_SYSV;
#else
scheme_signal_error("%s: ABI not implemented: %V", who, sym);
#endif
} else if (SAME_OBJ(sym, stdcall_sym)) {
#ifdef WINDOWS_DYNAMIC_LOAD
#if defined(WINDOWS_DYNAMIC_LOAD) && !defined(_WIN64)
return FFI_STDCALL;
#else
scheme_signal_error("%s: ABI not implemented: %V", who, sym);

View File

@ -332,9 +332,9 @@ THREAD_LOCAL_DECL(static Scheme_Hash_Table *opened_libs);
/* longs and ints are really the same */
#define scheme_get_realint_val(x,y) \
scheme_get_int_val(x,(long*)(y))
scheme_get_int_val(x,(intptr_t*)(y))
#define scheme_get_unsigned_realint_val(x,y) \
scheme_get_unsigned_int_val(x,(unsigned long*)(y))
scheme_get_unsigned_int_val(x,(uintptr_t*)(y))
#define scheme_make_realinteger_value \
scheme_make_integer_value
#define scheme_make_realinteger_value_from_unsigned \

View File

@ -28,8 +28,14 @@ extern "C" {
#if defined(MZ_USE_PLACES) || defined(MZ_USE_FUTURES)
# define USE_THREAD_LOCAL
# if _MSC_VER
# define THREAD_LOCAL /* empty */
# define IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS
# ifdef _WIN64
# define THREAD_LOCAL __declspec(thread)
# define MZ_THREAD_EXTERN extern
# define IMPLEMENT_THREAD_LOCAL_EXTERNALLY_VIA_PROC
# else
# define THREAD_LOCAL /* empty */
# define IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS
# endif
# elif (defined(__APPLE__) && defined(__MACH__)) || defined(GC2_PLACES_TESTING)
# define IMPLEMENT_THREAD_LOCAL_VIA_PTHREADS
# if defined(__x86_64__) || defined(__i386__)
@ -61,6 +67,10 @@ extern "C" {
#define MZ_EXTERN extern MZ_DLLSPEC
#ifndef MZ_THREAD_EXTERN
# define MZ_THREAD_EXTERN MZ_EXTERN
#endif
MZ_EXTERN void scheme_init_os_thread();
/* **************************************************************** */
@ -385,10 +395,23 @@ XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION;
# endif
#else
/* Using `THREAD_LOCAL' variable: */
MZ_EXTERN THREAD_LOCAL Thread_Local_Variables scheme_thread_locals;
# define scheme_get_thread_local_variables() (&scheme_thread_locals)
# ifdef MZ_XFORM
# if defined(IMPLEMENT_THREAD_LOCAL_EXTERNALLY_VIA_PROC) && !defined(__mzscheme_private__)
# ifdef MZ_XFORM
START_XFORM_SKIP;
# endif
static __inline Thread_Local_Variables *scheme_get_thread_local_variables() {
return scheme_external_get_thread_local_variables();
}
# ifdef MZ_XFORM
END_XFORM_SKIP;
XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION;
# endif
# else
MZ_THREAD_EXTERN THREAD_LOCAL Thread_Local_Variables scheme_thread_locals;
# define scheme_get_thread_local_variables() (&scheme_thread_locals)
# ifdef MZ_XFORM
XFORM_GC_VARIABLE_STACK_THROUGH_THREAD_LOCAL;
# endif
# endif
#endif

View File

@ -492,7 +492,11 @@
|| (defined(_MSC_VER) \
&& (defined(__WIN32__) || defined(WIN32) || defined(_WIN32))))
# define SCHEME_PLATFORM_LIBRARY_SUBPATH "win32\\i386"
# ifdef _WIN64
# define SCHEME_PLATFORM_LIBRARY_SUBPATH "win32\\x86_64"
# else
# define SCHEME_PLATFORM_LIBRARY_SUBPATH "win32\\i386"
# endif
# define SYSTEM_TYPE_NAME "windows"
# define DOS_FILE_SYSTEM
@ -521,7 +525,9 @@
# define DO_STACK_CHECK
# define WINDOWS_FIND_STACK_BOUNDS
# define USE_MZ_SETJMP
# ifndef _WIN64
# define USE_MZ_SETJMP
# endif
# define WINDOWS_DYNAMIC_LOAD
@ -584,7 +590,11 @@
# define USE_ICONV_DLL
# define NO_MBTOWC_FUNCTIONS
# define MZ_USE_JIT_I386
# ifdef _WIN64
# define MZ_USE_JIT_X86_64
# else
# define MZ_USE_JIT_I386
# endif
# define MZ_JIT_USE_WINDOWS_VIRTUAL_ALLOC
# define FLAGS_ALREADY_SET

View File

@ -13,9 +13,9 @@ int IS_FLOAT_INF(FP_TYPE d)
}
/* Must not trigger GC! (Required by xform in number.c) */
FP_TYPE SCHEME_BIGNUM_TO_FLOAT_INFO(const Scheme_Object *n, int skip, int *_skipped)
FP_TYPE SCHEME_BIGNUM_TO_FLOAT_INFO(const Scheme_Object *n, intptr_t skip, intptr_t *_skipped)
{
int nl, skipped;
intptr_t nl, skipped;
bigdig *na;
FP_TYPE d;

View File

@ -512,7 +512,7 @@ static Scheme_Object *make_single_bigdig_result(int pos, bigdig d)
static Scheme_Object *bignum_copy(const Scheme_Object *a, intptr_t msd)
{
Scheme_Object* o;
int c;
intptr_t c;
bigdig* o_digs;
c = SCHEME_BIGLEN(a);
@ -607,7 +607,7 @@ int scheme_bignum_ge(const Scheme_Object *a, const Scheme_Object *b)
Scheme_Object *scheme_bignum_negate(const Scheme_Object *n)
{
Scheme_Object *o;
int len;
intptr_t len;
len = SCHEME_BIGLEN(n);
@ -631,9 +631,9 @@ Scheme_Object *scheme_bignum_negate(const Scheme_Object *n)
return o;
}
static bigdig* allocate_bigdig_array(int length)
static bigdig* allocate_bigdig_array(intptr_t length)
{
int i;
intptr_t i;
bigdig* res;
if (length > 4096) {
res = (bigdig *)scheme_malloc_fail_ok(scheme_malloc_atomic, length * sizeof(bigdig));
@ -647,7 +647,7 @@ static bigdig* allocate_bigdig_array(int length)
}
/* We don't want to count leading digits of 0 in the bignum's length */
XFORM_NONGCING static int bigdig_length(bigdig* array, int alloced)
XFORM_NONGCING static intptr_t bigdig_length(bigdig* array, intptr_t alloced)
{
alloced--;
while (alloced >= 0 && array[alloced] == 0) {
@ -690,7 +690,7 @@ static Scheme_Object *bignum_add_sub(const Scheme_Object *a, const Scheme_Object
if (a_pos == b_pos) /* addition */
{
int carry;
intptr_t carry;
o_digs = allocate_bigdig_array(max_size);
@ -884,7 +884,7 @@ Scheme_Object *scheme_generic_integer_power(const Scheme_Object *a, const Scheme
|| (SCHEME_INT_VAL(b) > 10000))
scheme_signal_error(too_big);
else if (SCHEME_BIGNUMP(a)) {
int len = SCHEME_BIGLEN(a);
intptr_t len = SCHEME_BIGLEN(a);
if ((len > 10000)
|| (len * SCHEME_INT_VAL(b)) > 10000)
scheme_signal_error(too_big);
@ -1184,7 +1184,7 @@ char *scheme_bignum_to_allocated_string(const Scheme_Object *b, int radix, int a
{
Scheme_Object *c;
unsigned char* str, *str2;
int i, slen, start, clen;
intptr_t i, slen, start, clen;
bigdig *c_digs;
SAFE_SPACE(csd)
@ -1277,7 +1277,7 @@ char *scheme_bignum_to_string(const Scheme_Object *b, int radix)
Scheme_Object *scheme_read_bignum(const mzchar *str, int offset, int radix)
{
int len, negate, stri, alloc, i, test;
intptr_t len, negate, stri, alloc, i, test;
Scheme_Object* o;
bigdig* digs;
unsigned char* istring;
@ -1363,7 +1363,7 @@ Scheme_Object *scheme_read_bignum_bytes(const char *str, int offset, int radix)
static void bignum_double_inplace(Scheme_Object **_stk_o)
{
int carry, len;
intptr_t carry, len;
len = SCHEME_BIGLEN(*_stk_o);
@ -1379,7 +1379,7 @@ static void bignum_double_inplace(Scheme_Object **_stk_o)
static void bignum_add1_inplace(Scheme_Object **_stk_o)
{
int carry, len;
intptr_t carry, len;
len = SCHEME_BIGLEN(*_stk_o);
@ -1518,7 +1518,7 @@ static uintptr_t fixnum_sqrt(uintptr_t n, uintptr_t *rem)
for (i = SQRT_BIT_MAX; i >= 0; i--)
{
try_root = root | (0x1 << i);
try_root = root | ((intptr_t)0x1 << i);
try_square = try_root * try_root;
if (try_square <= n)
{
@ -1539,7 +1539,7 @@ Scheme_Object *scheme_integer_sqrt(const Scheme_Object *n)
Scheme_Object *scheme_integer_sqrt_rem(const Scheme_Object *n, Scheme_Object **remainder)
{
Scheme_Object *o;
int rem_size;
intptr_t rem_size;
SAFE_SPACE(qsd)

View File

@ -448,7 +448,7 @@ int is_equal (Scheme_Object *obj1, Scheme_Object *obj2, Equal_Info *eql)
return 0;
} else if (SCHEME_BYTE_STRINGP(obj1)
|| SCHEME_GENERAL_PATHP(obj1)) {
int l1, l2;
intptr_t l1, l2;
if ((eql->for_chaperone == 1) && (!SCHEME_IMMUTABLEP(obj1)
|| !SCHEME_IMMUTABLEP(obj2)))
return 0;
@ -457,7 +457,7 @@ int is_equal (Scheme_Object *obj1, Scheme_Object *obj2, Equal_Info *eql)
return ((l1 == l2)
&& !memcmp(SCHEME_BYTE_STR_VAL(obj1), SCHEME_BYTE_STR_VAL(obj2), l1));
} else if (SCHEME_CHAR_STRINGP(obj1)) {
int l1, l2;
intptr_t l1, l2;
if ((eql->for_chaperone == 1) && (!SCHEME_IMMUTABLEP(obj1)
|| !SCHEME_IMMUTABLEP(obj2)))
return 0;
@ -615,7 +615,7 @@ int is_equal (Scheme_Object *obj1, Scheme_Object *obj2, Equal_Info *eql)
static int vector_equal(Scheme_Object *vec1, Scheme_Object *vec2, Equal_Info *eql)
{
int i, len;
intptr_t i, len;
len = SCHEME_VEC_SIZE(vec1);
if (len != SCHEME_VEC_SIZE(vec2))

View File

@ -245,14 +245,14 @@ integer_to_char (int argc, Scheme_Object *argv[])
if ((v >= 0)
&& (v <= 0x10FFFF)
&& ((v < 0xD800) || (v > 0xDFFF)))
return _scheme_make_char(v);
return _scheme_make_char((int)v);
} else if (SCHEME_BIGNUMP(argv[0])
&& SCHEME_BIGPOS(argv[0])) {
/* On 32-bit machines, there's still a chance... */
intptr_t y;
if (scheme_get_int_val(argv[0], &y)) {
if (y <= 0x10FFFF)
return _scheme_make_char(y);
return _scheme_make_char((int)y);
}
}

View File

@ -179,7 +179,7 @@ typedef struct {
static char *copy_vers(char *vers)
{
if (vers) {
int len = strlen(vers);
intptr_t len = strlen(vers);
char *vcopy;
vcopy = (char *)scheme_malloc_atomic(len + 1);
memcpy(vcopy, vers, len + 1);

View File

@ -1177,7 +1177,7 @@ Scheme_Bucket_Table *scheme_clone_toplevel(Scheme_Bucket_Table *ht, Scheme_Env *
{
Scheme_Bucket_Table *r;
Scheme_Bucket **bs;
int i;
intptr_t i;
r = scheme_make_bucket_table(ht->size, SCHEME_hash_ptr);
if (home)
@ -2050,7 +2050,7 @@ static Scheme_Local *get_frame_loc(Scheme_Comp_Env *frame,
Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modidx,
Scheme_Object *stxsym, Scheme_Object *insp,
int pos, int mod_phase)
int pos, intptr_t mod_phase)
{
Scheme_Object *val;
Scheme_Hash_Table *ht;
@ -2084,7 +2084,7 @@ Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modid
mv->sym = stxsym;
mv->insp = insp;
mv->pos = pos;
mv->mod_phase = mod_phase;
mv->mod_phase = (int)mod_phase;
val = (Scheme_Object *)mv;
@ -2296,7 +2296,7 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Objec
too bad). */
if (!best_match) {
char onstack[50], *buf;
int len;
intptr_t len;
while (1) {
env->id_counter++;
@ -2358,7 +2358,7 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Objec
int scheme_tl_id_is_sym_used(Scheme_Hash_Table *marked_names, Scheme_Object *sym)
{
int i;
intptr_t i;
Scheme_Object *l, *a;
Scheme_Hash_Table *rev_ht;
@ -2814,9 +2814,9 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
if (!scheme_hash_get(frame->skip_table, SCHEME_STX_VAL(find_id))) {
/* Skip ahead. 0 maps to frame, 1 maps to j delta, and 2 maps to p delta */
val = scheme_hash_get(frame->skip_table, scheme_make_integer(1));
j += SCHEME_INT_VAL(val);
j += (int)SCHEME_INT_VAL(val);
val = scheme_hash_get(frame->skip_table, scheme_make_integer(2));
p += SCHEME_INT_VAL(val);
p += (int)SCHEME_INT_VAL(val);
frame = (Scheme_Comp_Env *)scheme_hash_get(frame->skip_table, scheme_make_integer(0));
} else
break;
@ -3059,7 +3059,7 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
pos = scheme_check_accessible_in_module(genv, env->insp, in_modidx,
find_id, src_find_id, certs, NULL, rename_insp, -1, 1,
_protected, NULL, env->genv, NULL);
modpos = SCHEME_INT_VAL(pos);
modpos = (int)SCHEME_INT_VAL(pos);
} else
modpos = -1;
@ -3365,7 +3365,7 @@ static Scheme_Object *transitive_k(void)
p->ku.k.p1 = NULL;
register_transitive_use(info, p->ku.k.i1, p->ku.k.i2);
register_transitive_use(info, (int)p->ku.k.i1, (int)p->ku.k.i2);
return scheme_false;
}
@ -3688,7 +3688,7 @@ static Scheme_Object *do_optimize_info_lookup(Optimize_Info *info, int pos, int
if (SCHEME_BOXP(n)) {
/* A potential-size record: */
if (potential_size)
*potential_size = SCHEME_INT_VAL(SCHEME_BOX_VAL(n));
*potential_size = (int)SCHEME_INT_VAL(SCHEME_BOX_VAL(n));
break;
}
if (single_use)
@ -3910,7 +3910,7 @@ Resolve_Prefix *scheme_remap_prefix(Resolve_Prefix *rp, Resolve_Info *ri)
if (rp->num_lifts)
cnt = rp->num_stxes;
else
cnt = ri->stx_map->count;
cnt = (int)ri->stx_map->count;
new_stxes = MALLOC_N(Scheme_Object *, cnt);
@ -4071,7 +4071,7 @@ static int resolve_info_lookup(Resolve_Info *info, int pos, int *flags, Scheme_O
tl = SCHEME_CAR(lifted);
ca = (Scheme_Object **)SCHEME_CDR(lifted);
if (convert_shift)
shifted = SCHEME_INT_VAL(ca[0]) + convert_shift - 1;
shifted = (int)SCHEME_INT_VAL(ca[0]) + convert_shift - 1;
else
shifted = 0;
} else {
@ -4092,7 +4092,7 @@ static int resolve_info_lookup(Resolve_Info *info, int pos, int *flags, Scheme_O
int sz, i;
mzshort *posmap, *boxmap;
Scheme_Object *vec, *loc;
sz = SCHEME_INT_VAL(ca[0]);
sz = (int)SCHEME_INT_VAL(ca[0]);
posmap = (mzshort *)ca[1];
boxmap = (mzshort *)ca[3];
vec = scheme_make_vector(sz + 1, NULL);
@ -4217,7 +4217,7 @@ int scheme_resolve_quote_syntax_offset(int i, Resolve_Info *info)
scheme_hash_set(ht, scheme_make_integer(i), v);
}
return SCHEME_INT_VAL(v);
return (int)SCHEME_INT_VAL(v);
}
int scheme_resolve_quote_syntax_pos(Resolve_Info *info)
@ -4256,7 +4256,7 @@ Scheme_Object *scheme_resolve_invent_toplevel(Resolve_Info *info)
skip = scheme_resolve_toplevel_pos(info);
count = SCHEME_VEC_ELS(info->lifts)[1];
pos = (SCHEME_INT_VAL(count)
pos = (int)(SCHEME_INT_VAL(count)
+ info->prefix->num_toplevels
+ info->prefix->num_stxes
+ (info->prefix->num_stxes ? 1 : 0));
@ -4508,7 +4508,7 @@ namespace_mapped_symbols(int argc, Scheme_Object *argv[])
Scheme_Hash_Table *mapped;
Scheme_Bucket_Table *ht;
Scheme_Bucket **bs;
int i, j;
intptr_t i, j;
if ((argc > 0) && !SCHEME_NAMESPACEP(argv[0]))
scheme_wrong_type("namespace-mapped-symbols", "namespace", 0, argc, argv);
@ -4559,7 +4559,7 @@ static Scheme_Object *do_variable_namespace(const char *who, int tl, int argc, S
{
Scheme_Object *v;
Scheme_Env *env;
int ph;
intptr_t ph;
if (!SAME_TYPE(SCHEME_TYPE(argv[0]), scheme_global_ref_type))
env = NULL;
@ -4841,7 +4841,7 @@ static Scheme_Object *
local_phase_level(int argc, Scheme_Object *argv[])
{
Scheme_Thread *p = scheme_current_thread;
int phase;
intptr_t phase;
phase = (p->current_local_env
? p->current_local_env->genv->phase
@ -5382,7 +5382,7 @@ do_local_lift_expr(const char *who, int stx_pos, int argc, Scheme_Object *argv[]
if (stx_pos) {
if (SCHEME_INTP(argv[0])) {
count = SCHEME_INT_VAL(argv[0]);
count = (int)SCHEME_INT_VAL(argv[0]);
} else if (SCHEME_BIGNUMP(argv[0])) {
if (SCHEME_BIGPOS(argv[0]))
scheme_raise_out_of_memory(NULL, NULL);
@ -5744,14 +5744,14 @@ static Scheme_Object *read_toplevel(Scheme_Object *obj)
if (!SCHEME_PAIRP(obj)) return NULL;
depth = SCHEME_INT_VAL(SCHEME_CAR(obj));
depth = (int)SCHEME_INT_VAL(SCHEME_CAR(obj));
obj = SCHEME_CDR(obj);
if (SCHEME_PAIRP(obj)) {
pos = SCHEME_INT_VAL(SCHEME_CAR(obj));
pos = (int)SCHEME_INT_VAL(SCHEME_CAR(obj));
flags = SCHEME_INT_VAL(SCHEME_CDR(obj)) & SCHEME_TOPLEVEL_FLAGS_MASK;
} else {
pos = SCHEME_INT_VAL(obj);
pos = (int)SCHEME_INT_VAL(obj);
flags = 0;
}
@ -5817,12 +5817,12 @@ static Scheme_Object *do_read_local(Scheme_Type t, Scheme_Object *obj)
int n, flags;
if (SCHEME_PAIRP(obj)) {
flags = SCHEME_INT_VAL(SCHEME_CAR(obj));
flags = (int)SCHEME_INT_VAL(SCHEME_CAR(obj));
obj = SCHEME_CDR(obj);
} else
flags = 0;
n = SCHEME_INT_VAL(obj);
n = (int)SCHEME_INT_VAL(obj);
return scheme_make_local(t, n, flags);
}
@ -5881,7 +5881,8 @@ static Scheme_Object *read_resolve_prefix(Scheme_Object *obj, Scheme_Object *ins
{
Resolve_Prefix *rp;
Scheme_Object *tv, *sv, **a, *stx;
int i, uses_unsafe = 0;
intptr_t i;
int uses_unsafe = 0;
if (!SCHEME_PAIRP(obj)) return NULL;
@ -5906,9 +5907,9 @@ static Scheme_Object *read_resolve_prefix(Scheme_Object *obj, Scheme_Object *ins
rp = MALLOC_ONE_TAGGED(Resolve_Prefix);
rp->so.type = scheme_resolve_prefix_type;
rp->num_toplevels = SCHEME_VEC_SIZE(tv);
rp->num_stxes = SCHEME_VEC_SIZE(sv);
rp->num_lifts = i;
rp->num_toplevels = (int)SCHEME_VEC_SIZE(tv);
rp->num_stxes = (int)SCHEME_VEC_SIZE(sv);
rp->num_lifts = (int)i;
if (uses_unsafe)
rp->uses_unsafe = insp;

View File

@ -85,8 +85,8 @@ typedef int mp_limb_signed_t;
typedef unsigned long long int mp_limb_t;
typedef long long int mp_limb_signed_t;
#else
typedef unsigned long int mp_limb_t;
typedef long int mp_limb_signed_t;
typedef uintptr_t mp_limb_t;
typedef intptr_t mp_limb_signed_t;
#endif
#endif
@ -97,8 +97,8 @@ typedef __gmp_const mp_limb_t * mp_srcptr;
typedef int mp_size_t;
typedef int mp_exp_t;
#else
typedef long int mp_size_t;
typedef long int mp_exp_t;
typedef intptr_t mp_size_t;
typedef intptr_t mp_exp_t;
#endif
typedef struct

View File

@ -518,7 +518,7 @@ void scheme_reset_hash_table(Scheme_Hash_Table *table, int *history)
/*========================================================================*/
Scheme_Bucket_Table *
scheme_make_bucket_table (int size, int type)
scheme_make_bucket_table (intptr_t size, int type)
{
Scheme_Bucket_Table *table;
size_t asize;

View File

@ -1500,7 +1500,7 @@ static void _jit_prolog_again(mz_jit_state *jitter, int n, int ret_addr_reg)
# define mz_pop_locals() ADDQir((LOCAL_FRAME_SIZE << JIT_LOG_WORD_SIZE), JIT_SP)
# define JIT_FRAME_FLONUM_OFFSET (-(JIT_WORD_SIZE * (LOCAL_FRAME_SIZE + 3)))
# define _jit_prolog_again(jitter, n, ret_addr_reg) (PUSHQr(ret_addr_reg), jit_base_prolog())
# ifdef MZ_USE_JIT_X86_64
# if defined(MZ_USE_JIT_X86_64) && !defined(_WIN64)
# define jit_shuffle_saved_regs() (MOVQrr(_ESI, _R12), MOVQrr(_EDI, _R13))
# define jit_unshuffle_saved_regs() (MOVQrr(_R12, _ESI), MOVQrr(_R13, _EDI))
# else
@ -3572,8 +3572,9 @@ static int generate_non_tail_call(mz_jit_state *jitter, int num_rands, int direc
if (need_set_rs) {
JIT_UPDATE_THREAD_RSPTR();
}
mz_prepare_direct_prim(3);
mz_prepare_direct_prim(3);
jit_pusharg_p(JIT_V1);
CHECK_LIMIT();
if (num_rands < 0) { jit_movr_p(JIT_V1, JIT_R0); } /* save argc to manually pop runstack */
{
__END_SHORT_JUMPS__(1);

View File

@ -364,7 +364,24 @@ struct jit_local_state {
#endif
#ifdef JIT_X86_64
# define jit_base_prolog() (PUSHQr(_EBP), MOVQrr(_ESP, _EBP), PUSHQr(_EBX), PUSHQr(_R12), PUSHQr(_R13))
# ifdef _WIN64
# define jit_preserve_locals() (ADDQir(-32, JIT_SP))
# define jit_restore_locals() (ADDQir(32, JIT_SP))
# define _RCS1 _ESI
# define _RCS2 _EDI
# define jit_reg_is_arg(reg) (((reg) ==_ECX) || ((reg) == _EDX))
# else
/* For AMD64 ABI, R12 and R13 are callee-save, instead of EDI and ESI */
# define jit_preserve_locals() (MOVQrr(_ESI, _R12), MOVQrr(_EDI, _R13))
# define jit_restore_locals() (MOVQrr(_R12, _ESI), MOVQrr(_R13, _EDI))
# define _RCS1 _R12
# define _RCS2 _R13
# define jit_reg_is_arg(reg) (((reg) == _EDI) || ((reg) ==_ESI) || ((reg) == _EDX))
# endif
#endif
#ifdef JIT_X86_64
# define jit_base_prolog() (PUSHQr(_EBP), MOVQrr(_ESP, _EBP), PUSHQr(_EBX), PUSHQr(_RCS1), PUSHQr(_RCS2))
# define jit_prolog(n) (_jitl.nextarg_geti = 0, jit_base_prolog())
#else
# define jit_base_prolog() (PUSHLr(_EBP), MOVLrr(_ESP, _EBP), PUSHLr(_EBX), PUSHLr(_ESI), PUSHLr(_EDI))
@ -392,20 +409,18 @@ struct jit_local_state {
#define jit_prepare_d(nd) (_jitl.argssize += 2 * (nd))
#ifdef JIT_X86_64
# define jit_pusharg_i(rs) (_jitl.argpushes--, MOVQrr(rs, JIT_CALLTMPSTART + _jitl.argpushes))
# define jit_normal_pushonlyarg_i(rs) (_jitl.argpushes--, MOVQrr(rs, _EDI))
# define jit_normal_pushonlyarg_i(rs) (_jitl.argpushes--, MOVQrr(rs, jit_arg_reg_order[0]))
# define jit_save_argstate(curstate) curstate = _jitl.argpushes;
# define jit_restore_argstate(curstate) _jitl.argpushes = curstate;
# define jit_finish(sub) (jit_shift_args(), (void)jit_calli((sub)), jit_restore_locals())
# define jit_normal_finish(sub) jit_calli((sub))
# define jit_return_pop_insn_len() 0
# define jit_reg_is_arg(reg) ((reg == _EDI) || (reg ==_ESI) || (reg == _EDX))
# define jit_finishr(reg) ((jit_reg_is_arg((reg)) ? MOVQrr(reg, JIT_REXTMP) : (void)0), \
jit_shift_args(), \
jit_reg_is_arg((reg)) ? CALQsr((JIT_REXTMP)) : jit_callr((reg)), \
jit_restore_locals())
/* R12 and R13 are callee-save, instead of EDI and ESI */
# define jit_shift_args() \
(MOVQrr(_ESI, _R12), MOVQrr(_EDI, _R13), \
(jit_preserve_locals(), \
(_jitl.argssize \
? (MOVQrr(JIT_CALLTMPSTART, jit_arg_reg_order[0]), \
((_jitl.argssize > 1) \
@ -415,8 +430,6 @@ struct jit_local_state {
: (void)0)) \
: (void)0)) \
: (void)0))
# define jit_restore_locals() \
(MOVQrr(_R12, _ESI), MOVQrr(_R13, _EDI))
#else
# define jit_pusharg_i(rs) PUSHLr(rs)
# define jit_normal_pushonlyarg_i(rs) jit_pusharg_i(rs)
@ -436,7 +449,11 @@ struct jit_local_state {
#define jit_arg_l() (_jitl.nextarg_geti++)
#define jit_arg_p() (_jitl.nextarg_geti++)
#define jit_arg_reg(p) (jit_arg_reg_order[p])
# ifdef _WIN64
static const int const jit_arg_reg_order[] = { _ECX, _EDX, JIT_R(8), JIT_R(9) };
# else
static const int const jit_arg_reg_order[] = { _EDI, _ESI, _EDX, _ECX };
# endif
#else
#define jit_arg_c() ((_jitl.framesize += sizeof(int)) - sizeof(int))
#define jit_arg_uc() ((_jitl.framesize += sizeof(int)) - sizeof(int))
@ -589,7 +606,7 @@ static intptr_t _CHECK_TINY(intptr_t diff) { if ((diff < -128) || (diff > 127))
# define jit_patch_short_at(jump_pc,v) jit_patch_normal_at(jump_pc, v)
# define jit_patch_branch_at(jump_pc,v) (_jitl.long_jumps ? jit_patch_long_at((jump_pc)-3, v) : jit_patch_short_at(jump_pc, v))
# define jit_patch_ucbranch_at(jump_pc,v) (_jitl.long_jumps ? jit_patch_long_at((jump_pc)-3, v) : jit_patch_short_at(jump_pc, v))
# define jit_ret() (POPQr(_R13), POPQr(_R12), POPQr(_EBX), POPQr(_EBP), RET_())
# define jit_ret() (POPQr(_RCS2), POPQr(_RCS1), POPQr(_EBX), POPQr(_EBP), RET_())
#else
# define jit_patch_branch_at(jump_pc,v) jit_patch_normal_at(jump_pc, v)
# define jit_patch_ucbranch_at(jump_pc,v) jit_patch_normal_at(jump_pc, v)

View File

@ -3430,7 +3430,7 @@ static void setup_accessible_table(Scheme_Module *m)
}
}
Scheme_Env *scheme_module_access(Scheme_Object *name, Scheme_Env *env, int rev_mod_phase)
Scheme_Env *scheme_module_access(Scheme_Object *name, Scheme_Env *env, intptr_t rev_mod_phase)
{
Scheme_Env *menv;

View File

@ -589,7 +589,7 @@ int mzrt_sema_destroy(mzrt_sema *s)
typedef struct mzrt_rwlock {
HANDLE readEvent;
HANDLE writeMutex;
uintptr_t readers;
LONG readers;
} mzrt_rwlock;
int mzrt_rwlock_create(mzrt_rwlock **lock) {

View File

@ -171,7 +171,7 @@ static MZ_INLINE int mzrt_cas(volatile size_t *addr, size_t old, size_t new_val)
# endif
#elif defined(_MSC_VER)
# if defined(_AMD64_)
return _InterlockedCompareExchange64((LONGLONG volatile *)addr, (LONGLONG)new_val, (LONGLONG)old) == (LONGLONG)old
return _InterlockedCompareExchange64((LONGLONG volatile *)addr, (LONGLONG)new_val, (LONGLONG)old) == (LONGLONG)old;
# elif _M_IX86 >= 400
return _InterlockedCompareExchange((LONG volatile *)addr, (LONG)new_val, (LONG)old) == (LONG)old;
# endif

View File

@ -24,6 +24,8 @@
#include "schpriv.h"
#ifndef _WIN64
int __declspec(naked) scheme_mz_setjmp(mz_jmp_buf b)
{
__asm {
@ -55,3 +57,5 @@ void __declspec(naked) scheme_mz_longjmp(mz_jmp_buf b, int v)
ret
}
}
#endif

View File

@ -447,7 +447,7 @@ MZ_EXTERN void scheme_remove_gc_callback(Scheme_Object *key);
/* hash tables */
/*========================================================================*/
MZ_EXTERN Scheme_Bucket_Table *scheme_make_bucket_table(int size_hint, int type);
MZ_EXTERN Scheme_Bucket_Table *scheme_make_bucket_table(intptr_t size_hint, int type);
MZ_EXTERN void scheme_add_to_table(Scheme_Bucket_Table *table, const char *key, void *val, int);
MZ_EXTERN void scheme_change_in_table(Scheme_Bucket_Table *table, const char *key, void *new_val);
MZ_EXTERN void *scheme_lookup_in_table(Scheme_Bucket_Table *table, const char *key);
@ -609,39 +609,39 @@ MZ_EXTERN const char *scheme_get_proc_name(Scheme_Object *p, int *len, int for_e
/* strings */
/*========================================================================*/
MZ_EXTERN int scheme_utf8_decode(const unsigned char *s, int start, int end,
unsigned int *us, int dstart, int dend,
intptr_t *ipos, char utf16, int permissive);
MZ_EXTERN int scheme_utf8_decode_as_prefix(const unsigned char *s, int start, int end,
unsigned int *us, int dstart, int dend,
intptr_t *ipos, char utf16, int permissive);
MZ_EXTERN int scheme_utf8_decode_all(const unsigned char *s, int len, unsigned int *us,
int permissive);
MZ_EXTERN int scheme_utf8_decode_prefix(const unsigned char *s, int len, unsigned int *us,
int permissive);
MZ_EXTERN mzchar *scheme_utf8_decode_to_buffer(const unsigned char *s, int len,
mzchar *buf, int blen);
MZ_EXTERN mzchar *scheme_utf8_decode_to_buffer_len(const unsigned char *s, int len,
mzchar *buf, int blen, intptr_t *rlen);
XFORM_NONGCING MZ_EXTERN int scheme_utf8_decode_count(const unsigned char *s, int start, int end,
int *_state, int might_continue, int permissive);
MZ_EXTERN intptr_t scheme_utf8_decode(const unsigned char *s, intptr_t start, intptr_t end,
unsigned int *us, intptr_t dstart, intptr_t dend,
intptr_t *ipos, char utf16, int permissive);
MZ_EXTERN intptr_t scheme_utf8_decode_as_prefix(const unsigned char *s, intptr_t start, intptr_t end,
unsigned int *us, intptr_t dstart, intptr_t dend,
intptr_t *ipos, char utf16, int permissive);
MZ_EXTERN intptr_t scheme_utf8_decode_all(const unsigned char *s, intptr_t len, unsigned int *us,
int permissive);
MZ_EXTERN intptr_t scheme_utf8_decode_prefix(const unsigned char *s, intptr_t len, unsigned int *us,
int permissive);
MZ_EXTERN mzchar *scheme_utf8_decode_to_buffer(const unsigned char *s, intptr_t len,
mzchar *buf, intptr_t blen);
MZ_EXTERN mzchar *scheme_utf8_decode_to_buffer_len(const unsigned char *s, intptr_t len,
mzchar *buf, intptr_t blen, intptr_t *rlen);
XFORM_NONGCING MZ_EXTERN intptr_t scheme_utf8_decode_count(const unsigned char *s, intptr_t start, intptr_t end,
int *_state, int might_continue, int permissive);
MZ_EXTERN int scheme_utf8_encode(const unsigned int *us, int start, int end,
unsigned char *s, int dstart,
char utf16);
MZ_EXTERN int scheme_utf8_encode_all(const unsigned int *us, int len, unsigned char *s);
MZ_EXTERN intptr_t scheme_utf8_encode(const unsigned int *us, intptr_t start, intptr_t end,
unsigned char *s, intptr_t dstart,
char utf16);
MZ_EXTERN intptr_t scheme_utf8_encode_all(const unsigned int *us, intptr_t len, unsigned char *s);
MZ_EXTERN char *scheme_utf8_encode_to_buffer(const mzchar *s, int len,
char *buf, int blen);
MZ_EXTERN char *scheme_utf8_encode_to_buffer_len(const mzchar *s, int len,
char *buf, int blen, intptr_t *rlen);
MZ_EXTERN char *scheme_utf8_encode_to_buffer(const mzchar *s, intptr_t len,
char *buf, intptr_t blen);
MZ_EXTERN char *scheme_utf8_encode_to_buffer_len(const mzchar *s, intptr_t len,
char *buf, intptr_t blen, intptr_t *rlen);
MZ_EXTERN unsigned short *scheme_ucs4_to_utf16(const mzchar *text, int start, int end,
unsigned short *buf, int bufsize,
intptr_t *ulen, int term_size);
MZ_EXTERN mzchar *scheme_utf16_to_ucs4(const unsigned short *text, int start, int end,
mzchar *buf, int bufsize,
intptr_t *ulen, int term_size);
MZ_EXTERN unsigned short *scheme_ucs4_to_utf16(const mzchar *text, intptr_t start, intptr_t end,
unsigned short *buf, intptr_t bufsize,
intptr_t *ulen, intptr_t term_size);
MZ_EXTERN mzchar *scheme_utf16_to_ucs4(const unsigned short *text, intptr_t start, intptr_t end,
mzchar *buf, intptr_t bufsize,
intptr_t *ulen, intptr_t term_size);
MZ_EXTERN Scheme_Object *scheme_open_converter(const char *from_e, const char *to_e);
MZ_EXTERN void scheme_close_converter(Scheme_Object *conv);
@ -982,17 +982,17 @@ MZ_EXTERN Scheme_Object *scheme_datum_to_kernel_stx(Scheme_Object *e);
/*========================================================================*/
MZ_EXTERN Scheme_Object *scheme_intern_symbol(const char *name);
MZ_EXTERN Scheme_Object *scheme_intern_exact_symbol(const char *name, unsigned int len);
MZ_EXTERN Scheme_Object *scheme_intern_exact_char_symbol(const mzchar *name, unsigned int len);
MZ_EXTERN Scheme_Object *scheme_intern_exact_symbol(const char *name, uintptr_t len);
MZ_EXTERN Scheme_Object *scheme_intern_exact_char_symbol(const mzchar *name, uintptr_t len);
MZ_EXTERN Scheme_Object *scheme_make_symbol(const char *name); /* Make uninterned */
MZ_EXTERN Scheme_Object *scheme_make_exact_symbol(const char *name, unsigned int len); /* Exact case */
MZ_EXTERN Scheme_Object *scheme_make_exact_char_symbol(const mzchar *name, unsigned int len); /* Exact case */
MZ_EXTERN Scheme_Object *scheme_make_exact_symbol(const char *name, uintptr_t len); /* Exact case */
MZ_EXTERN Scheme_Object *scheme_make_exact_char_symbol(const mzchar *name, uintptr_t len); /* Exact case */
MZ_EXTERN const char *scheme_symbol_name(Scheme_Object *sym);
MZ_EXTERN const char *scheme_symbol_name_and_size(Scheme_Object *sym, unsigned int *l, int flags);
MZ_EXTERN const char *scheme_symbol_name_and_size(Scheme_Object *sym, uintptr_t *l, int flags);
MZ_EXTERN char *scheme_symbol_val(Scheme_Object *sym);
MZ_EXTERN Scheme_Object *scheme_intern_exact_keyword(const char *name, unsigned int len);
MZ_EXTERN Scheme_Object *scheme_intern_exact_char_keyword(const mzchar *name, unsigned int len);
MZ_EXTERN Scheme_Object *scheme_intern_exact_keyword(const char *name, uintptr_t len);
MZ_EXTERN Scheme_Object *scheme_intern_exact_char_keyword(const mzchar *name, uintptr_t len);
/*========================================================================*/
/* structs */
@ -1132,7 +1132,7 @@ MZ_EXTERN void scheme_signal_received(void);
MZ_EXTERN void scheme_signal_received_at(void *);
MZ_EXTERN void *scheme_get_signal_handle();
MZ_EXTERN int scheme_char_strlen(const mzchar *s);
MZ_EXTERN intptr_t scheme_char_strlen(const mzchar *s);
MZ_EXTERN Scheme_Object *scheme_stx_extract_marks(Scheme_Object *stx);

View File

@ -924,7 +924,7 @@ Scheme_Object *scheme_make_module_rename(Scheme_Object *phase, int kind, Scheme_
Scheme_Object* scheme_extend_module_rename(Scheme_Object *rn, Scheme_Object *modname,
Scheme_Object *locname, Scheme_Object *exname,
Scheme_Object *nominal_src, Scheme_Object *nominal_ex,
int mod_phase, Scheme_Object *src_phase_index,
intptr_t mod_phase, Scheme_Object *src_phase_index,
Scheme_Object *nom_export_phase, Scheme_Object *insp,
int mode);
void scheme_extend_module_rename_with_shared(Scheme_Object *rn, Scheme_Object *modidx,
@ -1627,7 +1627,7 @@ typedef uintptr_t bigdig;
typedef struct {
Scheme_Inclhash_Object iso;
int len;
intptr_t len;
bigdig *digits;
} Scheme_Bignum;
@ -1682,9 +1682,9 @@ Scheme_Object *scheme_bignum_xor(const Scheme_Object *a, const Scheme_Object *b)
Scheme_Object *scheme_bignum_not(const Scheme_Object *a);
Scheme_Object *scheme_bignum_shift(const Scheme_Object *a, intptr_t shift);
XFORM_NONGCING double scheme_bignum_to_double_inf_info(const Scheme_Object *n, int just_use, int *only_need);
XFORM_NONGCING double scheme_bignum_to_double_inf_info(const Scheme_Object *n, intptr_t just_use, intptr_t *only_need);
#ifdef MZ_USE_SINGLE_FLOATS
XFORM_NONGCING float scheme_bignum_to_float_inf_info(const Scheme_Object *n, int just_use, int *only_need);
XFORM_NONGCING float scheme_bignum_to_float_inf_info(const Scheme_Object *n, intptr_t just_use, intptr_t *only_need);
#else
# define scheme_bignum_to_float_inf_info scheme_bignum_to_double_inf_info
#endif
@ -3093,7 +3093,7 @@ Scheme_Env *scheme_new_module_env(Scheme_Env *env, Scheme_Module *m, int new_exp
int scheme_is_module_env(Scheme_Comp_Env *env);
Scheme_Object *scheme_module_resolve(Scheme_Object *modidx, int load_it);
Scheme_Env *scheme_module_access(Scheme_Object *modname, Scheme_Env *env, int rev_mod_phase);
Scheme_Env *scheme_module_access(Scheme_Object *modname, Scheme_Env *env, intptr_t rev_mod_phase);
void scheme_module_force_lazy(Scheme_Env *env, int previous);
int scheme_module_export_position(Scheme_Object *modname, Scheme_Env *env, Scheme_Object *varname);
@ -3118,7 +3118,7 @@ int scheme_resolved_module_path_value_matches(Scheme_Object *rmp, Scheme_Object
Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modidx,
Scheme_Object *stxsym, Scheme_Object *insp,
int pos, int mod_phase);
int pos, intptr_t mod_phase);
Scheme_Env *scheme_get_kernel_env();
@ -3534,7 +3534,7 @@ int scheme_hash_tree_equal_rec(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2, void
void scheme_set_root_param(int p, Scheme_Object *v);
Scheme_Object *scheme_intern_exact_parallel_symbol(const char *name, unsigned int len);
Scheme_Object *scheme_intern_exact_parallel_symbol(const char *name, uintptr_t len);
Scheme_Object *scheme_symbol_append(Scheme_Object *s1, Scheme_Object *s2);
Scheme_Object *scheme_copy_list(Scheme_Object *l);
@ -3545,9 +3545,6 @@ int scheme_regexp_is_byte(Scheme_Object *re);
Scheme_Object *scheme_make_regexp(Scheme_Object *str, int byte, int pcre, int * volatile result_is_err_string);
int scheme_is_pregexp(Scheme_Object *o);
void scheme_clear_rx_buffers(void);
unsigned short * scheme_ucs4_to_utf16(const mzchar *text, int start, int end,
unsigned short *buf, int bufsize,
intptr_t *ulen, int term_size);
#ifdef SCHEME_BIG_ENDIAN
# define MZ_UCS4_NAME "UCS-4BE"

View File

@ -321,21 +321,21 @@ static Scheme_Object *byte_converter_p(int argc, Scheme_Object *argv[]);
static void register_traversers(void);
#endif
static int mz_char_strcmp(const char *who, const mzchar *str1, int l1, const mzchar *str2, int l2, int locale, int size_shortcut);
static int mz_char_strcmp_ci(const char *who, const mzchar *str1, int l1, const mzchar *str2, int l2, int locale, int size_shortcut);
static int mz_strcmp(const char *who, unsigned char *str1, int l1, unsigned char *str2, int l2);
static int mz_char_strcmp(const char *who, const mzchar *str1, intptr_t l1, const mzchar *str2, intptr_t l2, int locale, int size_shortcut);
static int mz_char_strcmp_ci(const char *who, const mzchar *str1, intptr_t l1, const mzchar *str2, intptr_t l2, int locale, int size_shortcut);
static int mz_strcmp(const char *who, unsigned char *str1, intptr_t l1, unsigned char *str2, intptr_t l2);
XFORM_NONGCING static int utf8_decode_x(const unsigned char *s, int start, int end,
unsigned int *us, int dstart, int dend,
XFORM_NONGCING static intptr_t utf8_decode_x(const unsigned char *s, intptr_t start, intptr_t end,
unsigned int *us, intptr_t dstart, intptr_t dend,
intptr_t *ipos, intptr_t *jpos,
char compact, char utf16,
int *state, int might_continue, int permissive);
XFORM_NONGCING static int utf8_encode_x(const unsigned int *us, int start, int end,
unsigned char *s, int dstart, int dend,
XFORM_NONGCING static intptr_t utf8_encode_x(const unsigned int *us, intptr_t start, intptr_t end,
unsigned char *s, intptr_t dstart, intptr_t dend,
intptr_t *_ipos, intptr_t *_opos, char utf16);
static char *string_to_from_locale(int to_bytes,
char *in, int delta, int len,
char *in, intptr_t delta, intptr_t len,
intptr_t *olen, int perm,
int *no_cvt);
@ -2803,7 +2803,7 @@ static char *do_convert(iconv_t cd,
#define MZ_SC_BUF_SIZE 32
static char *string_to_from_locale(int to_bytes,
char *in, int delta, int len,
char *in, intptr_t delta, intptr_t len,
intptr_t *olen, int perm,
int *no_cvt)
/* Call this function only when iconv is available, and only when
@ -4160,18 +4160,18 @@ static Scheme_Object *string_normalize_kd (int argc, Scheme_Object *argv[])
/* strcmps */
/**********************************************************************/
int scheme_char_strlen(const mzchar *s)
intptr_t scheme_char_strlen(const mzchar *s)
{
int i;
intptr_t i;
for (i = 0; s[i]; i++) {
}
return i;
}
static int mz_char_strcmp(const char *who, const mzchar *str1, int l1, const mzchar *str2, int l2,
static int mz_char_strcmp(const char *who, const mzchar *str1, intptr_t l1, const mzchar *str2, intptr_t l2,
int use_locale, int size_shortcut)
{
int endres;
intptr_t endres;
if (size_shortcut && (l1 != l2))
return 1;
@ -4209,10 +4209,10 @@ static int mz_char_strcmp(const char *who, const mzchar *str1, int l1, const mzc
return endres;
}
static int mz_char_strcmp_ci(const char *who, const mzchar *str1, int l1, const mzchar *str2, int l2,
static int mz_char_strcmp_ci(const char *who, const mzchar *str1, intptr_t l1, const mzchar *str2, intptr_t l2,
int use_locale, int size_shortcut)
{
int p1, p2, sp1, sp2, a, b;
intptr_t p1, p2, sp1, sp2, a, b;
mzchar spec1[SPECIAL_CASE_FOLD_MAX], spec2[SPECIAL_CASE_FOLD_MAX];
if (size_shortcut && (l1 != l2))
@ -4277,9 +4277,9 @@ static int mz_char_strcmp_ci(const char *who, const mzchar *str1, int l1, const
return ((p1 < l1) || sp1) - ((p2 < l2) || sp2);
}
static int mz_strcmp(const char *who, unsigned char *str1, int l1, unsigned char *str2, int l2)
static int mz_strcmp(const char *who, unsigned char *str1, intptr_t l1, unsigned char *str2, intptr_t l2)
{
int endres;
intptr_t endres;
if (l1 > l2) {
l1 = l2;
@ -4705,8 +4705,8 @@ byte_converter_p(int argc, Scheme_Object *argv[])
/* utf8 converter */
/**********************************************************************/
static int utf8_decode_x(const unsigned char *s, int start, int end,
unsigned int *us, int dstart, int dend,
static intptr_t utf8_decode_x(const unsigned char *s, intptr_t start, intptr_t end,
unsigned int *us, intptr_t dstart, intptr_t dend,
intptr_t *ipos, intptr_t *jpos,
char compact, char utf16, int *_state,
int might_continue, int permissive)
@ -4732,7 +4732,8 @@ static int utf8_decode_x(const unsigned char *s, int start, int end,
or U+FFFD. */
{
int i, j, oki, failmode = -3, state;
intptr_t i, j, oki;
int failmode = -3, state;
int init_doki;
int nextbits, v;
unsigned int sc;
@ -4970,7 +4971,7 @@ static int utf8_decode_x(const unsigned char *s, int start, int end,
# endif
}
} else {
int delta;
intptr_t delta;
delta = (i - oki);
if (delta) {
if (j + delta + 1 < dend) {
@ -5060,16 +5061,16 @@ static int utf8_decode_x(const unsigned char *s, int start, int end,
return j - dstart;
}
int scheme_utf8_decode(const unsigned char *s, int start, int end,
unsigned int *us, int dstart, int dend,
intptr_t scheme_utf8_decode(const unsigned char *s, intptr_t start, intptr_t end,
unsigned int *us, intptr_t dstart, intptr_t dend,
intptr_t *ipos, char utf16, int permissive)
{
return utf8_decode_x(s, start, end, us, dstart, dend,
ipos, NULL, utf16, utf16, NULL, 0, permissive);
}
int scheme_utf8_decode_as_prefix(const unsigned char *s, int start, int end,
unsigned int *us, int dstart, int dend,
intptr_t scheme_utf8_decode_as_prefix(const unsigned char *s, intptr_t start, intptr_t end,
unsigned int *us, intptr_t dstart, intptr_t dend,
intptr_t *ipos, char utf16, int permissive)
/* Always returns number of read characters, not error codes. */
{
@ -5079,17 +5080,17 @@ int scheme_utf8_decode_as_prefix(const unsigned char *s, int start, int end,
return opos - dstart;
}
int scheme_utf8_decode_all(const unsigned char *s, int len, unsigned int *us, int permissive)
intptr_t scheme_utf8_decode_all(const unsigned char *s, intptr_t len, unsigned int *us, int permissive)
{
return utf8_decode_x(s, 0, len, us, 0, -1, NULL, NULL, 0, 0, NULL, 0, permissive);
}
int scheme_utf8_decode_prefix(const unsigned char *s, int len, unsigned int *us, int permissive)
intptr_t scheme_utf8_decode_prefix(const unsigned char *s, intptr_t len, unsigned int *us, int permissive)
/* us != NULL */
{
{
/* Try fast path (all ASCII) */
int i;
intptr_t i;
for (i = 0; i < len; i++) {
if (s[i] < 128)
us[i] = s[i];
@ -5103,10 +5104,10 @@ int scheme_utf8_decode_prefix(const unsigned char *s, int len, unsigned int *us,
return utf8_decode_x(s, 0, len, us, 0, -1, NULL, NULL, 0, 0, NULL, 1, permissive);
}
mzchar *scheme_utf8_decode_to_buffer_len(const unsigned char *s, int len,
mzchar *buf, int blen, intptr_t *_ulen)
mzchar *scheme_utf8_decode_to_buffer_len(const unsigned char *s, intptr_t len,
mzchar *buf, intptr_t blen, intptr_t *_ulen)
{
int ulen;
intptr_t ulen;
ulen = utf8_decode_x(s, 0, len, NULL, 0, -1,
NULL, NULL, 0, 0,
@ -5124,21 +5125,21 @@ mzchar *scheme_utf8_decode_to_buffer_len(const unsigned char *s, int len,
return buf;
}
mzchar *scheme_utf8_decode_to_buffer(const unsigned char *s, int len,
mzchar *buf, int blen)
mzchar *scheme_utf8_decode_to_buffer(const unsigned char *s, intptr_t len,
mzchar *buf, intptr_t blen)
{
intptr_t ulen;
return scheme_utf8_decode_to_buffer_len(s, len, buf, blen, &ulen);
}
int scheme_utf8_decode_count(const unsigned char *s, int start, int end,
intptr_t scheme_utf8_decode_count(const unsigned char *s, intptr_t start, intptr_t end,
int *_state, int might_continue, int permissive)
{
intptr_t pos = 0;
if (!_state || !*_state) {
/* Try fast path (all ASCII): */
int i;
intptr_t i;
for (i = start; i < end; i++) {
if (s[i] > 127)
break;
@ -5156,14 +5157,14 @@ int scheme_utf8_decode_count(const unsigned char *s, int start, int end,
return pos;
}
static int utf8_encode_x(const unsigned int *us, int start, int end,
unsigned char *s, int dstart, int dend,
static intptr_t utf8_encode_x(const unsigned int *us, intptr_t start, intptr_t end,
unsigned char *s, intptr_t dstart, intptr_t dend,
intptr_t *_ipos, intptr_t *_opos, char utf16)
/* Results:
-1 => input ended in the middle of an encoding - only when utf16 and _opos
non-negative => reports number of bytes/code-units produced */
{
int i, j, done = start;
intptr_t i, j, done = start;
if (dend < 0)
dend = 0x7FFFFFFF;
@ -5310,8 +5311,8 @@ static int utf8_encode_x(const unsigned int *us, int start, int end,
}
}
int scheme_utf8_encode(const unsigned int *us, int start, int end,
unsigned char *s, int dstart,
intptr_t scheme_utf8_encode(const unsigned int *us, intptr_t start, intptr_t end,
unsigned char *s, intptr_t dstart,
char utf16)
{
return utf8_encode_x(us, start, end,
@ -5319,16 +5320,16 @@ int scheme_utf8_encode(const unsigned int *us, int start, int end,
NULL, NULL, utf16);
}
int scheme_utf8_encode_all(const unsigned int *us, int len, unsigned char *s)
intptr_t scheme_utf8_encode_all(const unsigned int *us, intptr_t len, unsigned char *s)
{
return utf8_encode_x(us, 0, len, s, 0, -1, NULL, NULL, 0 /* utf16 */);
}
char *scheme_utf8_encode_to_buffer_len(const mzchar *s, int len,
char *buf, int blen,
char *scheme_utf8_encode_to_buffer_len(const mzchar *s, intptr_t len,
char *buf, intptr_t blen,
intptr_t *_slen)
{
int slen;
intptr_t slen;
/* ASCII with len < blen is a common case: */
if (len < blen) {
@ -5355,19 +5356,19 @@ char *scheme_utf8_encode_to_buffer_len(const mzchar *s, int len,
return buf;
}
char *scheme_utf8_encode_to_buffer(const mzchar *s, int len,
char *buf, int blen)
char *scheme_utf8_encode_to_buffer(const mzchar *s, intptr_t len,
char *buf, intptr_t blen)
{
intptr_t slen;
return scheme_utf8_encode_to_buffer_len(s, len, buf, blen, &slen);
}
unsigned short *scheme_ucs4_to_utf16(const mzchar *text, int start, int end,
unsigned short *buf, int bufsize,
intptr_t *ulen, int term_size)
unsigned short *scheme_ucs4_to_utf16(const mzchar *text, intptr_t start, intptr_t end,
unsigned short *buf, intptr_t bufsize,
intptr_t *ulen, intptr_t term_size)
{
mzchar v;
int extra, i, j;
intptr_t extra, i, j;
unsigned short *utf16;
/* Count characters that fall outside UCS-2: */
@ -5395,12 +5396,12 @@ unsigned short *scheme_ucs4_to_utf16(const mzchar *text, int start, int end,
return utf16;
}
mzchar *scheme_utf16_to_ucs4(const unsigned short *text, int start, int end,
mzchar *buf, int bufsize,
intptr_t *ulen, int term_size)
mzchar *scheme_utf16_to_ucs4(const unsigned short *text, intptr_t start, intptr_t end,
mzchar *buf, intptr_t bufsize,
intptr_t *ulen, intptr_t term_size)
{
int wc;
int i, j;
intptr_t i, j;
for (i = start, j = 0; i < end; i++) {
wc = text[i];

View File

@ -336,7 +336,7 @@ X__(string_append) (int argc, Scheme_Object *argv[])
Scheme_Object *
X(scheme_append, _string)(Scheme_Object *str1, Scheme_Object *str2)
{
int len1, len2;
intptr_t len1, len2;
Xchar *r;
Scheme_Object *naya;

View File

@ -1476,7 +1476,7 @@ Scheme_Object *scheme_extend_module_rename(Scheme_Object *mrn,
Scheme_Object *exname, /* name in definition context */
Scheme_Object *nominal_mod, /* nominal source module */
Scheme_Object *nominal_ex, /* nominal import before local renaming */
int mod_phase, /* phase of source defn */
intptr_t mod_phase, /* phase of source defn */
Scheme_Object *src_phase_index, /* nominal import phase */
Scheme_Object *nom_phase, /* nominal export phase */
Scheme_Object *insp, /* inspector for re-export */
@ -1675,7 +1675,7 @@ static void do_append_module_rename(Scheme_Object *src, Scheme_Object *dest,
if (SCHEME_PAIRP(SCHEME_CDR(v))) {
/* (list* modidx [mod-phase] exportname nominal_modidx+index nominal_exportname) */
Scheme_Object *midx1, *midx2;
int mod_phase;
intptr_t mod_phase;
midx1 = SCHEME_CAR(v);
v = SCHEME_CDR(v);
if (SCHEME_INTP(SCHEME_CAR(v))) {

View File

@ -95,12 +95,12 @@ typedef uintptr_t hash_v_t;
#endif
static Scheme_Object *rehash_symbol_bucket(Scheme_Hash_Table *table,
GC_CAN_IGNORE const char *key, unsigned int length,
GC_CAN_IGNORE const char *key, uintptr_t length,
Scheme_Object *naya);
/* Special hashing for symbols: */
static Scheme_Object *symbol_bucket(Scheme_Hash_Table *table,
GC_CAN_IGNORE const char *key, unsigned int length,
GC_CAN_IGNORE const char *key, uintptr_t length,
Scheme_Object *naya)
{
hash_v_t h, h2;
@ -114,7 +114,7 @@ static Scheme_Object *symbol_bucket(Scheme_Hash_Table *table,
mask = table->size - 1;
{
unsigned int i;
uintptr_t i;
i = 0;
h = HASH_SEED;
h2 = 0;
@ -166,7 +166,7 @@ static Scheme_Object *symbol_bucket(Scheme_Hash_Table *table,
}
static Scheme_Object *rehash_symbol_bucket(Scheme_Hash_Table *table,
GC_CAN_IGNORE const char *key, unsigned int length,
GC_CAN_IGNORE const char *key, uintptr_t length,
Scheme_Object *naya)
{
int i, oldsize = table->size, newsize, lostc;
@ -353,7 +353,7 @@ uintptr_t scheme_get_max_symbol_length() {
static Scheme_Object *
make_a_symbol(const char *name, unsigned int len, int kind)
make_a_symbol(const char *name, uintptr_t len, int kind)
{
Scheme_Symbol *sym;
@ -383,13 +383,13 @@ scheme_make_symbol(const char *name)
}
Scheme_Object *
scheme_make_exact_symbol(const char *name, unsigned int len)
scheme_make_exact_symbol(const char *name, uintptr_t len)
{
return make_a_symbol(name, len, 0x1);
}
Scheme_Object *
scheme_make_exact_char_symbol(const mzchar *name, unsigned int len)
scheme_make_exact_char_symbol(const mzchar *name, uintptr_t len)
{
char buf[64], *bs;
intptr_t blen;
@ -404,7 +404,7 @@ typedef enum {
} enum_symbol_table_type;
static Scheme_Object *
intern_exact_symbol_in_table_worker(enum_symbol_table_type type, int kind, const char *name, unsigned int len)
intern_exact_symbol_in_table_worker(enum_symbol_table_type type, int kind, const char *name, uintptr_t len)
{
Scheme_Object *sym;
Scheme_Hash_Table *table;
@ -470,25 +470,25 @@ intern_exact_symbol_in_table_worker(enum_symbol_table_type type, int kind, const
}
static Scheme_Object *
intern_exact_symbol_in_table(enum_symbol_table_type type, int kind, const char *name, unsigned int len)
intern_exact_symbol_in_table(enum_symbol_table_type type, int kind, const char *name, uintptr_t len)
{
return intern_exact_symbol_in_table_worker(type, kind, name, len);
}
Scheme_Object *
scheme_intern_exact_symbol(const char *name, unsigned int len)
scheme_intern_exact_symbol(const char *name, uintptr_t len)
{
return intern_exact_symbol_in_table(enum_symbol, 0, name, len);
}
Scheme_Object *
scheme_intern_exact_parallel_symbol(const char *name, unsigned int len)
scheme_intern_exact_parallel_symbol(const char *name, uintptr_t len)
{
return intern_exact_symbol_in_table(enum_parallel_symbol, 0x2, name, len);
}
Scheme_Object *
scheme_intern_exact_char_symbol(const mzchar *name, unsigned int len)
scheme_intern_exact_char_symbol(const mzchar *name, uintptr_t len)
{
char buf[64], *bs;
intptr_t blen;
@ -497,7 +497,7 @@ scheme_intern_exact_char_symbol(const mzchar *name, unsigned int len)
}
Scheme_Object *
scheme_intern_exact_keyword(const char *name, unsigned int len)
scheme_intern_exact_keyword(const char *name, uintptr_t len)
{
Scheme_Object *s;
s = intern_exact_symbol_in_table(enum_keyword, 0, name, len);
@ -506,7 +506,7 @@ scheme_intern_exact_keyword(const char *name, unsigned int len)
return s;
}
Scheme_Object *scheme_intern_exact_char_keyword(const mzchar *name, unsigned int len)
Scheme_Object *scheme_intern_exact_char_keyword(const mzchar *name, uintptr_t len)
{
char buf[64], *bs;
intptr_t blen;
@ -553,11 +553,11 @@ scheme_intern_symbol(const char *name)
return scheme_intern_exact_symbol(name, strlen(name));
}
const char *scheme_symbol_name_and_size(Scheme_Object *sym, unsigned int *length, int flags)
const char *scheme_symbol_name_and_size(Scheme_Object *sym, uintptr_t *length, int flags)
{
int has_space = 0, has_special = 0, has_pipe = 0, has_upper = 0, digit_start;
int dz;
unsigned int i, len = SCHEME_SYM_LEN(sym), total_length;
uintptr_t i, len = SCHEME_SYM_LEN(sym), total_length;
int pipe_quote;
char buf[100];
char *s, *result;
@ -682,7 +682,7 @@ const char *scheme_symbol_name_and_size(Scheme_Object *sym, unsigned int *length
result[len + 2] = 0;
} else {
int p = 0;
unsigned int i = 0;
uintptr_t i = 0;
result = (char *)scheme_malloc_atomic((2 * len) + 1);

View File

@ -1,4 +1,5 @@
# MSVC build directory:
*/Release
*/Debug
*/x64
*/*.user

View File

@ -59,10 +59,11 @@ extern "C" {
/* Specify which architecture libffi is configured for. */
#ifdef _WIN64
# define __x86_64__
# define X86_WIN64
#else
# define __i386__
# define X86_WIN32
#endif
#define X86_WIN32
/* ---- System configuration information --------------------------------- */

View File

@ -12,6 +12,9 @@
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
@ -140,6 +143,132 @@
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="..\libffi;..\..\foreign\libffi\include;..\..\foreign\libffi\src\x86"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
@ -177,10 +306,19 @@
>
<Tool
Name="VCCustomBuildTool"
CommandLine="cl.exe /EP /I . /I ../../foreign/libffi/src/x86 $(inputpath) &gt; Release/win32_plain.asm&#x0D;&#x0A;ml.exe /c /Cx /coff /Fo Release/win32.obj Release/win32_plain.asm"
CommandLine="cl.exe /EP /I . /I ../../foreign/libffi/src/x86 $(inputpath) &gt; Release/win32_plain.asm&#x0D;&#x0A;ml.exe /c /Cx /coff /Fo Release/win32.obj Release/win32_plain.asm&#x0D;&#x0A;"
Outputs="Release/win32.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCustomBuildTool"
CommandLine="cl.exe /EP /I . /I ../../foreign/libffi/src/x86 $(inputpath) &gt; x64/Release/win32_plain.asm&#x0D;&#x0A;ml64.exe /c /Cx /Fo x64/Release/win32.obj x64/Release/win32_plain.asm&#x0D;&#x0A;"
Outputs="x64/Release/win32.obj"
/>
</FileConfiguration>
</File>
</Filter>
<Filter

View File

@ -1 +1,5 @@
#include "../../foreign/libffi/src/x86/win32.S"
#ifdef _WIN64
# include "../../foreign/libffi/src/x86/win64.S"
#else
# include "../../foreign/libffi/src/x86/win32.S"
#endif

View File

@ -10,6 +10,9 @@
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
@ -96,6 +99,90 @@
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\Racket\Gc\Include,$(NOINHERIT)"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;GC_BUILD;MD_LIB_MAIN;SILENT;OLD_BLOCK_ALLOC;LARGE_CONFIG;ATOMIC_UNCOLLECTABLE;INITIAL_MARK_STACK_SIZE=8192;GC_DLL;_CRT_SECURE_NO_DEPRECATE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386"
AdditionalDependencies="User32.lib"
OutputFile="..\..\..\lib\$(ProjectName)xxxxxxx.dll"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary="..\..\..\lib\msvc\$(ProjectName)xxxxxxx.lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
@ -181,6 +268,92 @@
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="..\..\Racket\Gc\Include,$(NOINHERIT)"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;GC_BUILD;SILENT;OLD_BLOCK_ALLOC;LARGE_CONFIG;ATOMIC_UNCOLLECTABLE;INITIAL_MARK_STACK_SIZE=8192;GC_DLL;_CRT_SECURE_NO_DEPRECATE"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="User32.lib"
OutputFile="..\..\..\lib\$(ProjectName)xxxxxxx.dll"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary="..\..\..\lib\msvc\$(ProjectName)xxxxxxx.lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>

View File

@ -10,6 +10,9 @@
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
@ -98,6 +101,92 @@
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..,..\..\racket\include,..\..\racket\src,..\..\foreign\libffi_msvc,$(NOINHERIT)"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;GC_DLL;__STDC__;LIBMZ_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386"
AdditionalDependencies="WS2_32.lib Shell32.lib User32.lib"
OutputFile="..\..\..\lib\libracketxxxxxxx.dll"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
BaseAddress="0x10400000"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary="..\..\..\lib\msvc\libracketxxxxxxx.lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
@ -185,6 +274,94 @@
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/Oy-"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="..;..\..\racket\include;..\..\racket\src;..\libffi;..\..\foreign\libffi\src\x86;..\..\foreign\libffi\include;$(NOINHERIT)"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;GC_DLL;__STDC__;LIBMZ_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="WS2_32.lib Shell32.lib User32.lib"
OutputFile="..\..\..\lib\libracketxxxxxxx.dll"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
BaseAddress="0x10400000"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary="..\..\..\lib\msvc\libracketxxxxxxx.lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>

View File

@ -19,25 +19,43 @@ EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Debug|Win32.ActiveCfg = Debug|Win32
{EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Debug|Win32.Build.0 = Debug|Win32
{EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Debug|x64.ActiveCfg = Debug|x64
{EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Debug|x64.Build.0 = Debug|x64
{EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Release|Win32.ActiveCfg = Release|Win32
{EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Release|Win32.Build.0 = Release|Win32
{EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Release|x64.ActiveCfg = Release|x64
{EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Release|x64.Build.0 = Release|x64
{A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Debug|Win32.ActiveCfg = Debug|Win32
{A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Debug|Win32.Build.0 = Debug|Win32
{A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Debug|x64.ActiveCfg = Debug|x64
{A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Debug|x64.Build.0 = Debug|x64
{A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Release|Win32.ActiveCfg = Release|Win32
{A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Release|Win32.Build.0 = Release|Win32
{A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Release|x64.ActiveCfg = Release|x64
{A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Release|x64.Build.0 = Release|x64
{66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Debug|Win32.ActiveCfg = Debug|Win32
{66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Debug|Win32.Build.0 = Debug|Win32
{66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Debug|x64.ActiveCfg = Debug|x64
{66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Debug|x64.Build.0 = Debug|x64
{66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Release|Win32.ActiveCfg = Release|Win32
{66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Release|Win32.Build.0 = Release|Win32
{66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Release|x64.ActiveCfg = Release|x64
{66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Release|x64.Build.0 = Release|x64
{7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Debug|Win32.ActiveCfg = Debug|Win32
{7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Debug|Win32.Build.0 = Debug|Win32
{7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Debug|x64.ActiveCfg = Debug|x64
{7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Debug|x64.Build.0 = Debug|x64
{7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Release|Win32.ActiveCfg = Release|Win32
{7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Release|Win32.Build.0 = Release|Win32
{7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Release|x64.ActiveCfg = Release|x64
{7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -10,6 +10,9 @@
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
@ -98,6 +101,92 @@
CommandLine="&#x0D;&#x0A;if exist &quot;$(TargetPath)&quot; goto :MzOK&#x0D;&#x0A;echo Error: did not find $(TargetPath)&#x0D;&#x0A;exit 1&#x0D;&#x0A;:MzOK&#x0D;&#x0A;&quot;$(TargetPath)&quot; -cu ..\..\racket\mkincludes.rkt &quot;$(TargetDir)/include/&quot; ..\..\racket ..&#x0D;&#x0A;if errorlevel 1 exit 1&#x0D;&#x0A;cd ..\..\racket\dynsrc&#x0D;&#x0A;mkmzdynd.bat&#x0D;&#x0A;cd ..\..\worksp\racket&#x0D;&#x0A;&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..,..\..\racket\include,$(NOINHERIT)"
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE,GC_DLL,_CRT_SECURE_NO_DEPRECATE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386 /DELAYLOAD:libracketxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
AdditionalDependencies="delayimp.lib user32.lib"
OutputFile="..\..\..\RacketCGC.exe"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile="..\..\..\RacketCGC.pdb"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="&#x0D;&#x0A;if exist &quot;$(TargetPath)&quot; goto :MzOK&#x0D;&#x0A;echo Error: did not find $(TargetPath)&#x0D;&#x0A;exit 1&#x0D;&#x0A;:MzOK&#x0D;&#x0A;&quot;$(TargetPath)&quot; -cu ..\..\racket\mkincludes.rkt &quot;$(TargetDir)/include/&quot; ..\..\racket ..&#x0D;&#x0A;if errorlevel 1 exit 1&#x0D;&#x0A;cd ..\..\racket\dynsrc&#x0D;&#x0A;mkmzdynd.bat&#x0D;&#x0A;cd ..\..\worksp\racket&#x0D;&#x0A;&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
@ -186,6 +275,96 @@
CommandLine="&#x0D;&#x0A;if exist &quot;$(TargetPath)&quot; goto :MzOK&#x0D;&#x0A;echo Error: did not find $(TargetPath)&#x0D;&#x0A;exit 1&#x0D;&#x0A;:MzOK&#x0D;&#x0A;&quot;$(TargetPath)&quot; -cu ..\..\racket\mkincludes.rkt &quot;$(TargetDir)/include/&quot; ..\..\racket ..&#x0D;&#x0A;if errorlevel 1 exit 1&#x0D;&#x0A;cd ..\..\racket\dynsrc&#x0D;&#x0A;mkmzdyn.bat&#x0D;&#x0A;cd ..\..\worksp\racket&#x0D;&#x0A;&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="..,..\..\racket\include,$(NOINHERIT)"
PreprocessorDefinitions="WIN32,NDEBUG,_CONSOLE,GC_DLL,_CRT_SECURE_NO_DEPRECATE"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" /DELAYLOAD:libracketxxxxxxx.dll /DELAYLOAD:libmzgcxxxxxxx.dll"
AdditionalDependencies="delayimp.lib user32.lib"
OutputFile="..\..\..\RacketCGC.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile="..\..\..\RacketCGC.pdb"
SubSystem="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="&#x0D;&#x0A;if exist &quot;$(TargetPath)&quot; goto :MzOK&#x0D;&#x0A;echo Error: did not find $(TargetPath)&#x0D;&#x0A;exit 1&#x0D;&#x0A;:MzOK&#x0D;&#x0A;&quot;$(TargetPath)&quot; -cu ..\..\racket\mkincludes.rkt &quot;$(TargetDir)/include/&quot; ..\..\racket ..&#x0D;&#x0A;if errorlevel 1 exit 1&#x0D;&#x0A;cd ..\..\racket\dynsrc&#x0D;&#x0A;mkmzdyn.bat&#x0D;&#x0A;cd ..\..\worksp\racket&#x0D;&#x0A;&#x0D;&#x0A;"
/>
</Configuration>
</Configurations>
<References>
</References>