[DTrace-devel] [PATCH v2] Minor edits
eugene.loh at oracle.com
eugene.loh at oracle.com
Mon Feb 28 22:16:44 UTC 2022
From: Eugene Loh <eugene.loh at oracle.com>
Jump to Lempty for zero-length source strings. Remove dead code
claiming to reuse register for dnp->dn_reg.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
---
bpf/substr.S | 8 ++++----
libdtrace/dt_cg.c | 1 -
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/bpf/substr.S b/bpf/substr.S
index 8d501faa..886a7200 100644
--- a/bpf/substr.S
+++ b/bpf/substr.S
@@ -41,9 +41,9 @@ dt_substr :
/*
* Get the source string length and validate it.
- * If the return value of probe_read_str) is less than 0, an error
- * occured, and the result will be the empty string.
- * If the length is 0, the result is the empty string.
+ * If the return value of probe_read_str() is less than 0, an error
+ * occurred, and the result will be the empty string.
+ * If the length is 1, the result is the empty string.
* If the length is less than the maximum string length (STRSZ), use
* the length we got. (The length is initialized in %r8 as the default
* string length.)
@@ -55,7 +55,7 @@ dt_substr :
* len = probe_read_str(dst, STRSZ + 1,
* src);
*/
- jslt %r0, 1, .Lempty /* if (len < 1) goto Lempty; */
+ jsle %r0, 1, .Lempty /* if (len <= 1) goto Lempty; */
sub %r0, 1 /* len--; */
mov %r4, %r8 /* %r4 = STRSZ (previously in %r8) */
mov %r8, %r0 /* %r8 = len */
diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
index 59c4fdc5..d4a58667 100644
--- a/libdtrace/dt_cg.c
+++ b/libdtrace/dt_cg.c
@@ -3989,7 +3989,6 @@ dt_cg_subr_strlen(dt_node_t *dnp, dt_irlist_t *dlp, dt_regset_t *drp)
dt_cg_node(str, dlp, drp);
dt_cg_check_notnull(dlp, drp, str->dn_reg);
- dnp->dn_reg = str->dn_reg; /* re-use register */
if (dt_regset_xalloc_args(drp) == -1)
longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
--
2.18.4
More information about the DTrace-devel
mailing list