Hunt down compiler warnings.
/* We tried to call a function, but crapped out before $CODE could
* be fixed up. Probably an undefined function. */
info->frame =
- (struct call_frame *)(*os_context_register_addr(context,
- reg_OCFP));
+ (struct call_frame *)(unsigned long)
+ (*os_context_register_addr(context, reg_OCFP));
info->lra = (lispobj)(*os_context_register_addr(context, reg_LRA));
info->code = code_pointer(info->lra);
pc = (unsigned long)native_pointer(info->lra);
}
else {
info->frame =
- (struct call_frame *)(*os_context_register_addr(context, reg_CFP));
+ (struct call_frame *)(unsigned long)
+ (*os_context_register_addr(context, reg_CFP));
info->code =
code_pointer(*os_context_register_addr(context, reg_CODE));
info->lra = NIL;
while (free-- > 0) {
os_context_t *context =
thread->interrupt_contexts[free];
- if ((struct call_frame *)(*os_context_register_addr(context,
- reg_CFP))
+ if ((struct call_frame *)(unsigned long)
+ (*os_context_register_addr(context, reg_CFP))
== info->frame) {
call_info_from_context(info, context);
break;
gc_assert(widetag_of(wp->header)==WEAK_POINTER_WIDETAG);
/* Push the weak pointer onto the list of weak pointers. */
- wp->next = LOW_WORD(weak_pointers);
+ wp->next = (struct weak_pointer *)LOW_WORD(weak_pointers);
weak_pointers = wp;
#endif
return copy;
/* Build a fake stack frame or frames */
current_control_frame_pointer =
- (lispobj *)(*os_context_register_addr(context, reg_CSP));
- if ((lispobj *)(*os_context_register_addr(context, reg_CFP))
+ (lispobj *)(unsigned long)
+ (*os_context_register_addr(context, reg_CSP));
+ if ((lispobj *)(unsigned long)
+ (*os_context_register_addr(context, reg_CFP))
== current_control_frame_pointer) {
/* There is a small window during call where the callee's
* frame isn't built yet. */
/* Get current Lisp state from context. */
#ifdef reg_ALLOC
dynamic_space_free_pointer =
- (lispobj *)(*os_context_register_addr(context, reg_ALLOC));
+ (lispobj *)(unsigned long)
+ (*os_context_register_addr(context, reg_ALLOC));
#if defined(LISP_FEATURE_ALPHA)
if ((long)dynamic_space_free_pointer & 1) {
lose("dead in fake_foreign_function_call, context = %x", context);
#endif
#ifdef reg_BSP
current_binding_stack_pointer =
- (lispobj *)(*os_context_register_addr(context, reg_BSP));
+ (lispobj *)(unsigned long)
+ (*os_context_register_addr(context, reg_BSP));
#endif
build_fake_control_stack_frames(thread,context);
#else
/* this much of the calling convention is common to all
non-x86 ports */
- *os_context_pc_addr(context) = (os_context_register_t)code;
+ *os_context_pc_addr(context) = (os_context_register_t)(unsigned long)code;
*os_context_register_addr(context,reg_NARGS) = 0;
- *os_context_register_addr(context,reg_LIP) = (os_context_register_t)code;
+ *os_context_register_addr(context,reg_LIP) =
+ (os_context_register_t)(unsigned long)code;
*os_context_register_addr(context,reg_CFP) =
- (os_context_register_t)current_control_frame_pointer;
+ (os_context_register_t)(unsigned long)current_control_frame_pointer;
#endif
#ifdef ARCH_HAS_NPC_REGISTER
*os_context_npc_addr(context) =
interrupt_maybe_gc(int signal, siginfo_t *info, void *void_context)
{
os_context_t *context=(os_context_t *) void_context;
- struct thread *th=arch_os_get_current_thread();
- struct interrupt_data *data=th->interrupt_data;
if(!foreign_function_call_active && gc_trigger_hit(signal, info, context)){
struct thread *thread=arch_os_get_current_thread();
printf("CSP\t=\t0x%08lX\n", (unsigned long)current_control_stack_pointer);
printf("FP\t=\t0x%08lX\n", (unsigned long)current_control_frame_pointer);
#if !(defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64))
- printf("BSP\t=\t0x%08X\n", (unsigned long)current_binding_stack_pointer);
+ printf("BSP\t=\t0x%08lX\n", (unsigned long)current_binding_stack_pointer);
#endif
#if 0
#if (defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64))
printf("There are no active catchers!\n");
else {
while (catch != NULL) {
-#if !(defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64))
- printf("0x%08lX:\n\tuwp: 0x%08lX\n\tfp: 0x%08lX\n\tcode: 0x%08lx\n\tentry: 0x%08lx\n\ttag: ",
- (unsigned long)catch, (unsigned long)(catch->current_uwp),
+ printf("0x%08lX:\n\tuwp: 0x%08lX\n\tfp: 0x%08lX\n\t"
+ "code: 0x%08lX\n\tentry: 0x%08lX\n\ttag: ",
+ (unsigned long)catch,
+ (unsigned long)(catch->current_uwp),
(unsigned long)(catch->current_cont),
- catch->current_code,
- catch->entry_pc);
+#if defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64)
+ (unsigned long)component_ptr_from_pc((void*)catch->entry_pc)
+ + OTHER_POINTER_LOWTAG,
#else
- printf("0x%08lX:\n\tuwp: 0x%08lX\n\tfp: 0x%08lX\n\tcode: 0x%08lx\n\tentry: 0x%08lx\n\ttag: ",
- (unsigned long)catch, (unsigned long)(catch->current_uwp),
- (unsigned long)(catch->current_cont),
- (unsigned long)component_ptr_from_pc((void*)catch->entry_pc) +
- OTHER_POINTER_LOWTAG,
- (unsigned long)catch->entry_pc);
+ (unsigned long)(catch->current_code),
#endif
+ (unsigned long)(catch->entry_pc));
brief_print((lispobj)catch->tag);
catch = catch->previous_catch;
}
#include "runtime.h"
#include "os.h"
#include "globals.h"
+#include "interr.h"
#include "validate.h"
static void
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.4.52"
+"0.9.4.53"