[DTrace-devel] [PATCH] cg: use indirect load instructions for scalar DPTR and ALLOCA pointers
Kris Van Hees
kris.van.hees at oracle.com
Mon Feb 20 04:34:41 UTC 2023
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
libdtrace/dt_cg.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
index cc6ca05c..38c43df3 100644
--- a/libdtrace/dt_cg.c
+++ b/libdtrace/dt_cg.c
@@ -5395,7 +5395,7 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
dnp->dn_reg);
}
- if (dnp->dn_child->dn_flags & DT_NF_DPTR)
+ if (dnp->dn_child->dn_flags & (DT_NF_ALLOCA | DT_NF_DPTR))
emit(dlp, BPF_LOAD(op, dnp->dn_reg, dnp->dn_reg, 0));
else
dt_cg_load_scalar(dnp, op, size, dlp, drp);
@@ -5546,7 +5546,7 @@ dt_cg_node(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
op = dt_cg_ldsize(dnp, ctfp, m.ctm_type, &size);
- if (dnp->dn_left->dn_flags & DT_NF_DPTR)
+ if (dnp->dn_left->dn_flags & (DT_NF_ALLOCA | DT_NF_DPTR))
emit(dlp, BPF_LOAD(op, dnp->dn_left->dn_reg, dnp->dn_left->dn_reg, 0));
else
dt_cg_load_scalar(dnp->dn_left, op, size, dlp, drp);
--
2.39.1
More information about the DTrace-devel
mailing list