arch_env_push_irn_handler(env->birg->main_env->arch_env, &env->irn_handler);
env->call->cb->done(env->cb);
+ env->cb = NULL;
return env;
}
return pmap_get(abi->regs, (void *) reg);
}
+ir_node *be_abi_get_ignore_irn(be_abi_irg_t *abi, const arch_register_t *reg)
+{
+ assert(arch_register_type_is(reg, ignore));
+ assert(pmap_contains(abi->regs, (void *) reg));
+ return pmap_get(abi->regs, (void *) reg);
+}
+
/*
_____ _____ _ _ _ _ _ _
|_ _| __ \| \ | | | | | | | | |
static const arch_irn_handler_t abi_irn_handler = {
abi_get_irn_ops
};
+
+/**
+ * Returns non-zero if the ABI has omitted the frame pointer in
+ * the current graph.
+ */
+int be_abi_omit_fp(const be_abi_irg_t *abi) {
+ return abi->call->flags.bits.try_omit_fp;
+}