# define FLOAT_REGISTER_P(b) true
#endif
-static word_t word_registers [N_WORD_REGISTERS];
-static double float_registers [N_FLOAT_REGISTERS];
+static __thread word_t word_registers [N_WORD_REGISTERS];
+static __thread double float_registers [N_FLOAT_REGISTERS];
#define SBYTE (sizeof (byte_t))
#define SWORD (sizeof (word_t))
return (addr); \
} while (0)
-static long svm1_result;
+static __thread long svm1_result;
#define EXIT_VM(code) do \
{ \
/* Only true when the virtual machine is running, e.g. while Free is
cached in word_registers[]. In a signal handler, the virtual
instruction that trapped is at instruction_pointer. */
-static bool running_p = false;
-static insn_t * instruction_pointer;
+static __thread bool running_p = false;
+static __thread insn_t * instruction_pointer;
long
C_to_interface (void * address)