new function offset gimple
This commit is contained in:
parent
8f27146c81
commit
99d6a2907b
@ -319,21 +319,32 @@ build_cfi_hash_tree (gimple cs, int direct)
|
|||||||
|
|
||||||
/* This code fragment of compute target function hash offset comes
|
/* This code fragment of compute target function hash offset comes
|
||||||
from Pax RAP. */
|
from Pax RAP. */
|
||||||
|
/* We need the forward offset. */
|
||||||
if (UNITS_PER_WORD == 8)
|
if (UNITS_PER_WORD == 8)
|
||||||
target_offset = 2 * sizeof(rap_hash_value_type);
|
{
|
||||||
|
target_offset = - 2 * sizeof(rap_hash_value_type);
|
||||||
|
type = long_integer_type_node;
|
||||||
|
}
|
||||||
else if (UNITS_PER_WORD == 4)
|
else if (UNITS_PER_WORD == 4)
|
||||||
target_offset = sizeof(rap_hash_value_type);
|
{
|
||||||
|
target_offset = - sizeof(rap_hash_value_type);
|
||||||
|
type = integer_type_node;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
gcc_unreachable();
|
gcc_unreachable();
|
||||||
|
|
||||||
|
/* Build the tree for : ((rap_hash_value_type *)target_function - 1)
|
||||||
|
This code is referenced from gcc source: gimplify_modify_expr_rhs() */
|
||||||
|
|
||||||
|
// integer_ptr_type_node
|
||||||
|
// func is the function pointer, ADDR_EXPR, pointer(function)
|
||||||
|
fold_build2 (MEM_REF, type, func,
|
||||||
|
build_int_cst_wide (integer_ptr_type_node,
|
||||||
|
TREE_INT_CST_LOW (target_offset),
|
||||||
|
TREE_INT_CST_HIGH (target_offset)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user