HPCToolkit
ppc64-unwind.c File Reference
#include <stddef.h>
#include <stdbool.h>
#include <ucontext.h>
#include <assert.h>
#include <monitor.h>
#include <unwind/common/unwind.h>
#include <unwind/common/unw-datatypes.h>
#include <unwind/common/libunw_intervals.h>
#include "ppc64-unwind-interval.h"
#include "sample_event.h"
#include "uw_recipe_map.h"
#include <messages/messages.h>
#include <utilities/ip-normalized.h>
#include <utilities/arch/mcontext.h>
#include <lib/isa-lean/power/instruction-set.h>
#include <unwind/common/fence_enum.h>
Include dependency graph for ppc64-unwind.c:

Go to the source code of this file.

Macros

#define MYDBG   0
 

Typedefs

typedef unw_frame_regnum_t unw_reg_code_t
 

Enumerations

enum  unw_flag_t { UnwFlg_NULL = 0, UnwFlg_StackTop }
 

Functions

static fence_enum_t hpcrun_check_fence (void *ip)
 
static void save_registers (hpcrun_unw_cursor_t *cursor, void *pc, void *bp, void *sp, void *ra)
 
static void compute_normalized_ips (hpcrun_unw_cursor_t *cursor)
 
static bool fence_stop (fence_enum_t fence)
 
static int hpcrun_unw_get_unnorm_reg (hpcrun_unw_cursor_t *cursor, unw_reg_code_t reg_id, void **reg_value)
 
static int hpcrun_unw_get_norm_reg (hpcrun_unw_cursor_t *cursor, unw_reg_code_t reg_id, ip_normalized_t *reg_value)
 
void hpcrun_unw_init (void)
 
int hpcrun_unw_get_ip_norm_reg (hpcrun_unw_cursor_t *c, ip_normalized_t *reg_value)
 
int hpcrun_unw_get_ip_unnorm_reg (hpcrun_unw_cursor_t *c, void **reg_value)
 
void * hpcrun_unw_get_ra_loc (hpcrun_unw_cursor_t *cursor)
 
void hpcrun_unw_init_cursor (hpcrun_unw_cursor_t *cursor, void *context)
 
step_state hpcrun_unw_step (hpcrun_unw_cursor_t *cursor)
 

Macro Definition Documentation

◆ MYDBG

#define MYDBG   0

Definition at line 93 of file ppc64-unwind.c.

Typedef Documentation

◆ unw_reg_code_t

typedef unw_frame_regnum_t unw_reg_code_t

Definition at line 104 of file ppc64-unwind.c.

Enumeration Type Documentation

◆ unw_flag_t

enum unw_flag_t
Enumerator
UnwFlg_NULL 
UnwFlg_StackTop 

Definition at line 106 of file ppc64-unwind.c.

Function Documentation

◆ compute_normalized_ips()

static void compute_normalized_ips ( hpcrun_unw_cursor_t cursor)
static

Definition at line 137 of file ppc64-unwind.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fence_stop()

static bool fence_stop ( fence_enum_t  fence)
static

Definition at line 149 of file ppc64-unwind.c.

Here is the caller graph for this function:

◆ hpcrun_check_fence()

static fence_enum_t hpcrun_check_fence ( void *  ip)
static

Definition at line 156 of file ppc64-unwind.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpcrun_unw_get_ip_norm_reg()

int hpcrun_unw_get_ip_norm_reg ( hpcrun_unw_cursor_t c,
ip_normalized_t reg_value 
)

Definition at line 203 of file ppc64-unwind.c.

Here is the call graph for this function:

◆ hpcrun_unw_get_ip_unnorm_reg()

int hpcrun_unw_get_ip_unnorm_reg ( hpcrun_unw_cursor_t c,
void **  reg_value 
)

Definition at line 210 of file ppc64-unwind.c.

Here is the call graph for this function:

◆ hpcrun_unw_get_norm_reg()

static int hpcrun_unw_get_norm_reg ( hpcrun_unw_cursor_t cursor,
unw_reg_code_t  reg_id,
ip_normalized_t reg_value 
)
static

Definition at line 182 of file ppc64-unwind.c.

Here is the caller graph for this function:

◆ hpcrun_unw_get_ra_loc()

void* hpcrun_unw_get_ra_loc ( hpcrun_unw_cursor_t cursor)

Definition at line 221 of file ppc64-unwind.c.

◆ hpcrun_unw_get_unnorm_reg()

static int hpcrun_unw_get_unnorm_reg ( hpcrun_unw_cursor_t cursor,
unw_reg_code_t  reg_id,
void **  reg_value 
)
static

Definition at line 171 of file ppc64-unwind.c.

Here is the caller graph for this function:

◆ hpcrun_unw_init()

void hpcrun_unw_init ( void  )

Definition at line 197 of file ppc64-unwind.c.

Here is the call graph for this function:

◆ hpcrun_unw_init_cursor()

void hpcrun_unw_init_cursor ( hpcrun_unw_cursor_t cursor,
void *  context 
)

Definition at line 228 of file ppc64-unwind.c.

Here is the call graph for this function:

◆ hpcrun_unw_step()

step_state hpcrun_unw_step ( hpcrun_unw_cursor_t cursor)

Definition at line 266 of file ppc64-unwind.c.

Here is the call graph for this function:

◆ save_registers()

static void save_registers ( hpcrun_unw_cursor_t cursor,
void *  pc,
void *  bp,
void *  sp,
void *  ra 
)
static

Definition at line 127 of file ppc64-unwind.c.

Here is the caller graph for this function: