X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Fx86-linux-os.c;h=07b8e33998b469a2c3df0f1c7510a648413ca661;hb=2b88fb32146f381eaa7b20d8b829af92841d63d4;hp=d943e6fb86deffaefe4b8c18d273aa04898982c4;hpb=9086ddef369825b92533128f68dc04e0b165ea40;p=sbcl.git diff --git a/src/runtime/x86-linux-os.c b/src/runtime/x86-linux-os.c index d943e6f..07b8e33 100644 --- a/src/runtime/x86-linux-os.c +++ b/src/runtime/x86-linux-os.c @@ -121,7 +121,7 @@ struct thread *arch_os_get_current_thread() { #ifdef LISP_FEATURE_SB_THREAD register struct thread *me=0; if(all_threads) - __asm__ ("movl %%fs:%c1,%0" : "=r" (me) + __asm__ __volatile__ ("movl %%fs:%c1,%0" : "=r" (me) : "i" (offsetof (struct thread,this))); return me; #else @@ -130,7 +130,7 @@ struct thread *arch_os_get_current_thread() { } struct thread *debug_get_fs() { register u32 fs; - __asm__("movl %%fs,%0" : "=r" (fs) : ); + __asm__ __volatile__ ("movl %%fs,%0" : "=r" (fs) : ); return fs; } @@ -166,14 +166,14 @@ os_context_register_t * os_context_register_addr(os_context_t *context, int offset) { switch(offset) { - case 0: return &context->uc_mcontext.gregs[11]; /* EAX */ - case 2: return &context->uc_mcontext.gregs[10]; /* ECX */ - case 4: return &context->uc_mcontext.gregs[9]; /* EDX */ - case 6: return &context->uc_mcontext.gregs[8]; /* EBX */ - case 8: return &context->uc_mcontext.gregs[7]; /* ESP */ - case 10: return &context->uc_mcontext.gregs[6]; /* EBP */ - case 12: return &context->uc_mcontext.gregs[5]; /* ESI */ - case 14: return &context->uc_mcontext.gregs[4]; /* EDI */ + 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_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]; default: return 0; } return &context->uc_mcontext.gregs[offset];