mie: target: add result output to ir lowering callbacks

This commit is contained in:
2025-09-08 15:41:50 +01:00
parent 3a8a3b59f0
commit 225968e94e
2 changed files with 11 additions and 9 deletions

View File

@@ -6,18 +6,20 @@
#include <stddef.h>
struct mie_target;
struct mie_instr;
struct mie_call;
struct mie_msg;
struct mie_select_builder;
struct mie_select_value;
struct mie_target_select_ops {
size_t (*s_node_name)(
const struct mie_target *, unsigned int, char *, size_t);
enum mie_status (*s_lower_call)(
const struct mie_target *, struct mie_select_builder *,
struct mie_instr *);
struct mie_call *, struct mie_select_value *);
enum mie_status (*s_lower_msg)(
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(
@@ -26,9 +28,9 @@ MIE_API size_t mie_target_select_node_name(
MIE_API enum mie_status mie_target_select_lower_call(
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(
const struct mie_target *target, struct mie_select_builder *builder,
struct mie_instr *instr);
struct mie_msg *msg, struct mie_select_value *result);
#endif

View File

@@ -64,22 +64,22 @@ size_t mie_target_select_node_name(
enum mie_status mie_target_select_lower_call(
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) {
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(
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) {
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);
}