Changeset View
Changeset View
Standalone View
Standalone View
src/UnwindRegistersRestore.S
Show First 20 Lines • Show All 994 Lines • ▼ Show 20 Lines | #endif | ||||
ld $30, (8 * 30)($4) | ld $30, (8 * 30)($4) | ||||
// load new pc into ra | // load new pc into ra | ||||
ld $31, (8 * 32)($4) | ld $31, (8 * 32)($4) | ||||
// jump to ra, load a0 in the delay slot | // jump to ra, load a0 in the delay slot | ||||
jr $31 | jr $31 | ||||
ld $4, (8 * 4)($4) | ld $4, (8 * 4)($4) | ||||
.set pop | .set pop | ||||
#elif defined(__sparc__) | |||||
// | |||||
// void libunwind::Registers_sparc_o32::jumpto() | |||||
// | |||||
// On entry: | |||||
// thread_state pointer is in o0 | |||||
// | |||||
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind15Registers_sparc6jumptoEv) | |||||
ta 3 | |||||
ldd [%o0 + 64], %l0 | |||||
ldd [%o0 + 72], %l2 | |||||
ldd [%o0 + 80], %l4 | |||||
ldd [%o0 + 88], %l6 | |||||
ldd [%o0 + 96], %i0 | |||||
ldd [%o0 + 104], %i2 | |||||
ldd [%o0 + 112], %i4 | |||||
ldd [%o0 + 120], %i6 | |||||
ld [%o0 + 60], %o7 | |||||
jmp %o7 | |||||
nop | |||||
compnerd: Indentation is off | |||||
Not Done ReplyInline ActionsThe extra space is a convention used when writing Sparc assembly to indicate that the instruction is in the delay slot of the previous instruction. dcederman: The extra space is a convention used when writing Sparc assembly to indicate that the… | |||||
#endif | #endif | ||||
#endif /* !defined(__USING_SJLJ_EXCEPTIONS__) */ | #endif /* !defined(__USING_SJLJ_EXCEPTIONS__) */ | ||||
NO_EXEC_STACK_DIRECTIVE | NO_EXEC_STACK_DIRECTIVE | ||||
Indentation is off