From 9026ee0f35310db82d1478a10af2e811525e317d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Mon, 18 Mar 2024 23:55:05 -0700 Subject: v5: save an instruction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With this: text data bss dec hex filename 3888 0 0 3888 f30 apf_interpreter.arm.o text data bss dec hex filename 4883 0 0 4883 1313 apf_interpreter.x86.o Test: TreeHugger Signed-off-by: Maciej Żenczykowski Change-Id: Ic4e26f65b586dff68e27485a394b239b78268929 --- v5/apf_interpreter.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'v5/apf_interpreter.c') diff --git a/v5/apf_interpreter.c b/v5/apf_interpreter.c index 7e31b4d..00576f8 100644 --- a/v5/apf_interpreter.c +++ b/v5/apf_interpreter.c @@ -770,11 +770,13 @@ static int do_apf_run(apf_context* ctx) { case JGT_OPCODE: case JLT_OPCODE: case JSET_OPCODE: { + /* with len_field == 0, we have imm == 0 and thus a jmp +0, ie. a no-op */ + if (len_field == 0) break; /* Load second immediate field. */ u32 cmp_imm = 0; if (reg_num == 1) { cmp_imm = ctx->R[1]; - } else if (len_field != 0) { + } else { u32 cmp_imm_len = 1 << (len_field - 1); cmp_imm = decode_imm(ctx, cmp_imm_len); /* 2nd imm, at worst 8 bytes past prog_len */ } -- cgit v1.2.3