bug 78414: fix m68k xptcall codefor -fomit-frame-pointer; patch from Richard Zidlicky <rz@linux-m68k.org>

This commit is contained in:
shaver%mozilla.org 2004-10-08 22:10:08 +00:00
Родитель 9df7282768
Коммит 1b9fe6c972
1 изменённых файлов: 7 добавлений и 8 удалений

Просмотреть файл

@ -121,17 +121,16 @@ extern "C" {
#define STUB_ENTRY(n) \ #define STUB_ENTRY(n) \
nsresult nsXPTCStubBase::Stub##n() \ nsresult nsXPTCStubBase::Stub##n() \
{ \ { \
register nsresult result; \ register nsresult result asm("d0"); \
void *frame = __builtin_frame_address(0); \
__asm__ __volatile__( \ __asm__ __volatile__( \
"lea %/a6@(12), %/a0\n\t" /* args */ \ "pea %2@(12)\n\t" /* args */ \
"movl %/a0, %/sp@-\n\t" \ "pea "#n"\n\t" /* method index */ \
"movl #"#n", %/sp@-\n\t" /* method index */ \ "movl %1, %/sp@-\n\t" /* this */ \
"movl %/a6@(8), %/sp@-\n\t" /* this */ \
"jbsr PrepareAndDispatch\n\t" \ "jbsr PrepareAndDispatch\n\t" \
"movl %/d0, %0\n\t" \ "addw #12, %/sp" \
"addl #12, %/sp" \
: "=d" (result) /* %0 */ \ : "=d" (result) /* %0 */ \
: \ : "a" (this), "a" (frame) \
: "a0", "a1", "d0", "d1", "memory" ); \ : "a0", "a1", "d0", "d1", "memory" ); \
return result; \ return result; \
} }