diff --git a/libguile/lightening/lightening/x86-cpu.c b/libguile/lightening/lightening/x86-cpu.c index d8289a317..1825ea1f2 100644 --- a/libguile/lightening/lightening/x86-cpu.c +++ b/libguile/lightening/lightening/x86-cpu.c @@ -20,7 +20,7 @@ /* avoid using it due to partial stalls */ #define USE_INC_DEC 0 -#if __X32 +#if __X32 || __X64_32 # define WIDE 0 # define IF_WIDE(wide, narrow) narrow #else @@ -46,7 +46,7 @@ #define _R15_REGNO 15 #define r7(reg) ((reg) & 7) #define r8(reg) ((reg) & 15) -#if __X32 +#if ___X32 || __CYGWIN__ || __X64_32 || _WIN32 # define reg8_p(rn) ((rn) >= _RAX_REGNO && (rn) <= _RBX_REGNO) #else # define reg8_p(rn) 1 diff --git a/libguile/lightening/lightening/x86.c b/libguile/lightening/lightening/x86.c index 873cb27a4..4e7528baf 100644 --- a/libguile/lightening/lightening/x86.c +++ b/libguile/lightening/lightening/x86.c @@ -237,7 +237,7 @@ jit_init(jit_state_t *_jit) static const jit_gpr_t abi_gpr_args[] = { #if __X32 /* No GPRs in args. */ -#elif __CYGWIN__ +#elif (__CYGWIN__ || _WIN32) _RCX, _RDX, _R8, _R9 #else _RDI, _RSI, _RDX, _RCX, _R8, _R9 @@ -247,7 +247,7 @@ static const jit_gpr_t abi_gpr_args[] = { static const jit_fpr_t abi_fpr_args[] = { #if __X32 /* No FPRs in args. */ -#elif __CYGWIN__ +#elif (__CYGWIN__ || _WIN32) _XMM0, _XMM1, _XMM2, _XMM3 #else _XMM0, _XMM1, _XMM2, _XMM3, _XMM4, _XMM5, _XMM6, _XMM7 @@ -317,7 +317,7 @@ reset_abi_arg_iterator(struct abi_arg_iterator *iter, size_t argc, memset(iter, 0, sizeof *iter); iter->argc = argc; iter->args = args; -#if __CYGWIN__ && __X64 +#if (__CYGWIN__ || _WIN32) && __X64 // Reserve slots on the stack for 4 register parameters (8 bytes each). iter->stack_size = 32; #endif @@ -330,12 +330,12 @@ next_abi_arg(struct abi_arg_iterator *iter, jit_operand_t *arg) enum jit_operand_abi abi = iter->args[iter->arg_idx].abi; if (is_gpr_arg(abi) && iter->gpr_idx < abi_gpr_arg_count) { *arg = jit_operand_gpr (abi, abi_gpr_args[iter->gpr_idx++]); -#ifdef __CYGWIN__ +#if (__CYGWIN__ || _WIN32) iter->fpr_idx++; #endif } else if (is_fpr_arg(abi) && iter->fpr_idx < abi_fpr_arg_count) { *arg = jit_operand_fpr (abi, abi_fpr_args[iter->fpr_idx++]); -#ifdef __CYGWIN__ +#if (__CYGWIN__ || _WIN32) iter->gpr_idx++; #endif } else {