~bkerensa/ubuntu/raring/valgrind/merge-from-deb

« back to all changes in this revision

Viewing changes to coregrind/pub_core_trampoline.h

  • Committer: Bazaar Package Importer
  • Author(s): Andrés Roldán
  • Date: 2008-06-13 02:31:40 UTC
  • mto: (1.4.1 upstream) (2.2.1 squeeze)
  • mto: This revision was merged to the branch mainline in revision 24.
  • Revision ID: james.westby@ubuntu.com-20080613023140-iwk33rz9rhvfkr96
Import upstream version 3.3.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
   This file is part of Valgrind, a dynamic binary instrumentation
8
8
   framework.
9
9
 
10
 
   Copyright (C) 2000-2006 Julian Seward
 
10
   Copyright (C) 2000-2007 Julian Seward
11
11
      jseward@acm.org
12
12
 
13
13
   This program is free software; you can redistribute it and/or
69
69
#endif
70
70
 
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 );
75
77
#endif
76
78
 
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);
 
91
#endif
 
92
 
 
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
 
100
   real entry point. */
 
101
extern void VG_(ppc32_aix5_do_preloads_then_start_client);
 
102
 
 
103
/* See comment for VG_(ppctoc_magic_redirect_return_stub) above. */
 
104
extern void VG_(ppctoc_magic_redirect_return_stub);
 
105
#endif
 
106
 
 
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);
 
110
 
 
111
/* See comment for ppc32_aix5 equivalent above. */
 
112
extern void VG_(ppc64_aix5_do_preloads_then_start_client);
88
113
#endif
89
114
 
90
115
#endif   // __PUB_CORE_TRAMPOLINE_H