arch.h revision 4e2073f64f9db2974d89064dcdc49b2ed7aa9006
1#define BREAKPOINT_VALUE { 0x7f, 0xe0, 0x00, 0x08 }
2#define BREAKPOINT_LENGTH 4
3#define DECR_PC_AFTER_BREAK 0
4
5#define LT_ELFCLASS	ELFCLASS32
6#define LT_ELF_MACHINE	EM_PPC
7
8#ifdef __powerpc64__ // Says 'ltrace' is 64 bits, says nothing about target.
9#define LT_ELFCLASS2	ELFCLASS64
10#define LT_ELF_MACHINE2	EM_PPC64
11#define ARCH_SUPPORTS_OPD
12#endif
13
14#define PLT_REINITALISATION_BP    "_start"
15
16/* Start of arch-specific functions.  */
17#define ARCH_HAVE_UMOVELONG
18#define ARCH_HAVE_ATOMIC_SINGLESTEP
19
20#define PPC_NOP { 0x60, 0x00, 0x00, 0x00 }
21#define PPC_NOP_LENGTH 4
22
23#if (PPC_NOP_LENGTH != BREAKPOINT_LENGTH)
24#error "Length of the breakpoint value not equal to the length of a nop instruction"
25#endif
26
27#ifdef DEFINING_LTELF
28# define ARCH_HAVE_LTELF_DATA
29struct arch_ltelf_data {
30	GElf_Addr ppcgot;
31	GElf_Addr plt_stub_vma;
32	int secure_plt;
33};
34#endif
35