X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fruntime%2Fx86-sunos-os.c;h=fd11cf5e6d20725582dab6c466e963c05f9b00c8;hb=a01045b552695ae546b19ca6fa9bc554ad9c7998;hp=834f9643da7a7e0421141a32a053882cf4694c00;hpb=2fb5b174f6acb88a85c86aa4cd753ddefaccc987;p=sbcl.git diff --git a/src/runtime/x86-sunos-os.c b/src/runtime/x86-sunos-os.c index 834f964..fd11cf5 100644 --- a/src/runtime/x86-sunos-os.c +++ b/src/runtime/x86-sunos-os.c @@ -43,12 +43,13 @@ int arch_os_thread_cleanup(struct thread *thread) { os_context_register_t * os_context_register_addr(os_context_t *context, int offset) { + /* Solaris x86 holds %esp value in UESP */ switch(offset) { case reg_EAX: return &context->uc_mcontext.gregs[11]; case reg_ECX: return &context->uc_mcontext.gregs[10]; case reg_EDX: return &context->uc_mcontext.gregs[9]; case reg_EBX: return &context->uc_mcontext.gregs[8]; - case reg_ESP: return &context->uc_mcontext.gregs[7]; + case reg_ESP: return &context->uc_mcontext.gregs[17]; /* REG_UESP */ case reg_EBP: return &context->uc_mcontext.gregs[6]; case reg_ESI: return &context->uc_mcontext.gregs[5]; case reg_EDI: return &context->uc_mcontext.gregs[4];