コード例 #1
0
static bool node_has_sp_base(ir_node const *const node)
{
	int input;
	if (is_sparc_FrameAddr(node)) {
		input = n_sparc_FrameAddr_base;
	} else if (is_sparc_Ld(node)) {
		input = n_sparc_Ld_ptr;
	} else if (is_sparc_St(node)) {
		input = n_sparc_St_ptr;
	} else if (is_sparc_Ldf(node)) {
		input = n_sparc_Ldf_ptr;
	} else if (is_sparc_Stf(node)) {
		input = n_sparc_Stf_ptr;
	} else {
		panic("Unexpected node %+F", node);
	}
	arch_register_t const *const reg = arch_get_irn_register_in(node, input);
	return reg == &sparc_registers[REG_SP];
}
コード例 #2
0
ファイル: sparc_new_nodes.c プロジェクト: qznc/libfirm
bool sparc_has_load_store_attr(const ir_node *node)
{
	return is_sparc_Ld(node) || is_sparc_St(node) || is_sparc_Ldf(node)
	    || is_sparc_Stf(node);
}