1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00

Lightening: _WIN32 updates from upstream lightning

Pulls in a few updates for WIN32 from upstream GNU lightning.
Based on patches from GNU Lightning.
This commit is contained in:
Michael Gran 2025-03-29 15:07:33 -07:00
parent 0b70769247
commit 4cac137b01
2 changed files with 7 additions and 7 deletions

View file

@ -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

View file

@ -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 {