mie: target: add result output to ir lowering callbacks
This commit is contained in:
@@ -6,18 +6,20 @@
|
|||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
struct mie_target;
|
struct mie_target;
|
||||||
struct mie_instr;
|
struct mie_call;
|
||||||
|
struct mie_msg;
|
||||||
struct mie_select_builder;
|
struct mie_select_builder;
|
||||||
|
struct mie_select_value;
|
||||||
|
|
||||||
struct mie_target_select_ops {
|
struct mie_target_select_ops {
|
||||||
size_t (*s_node_name)(
|
size_t (*s_node_name)(
|
||||||
const struct mie_target *, unsigned int, char *, size_t);
|
const struct mie_target *, unsigned int, char *, size_t);
|
||||||
enum mie_status (*s_lower_call)(
|
enum mie_status (*s_lower_call)(
|
||||||
const struct mie_target *, struct mie_select_builder *,
|
const struct mie_target *, struct mie_select_builder *,
|
||||||
struct mie_instr *);
|
struct mie_call *, struct mie_select_value *);
|
||||||
enum mie_status (*s_lower_msg)(
|
enum mie_status (*s_lower_msg)(
|
||||||
const struct mie_target *, struct mie_select_builder *,
|
const struct mie_target *, struct mie_select_builder *,
|
||||||
struct mie_instr *);
|
struct mie_msg *, struct mie_select_value *);
|
||||||
};
|
};
|
||||||
|
|
||||||
MIE_API size_t mie_target_select_node_name(
|
MIE_API size_t mie_target_select_node_name(
|
||||||
@@ -26,9 +28,9 @@ MIE_API size_t mie_target_select_node_name(
|
|||||||
|
|
||||||
MIE_API enum mie_status mie_target_select_lower_call(
|
MIE_API enum mie_status mie_target_select_lower_call(
|
||||||
const struct mie_target *target, struct mie_select_builder *builder,
|
const struct mie_target *target, struct mie_select_builder *builder,
|
||||||
struct mie_instr *instr);
|
struct mie_call *call, struct mie_select_value *result);
|
||||||
MIE_API enum mie_status mie_target_select_lower_msg(
|
MIE_API enum mie_status mie_target_select_lower_msg(
|
||||||
const struct mie_target *target, struct mie_select_builder *builder,
|
const struct mie_target *target, struct mie_select_builder *builder,
|
||||||
struct mie_instr *instr);
|
struct mie_msg *msg, struct mie_select_value *result);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -64,22 +64,22 @@ size_t mie_target_select_node_name(
|
|||||||
|
|
||||||
enum mie_status mie_target_select_lower_call(
|
enum mie_status mie_target_select_lower_call(
|
||||||
const struct mie_target *target, struct mie_select_builder *builder,
|
const struct mie_target *target, struct mie_select_builder *builder,
|
||||||
struct mie_instr *instr)
|
struct mie_call *call, struct mie_select_value *result)
|
||||||
{
|
{
|
||||||
if (!target->t_select || !target->t_select->s_lower_call) {
|
if (!target->t_select || !target->t_select->s_lower_call) {
|
||||||
return MIE_ERR_NOT_SUPPORTED;
|
return MIE_ERR_NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
return target->t_select->s_lower_call(target, builder, instr);
|
return target->t_select->s_lower_call(target, builder, call, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
enum mie_status mie_target_select_lower_msg(
|
enum mie_status mie_target_select_lower_msg(
|
||||||
const struct mie_target *target, struct mie_select_builder *builder,
|
const struct mie_target *target, struct mie_select_builder *builder,
|
||||||
struct mie_instr *instr)
|
struct mie_msg *msg, struct mie_select_value *result)
|
||||||
{
|
{
|
||||||
if (!target->t_select || !target->t_select->s_lower_msg) {
|
if (!target->t_select || !target->t_select->s_lower_msg) {
|
||||||
return MIE_ERR_NOT_SUPPORTED;
|
return MIE_ERR_NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
return target->t_select->s_lower_call(target, builder, instr);
|
return target->t_select->s_lower_msg(target, builder, msg, result);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user