From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 714603B19D9 for ; Mon, 10 Aug 2026 10:06:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786356371; cv=none; b=nCJ6ibqsOEVKl8X1UX40PY1S2rkaXcKOn3sv2Es26m3FnTH+4t4fkgpUOgMkekfz9Sjg9PNv/TF28pmyGYwsJtEOtS/hPPsKfjR4RJEj0GEIT3P3g0cRPWc+kWwDwnzC8OieNhzwVzaFkHIwxYZrHFjsxjD6AluLsIoc1348w1Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786356371; c=relaxed/simple; bh=aQHpiRjl0icNkVpp1P+G7C74NZmJcENImdYIpsFWJNU=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=XApSoycr5AEE6uetzrAO/NkM0WVjYY+fhalMAWe6RXgGNty2kwbEbDLRxYjxCVDOCtXl3SFaXsm6zkiFjj6/esTBCafJM/6wSLY1JS8OHdXJWnbaFnwNgnVoPpA0D5qTjE1LXEFkMbO8QsMPldpdIwzHmi9MICPac5K4k/F9EV0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bpDn/PaX; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bpDn/PaX" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2ce87c7e3bbso18433375ad.1 for ; Mon, 10 Aug 2026 03:06:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786356370; x=1786961170; darn=vger.kernel.org; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=0x+AUpFzadUQI8quUp3DhqqhtTFZGj3um66afBtdHw4=; b=bpDn/PaXL+2j62gWN6HeY5Z3gZgX4t15Ax1wio6D3S5HGjXm5E6sdUQ2AKOCMPZBcl Nmnf9pNx3oWjXKXLAEXewr37vgtGnmiVuQAzfpjhaQkFg399uDluqUix4Hq5FqpcYoi+ JyvxcO/uXoK/sMz16hV4PHVmD630f1jdKTj2ty6ZVJ0kJ/UTrY7Kmvr8FlRYTwxF08by +AmJOuU0chCYDNVNBSs2thtOQbJpXwkkc8FjnkVRCpAuvD0J+aLI1cDq+7fm5UPyKNZC wY3PU168g3D21zymYspurrt3tFrn300E6VmE0YZSsnqk0NHCGXB64pg0gZpaQhOsuYxH YQLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786356370; x=1786961170; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=0x+AUpFzadUQI8quUp3DhqqhtTFZGj3um66afBtdHw4=; b=GOPc8FltSqnAOg7W8yrC29u+DdQ4pUSEY9JDB90q2leg5WPh01PU7AZuWfoTBtIa+f WIjXhLUfSqtxPHeAu1bXPEfAoXX0ux8BxC5SYtvbz1dpHKErEiHrxs+GlCHxPiKIhK8O 769m4M/QhuUz1PQxddVpg6+V4U7j2JFWaqCOBj8Ipygi30RPTTWCXpz9aFwwv+VpEsPs iV3qzuP90wqyTa6+dLFNqVNCQQq7iMmEJA3ow3OPJvCkNiLHLZZLHT0cy5mpoEREiK13 +QEjc9LjGd6fk953RcDnNvhuM/+CSiEBpbZL+OZfBNZiLXcu3pesmM9HL49qw354CeGo GMUA== X-Forwarded-Encrypted: i=1; AHgh+Rr5XwZPdcmOhQAUwmkqTsgnhXyNtx5snxt0NGVvAKG+8nroBCtVfIu58i2I42QqGWTQBzQhwwqbKcjJMSk=@vger.kernel.org X-Gm-Message-State: AOJu0YyM5hYXGJcpjmx52SoM5SihOHcStFKDD8D0FDWVRBWGYue5Av4Q gybqgvKF5CkiOgEynTvdOZuSOY3rWkabaEQ2yVI1nO4hVrv+yebcmWIU X-Gm-Gg: AR+sD10DlMwznMszA6lOcCFguAw929H35uePg3e9lcd0wMX4ZJLLd/YPkODKDat9r78 lfjorVCTy0vZepDva6FNMN5ym3rayV1S9jEGaOlAjMYBrKEOV17E0Pdd883DR+EdHrl5+5qUAZg 9GIBxnvAbZAI4oZmVPlLlNZdhmfS8EM2+XpGO18QelgrbxA1W1Ze1OVBpaeFB/Rl65u3fhzOGFF 0URfqxrpmkzYsqGh4cUeGGVMBoTjGv7nAMM6HHyrEI45FV3mP3h839CNu9b9XQlPIJrWFP+Avgh MfWA6unMWeA013RKMwZEcH+RFhteekXobhjDu+DHul9u97YkweDaOv5GAliRAxLIg2a5zveP/Qo mkN35H8AW9f216NqNz50vMs16evr058/OSsXBFE2omCNpQQvnDJT3gbV8aYP4DHfyzLMGxBmNRn zftlWZGhrfCgz9xfAOe7rvc42y59eL67XCuDTsKeyFJaYcfDNXMBtP3UOIhb8BZg== X-Received: by 2002:a17:90b:528c:b0:380:9f17:6df3 with SMTP id 98e67ed59e1d1-3903c5448dcmr43485347a91.4.1786356369796; Mon, 10 Aug 2026 03:06:09 -0700 (PDT) Received: from google.com ([103.137.210.175]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-39085de9f6asm14176805a91.7.2026.08.10.03.06.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 03:06:09 -0700 (PDT) Date: Mon, 10 Aug 2026 18:05:58 +0800 From: Kuan-Wei Chiu To: Andreas Schwab Cc: geert@linux-m68k.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, eddyz87@gmail.com, memxor@gmail.com, martin.lau@linux.dev, song@kernel.org, yonghong.song@linux.dev, jolsa@kernel.org, jserv@ccns.ncku.edu.tw, eleanor15x@gmail.com, marscheng@google.com, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org, bpf@vger.kernel.org, Daniel Palmer Subject: Re: [PATCH bpf-next v4 RESEND] m68k, bpf: Add initial BPF JIT compiler support Message-ID: References: <20260729002737.1008358-1-visitorckw@gmail.com> <871pclresq.fsf@igel.home> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <871pclresq.fsf@igel.home> Hi Andreas, On Wed, Jul 29, 2026 at 05:33:41PM +0200, Andreas Schwab wrote: > On Jul 29 2026, Kuan-Wei Chiu wrote: > > > +static void emit_alu32_k(const struct bpf_insn *insn, struct jit_ctx *ctx) > > +{ > > + const s8 *dst = bpf2m68k[insn->dst_reg]; > > + const s8 *tmp1 = bpf2m68k[TMP_REG_1]; > > + const s8 *tmp2 = bpf2m68k[TMP_REG_2]; > > + s8 d_reg; > > + > > + d_reg = bpf_get_reg32(dst[1], tmp1[1], ctx); > > + > > + switch (BPF_OP(insn->code)) { > > + case BPF_MOV: > > + emit_16(ctx, 0x203c | (d_reg << 9)); /* move.l #imm, dst */ > > + emit_32(ctx, insn->imm); > > + break; > > + case BPF_ADD: > > + emit_16(ctx, 0x0680 | d_reg); /* addi.l #imm, dst */ > > + emit_32(ctx, insn->imm); > > + break; > > + case BPF_SUB: > > + emit_16(ctx, 0x0480 | d_reg); /* subi.l #imm, dst */ > > + emit_32(ctx, insn->imm); > > + break; > > + case BPF_AND: > > + emit_16(ctx, 0x0280 | d_reg); /* andi.l #imm, dst */ > > + emit_32(ctx, insn->imm); > > + break; > > + case BPF_OR: > > + emit_16(ctx, 0x0080 | d_reg); /* ori.l #imm, dst */ > > + emit_32(ctx, insn->imm); > > + break; > > + case BPF_XOR: > > + emit_16(ctx, 0x0a80 | d_reg); /* eori.l #imm, dst */ > > + emit_32(ctx, insn->imm); > > + break; > > + case BPF_LSH: > > + case BPF_RSH: > > + case BPF_ARSH: > > + emit_16(ctx, 0x203c | (tmp2[1] << 9)); /* move.l #imm, count */ > > + emit_32(ctx, insn->imm & 0x1f); > > That can be moveq. Also, for the other cases, if imm is in the range of > moveq it is worthwhile to load it into a temporary register. > Thanks for the suggestions. I will include these optimizations in v5. Regards, Kuan-Wei