зеркало из https://github.com/mozilla/gecko-dev.git
bug 78414: fix m68k xptcall codefor -fomit-frame-pointer; patch from Richard Zidlicky <rz@linux-m68k.org>
This commit is contained in:
Родитель
9df7282768
Коммит
1b9fe6c972
|
@ -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; \
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче