71
71
#if defined(VGP_ppc32_linux)
72
extern void VG_(ppc32_linux_SUBST_FOR_sigreturn);
73
extern void VG_(ppc32_linux_SUBST_FOR_rt_sigreturn);
72
74
extern UInt VG_(ppc32_linux_REDIR_FOR_strlen)( void* );
73
75
extern UInt VG_(ppc32_linux_REDIR_FOR_strcmp)( void*, void* );
74
76
extern void* VG_(ppc32_linux_REDIR_FOR_strchr)( void*, Int );
77
79
#if defined(VGP_ppc64_linux)
80
extern void VG_(ppc64_linux_SUBST_FOR_rt_sigreturn);
78
81
extern UInt VG_(ppc64_linux_REDIR_FOR_strlen)( void* );
79
82
extern void* VG_(ppc64_linux_REDIR_FOR_strchr)( void*, Int );
80
83
/* A label (sans dot) marking the ultra-magical return stub via which
81
84
all redirected and wrapped functions are made to "return" on
82
ppc64-linux. The one insn at this label is never really
83
translated. Instead, m_translate generates IR to restore the
84
thread's LR and R2 registers from a small stack in the ppc64 guest
85
state structure, and then branch to LR. Convoluted? Confusing?
86
You betcha. Could I think of anything simpler? No. */
87
extern void VG_(ppc64_linux_magic_redirect_return_stub);
85
ppc64-linux/ppc64-aix5/ppc32-aix5. The one insn at this label is
86
never really translated. Instead, m_translate generates IR to
87
restore the thread's LR and R2 registers from a small stack in the
88
ppc64 guest state structure, and then branch to LR. Convoluted?
89
Confusing? You betcha. Could I think of anything simpler? No. */
90
extern void VG_(ppctoc_magic_redirect_return_stub);
93
#if defined(VGP_ppc32_aix5)
94
/* A label (sans dot) marking the client start point for ppc32_aix5.
95
This function is entered with r3 holding a pointer to the
96
AIX5PreloadPage struct set up by m_initimg. It first tries to
97
__loadx the _core.so and _tool.so preloads mentioned in the struct;
98
then it cleans up the register state to be more what it really
99
should be at client startup, and finally it jumps to the client's
101
extern void VG_(ppc32_aix5_do_preloads_then_start_client);
103
/* See comment for VG_(ppctoc_magic_redirect_return_stub) above. */
104
extern void VG_(ppctoc_magic_redirect_return_stub);
107
#if defined(VGP_ppc64_aix5)
108
/* See comment for VG_(ppctoc_magic_redirect_return_stub) above. */
109
extern void VG_(ppctoc_magic_redirect_return_stub);
111
/* See comment for ppc32_aix5 equivalent above. */
112
extern void VG_(ppc64_aix5_do_preloads_then_start_client);
90
115
#endif // __PUB_CORE_TRAMPOLINE_H