On x86-64 sizeof(double)/sizeof(SCHEME_OBJECT) is 1, but
svm/machine.scm expects it to be 2 (as on i386).
#define ASM_RESET_HOOK initialize_svm1
#define COMPILER_REGBLOCK_N_TEMPS 256
-#define COMPILER_TEMP_SIZE ((sizeof (double)) / (sizeof (SCHEME_OBJECT)))
-#define COMPILER_REGBLOCK_N_FIXED REGBLOCK_MINIMUM_LENGTH
+#define COMPILER_REGBLOCK_N_FIXED 14
+#define COMPILER_TEMP_SIZE 2
+/* COMPILER_TEMP_SIZE is NOT ((sizeof (double)) / (sizeof (SCHEME_OBJECT))).
+ It must not vary e.g. from 1 on x86-64 to 2 on i386. */
typedef byte_t insn_t;
FREG_SET (i, 0.0);
WREG_SET (SVM1_REG_INTERPRETER_REGISTER_BLOCK, ((word_t)Registers));
- /* These are hard-coded into compiler/machines/svm/machine.scm. */
- assert (COMPILER_TEMP_SIZE == 2);
- assert (COMPILER_REGBLOCK_N_FIXED == 14);
+ assert (((sizeof (double)) / (sizeof (SCHEME_OBJECT))) <= COMPILER_TEMP_SIZE);
}
#define IMPORT_REGS() do \