HPCToolkit
arm-process-ranges.cpp File Reference
#include <stdio.h>
#include <assert.h>
#include <string>
#include "code-ranges.h"
#include "function-entries.h"
#include "process-ranges.h"
#include "sections.h"
#include <include/hpctoolkit-config.h>
Include dependency graph for arm-process-ranges.cpp:

Go to the source code of this file.

Macros

#define RELOCATE(u, offset)   (((char *) (u)) + (offset))
 

Typedefs

typedef enum arm_state_e arm_state_t
 

Enumerations

enum  arm_state_e { ARM_STATE_DEFAULT, ARM_STATE_BR_SEEN }
 

Functions

static bool isInsn_BR (uint32_t insn)
 
static bool isInsn_ADRP (uint32_t insn)
 
void process_range_init (void)
 
void process_range (const char *name, long offset, void *vstart, void *vend, DiscoverFnTy fn_discovery)
 
bool range_contains_control_flow (void *vstart, void *vend)
 

Variables

const uint32_t ADRP_MASK = 0x9f000000
 
const uint32_t BR_MASK = 0xfffffc1f
 
const uint32_t BR_OPCODE = 0xd61f0000
 
const uint32_t ADRP_OPCODE = 0x90000000
 
static arm_state_t state = ARM_STATE_DEFAULT
 

Macro Definition Documentation

◆ RELOCATE

#define RELOCATE (   u,
  offset 
)    (((char *) (u)) + (offset))

Definition at line 98 of file arm-process-ranges.cpp.

Typedef Documentation

◆ arm_state_t

typedef enum arm_state_e arm_state_t

Enumeration Type Documentation

◆ arm_state_e

Enumerator
ARM_STATE_DEFAULT 
ARM_STATE_BR_SEEN 

Definition at line 87 of file arm-process-ranges.cpp.

Function Documentation

◆ isInsn_ADRP()

static bool isInsn_ADRP ( uint32_t  insn)
inlinestatic

Definition at line 121 of file arm-process-ranges.cpp.

Here is the caller graph for this function:

◆ isInsn_BR()

static bool isInsn_BR ( uint32_t  insn)
inlinestatic

Definition at line 114 of file arm-process-ranges.cpp.

Here is the caller graph for this function:

◆ process_range()

void process_range ( const char *  name,
long  offset,
void *  vstart,
void *  vend,
DiscoverFnTy  fn_discovery 
)

Definition at line 139 of file arm-process-ranges.cpp.

Here is the caller graph for this function:

◆ process_range_init()

void process_range_init ( void  )

Definition at line 133 of file arm-process-ranges.cpp.

Here is the caller graph for this function:

◆ range_contains_control_flow()

bool range_contains_control_flow ( void *  vstart,
void *  vend 
)

Definition at line 175 of file arm-process-ranges.cpp.

Here is the caller graph for this function:

Variable Documentation

◆ ADRP_MASK

const uint32_t ADRP_MASK = 0x9f000000

Definition at line 75 of file arm-process-ranges.cpp.

◆ ADRP_OPCODE

const uint32_t ADRP_OPCODE = 0x90000000

Definition at line 79 of file arm-process-ranges.cpp.

◆ BR_MASK

const uint32_t BR_MASK = 0xfffffc1f

Definition at line 76 of file arm-process-ranges.cpp.

◆ BR_OPCODE

const uint32_t BR_OPCODE = 0xd61f0000

Definition at line 78 of file arm-process-ranges.cpp.

◆ state

Definition at line 105 of file arm-process-ranges.cpp.