Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp23166rdb; Thu, 7 Sep 2023 12:17:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGiMYZCiY34g6bIyJEf1rLGJby9bczRKss1YE8pOgW/4RKxhfiwxphQvhkjFjC0Rf2ThbUN X-Received: by 2002:a2e:b4b8:0:b0:2bc:d505:2bf3 with SMTP id q24-20020a2eb4b8000000b002bcd5052bf3mr115900ljm.1.1694114232680; Thu, 07 Sep 2023 12:17:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694114232; cv=none; d=google.com; s=arc-20160816; b=FvE2nY+Q6oM9HRJYYtWcnk5xXg6tgmogfY8zAnm7LDs8m89qwdPDqNS7+dHsiSxnqT Jc5F2/uc4piErh5RFZnpVKZKn5IhNo4jk0HLsxTywfjURkcBB/qNxmDzZul4QupLPke/ I8WDQM3pbB7FmQTjRMs53SZhCDDvQ6idiuIgOEsyTTIiMFnVaHIDQjDmAtrddPfRSztr n/OQer+BMACtH4Jye5Nh1LQheB2DOWCfpW2Bvoua6iWSpF/4BNGijWZdSlAEManS7JZb PRnq9Gsa5dakx3SI939FuVlSDAbFvAyF/SokOfYZslptckYB9fYY5YW79EwITH2Tas1n vtKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=HP99QBggKxWC0MQc67tYwL7MaK1GG61WU4HuRZHkIzI=; fh=P+MIALQwIpQ16nh0bUaGvsIFHpQZuRWC1S8x0X8pZrs=; b=VWeWZhK/H7cL2slXJbZoNU1eKCyrV8Tob8JmspA6bn6D2bFCmI8dUIbeOX9IUQ8mvE KSEmsumY509MjiANAUJms1tTMUaQb5tV8DnMF6JOoN7RfqNOw+SWyQDYT0DJ2vXXL8Tf rC6y95v4qk/AB03NYraBHx4smHXkS+dO7y3NwVFfA892kg3j2a1JwJmhp3UTkCz8QXod SqBuhe1QxHQEyiZwzBRkC9AtnGkT2knNDUkSkrnsTWzyFyRylIIDt0udqPwhkTwr76gS M4kzGOMXh40m3oEM1K6ZvT+xS3tNcViEx/NACrALSIZD9d2zJk5FJpwoqqtzZXUX+QsM s/5A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail (test mode) header.i=@armlinux.org.uk header.s=pandora-2019 header.b=muHwqQU5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=armlinux.org.uk Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l22-20020a170906a41600b00992a0f83dfcsi21424ejz.471.2023.09.07.12.16.19; Thu, 07 Sep 2023 12:17:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail (test mode) header.i=@armlinux.org.uk header.s=pandora-2019 header.b=muHwqQU5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=armlinux.org.uk Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235542AbjIGQWV (ORCPT + 99 others); Thu, 7 Sep 2023 12:22:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46812 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241382AbjIGQVe (ORCPT ); Thu, 7 Sep 2023 12:21:34 -0400 Received: from pandora.armlinux.org.uk (unknown [IPv6:2001:4d48:ad52:32c8:5054:ff:fe00:142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8D2517A8D; Thu, 7 Sep 2023 09:18:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=HP99QBggKxWC0MQc67tYwL7MaK1GG61WU4HuRZHkIzI=; b=muHwqQU5vUMmckKwuGxOBCmlU3 Uv3bB7U+SixKIxPgm/TYAeL0J3O1bFS+U8XG3zHT7+Q+qVh0Q2aJ2cXukVxZeNc1jyvuc0SIbV70t w+ySfFmlUKTHr5OWhCDucIeDJB6wajQdBvZ0aslcCaSmfFm86OAS9ICkipyJi8gqq+qFjFHugyisA 73LTIGMxjGZWkLEnDvHgGVpQOzPLZr6su0BOjeJbth0DKL2yDlmIv2WVveTtWCLcchSu6/G1OZ+9Y Y782YEnxUjvmPog6Z6CkwZv0YmiTCIVs40iK6YemSt8W/y1JR8HIxIDSEJPgYPrvSt5zB2rLvq0c9 dz3xtGyA==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:42484) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1qeAcR-0001dd-03; Thu, 07 Sep 2023 09:44:07 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1qeAcQ-0005h0-Hr; Thu, 07 Sep 2023 09:44:06 +0100 Date: Thu, 7 Sep 2023 09:44:06 +0100 From: "Russell King (Oracle)" To: Puranjay Mohan Cc: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Shubham Bansal , Mykola Lysenko , Shuah Khan , bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH bpf-next v2 2/8] arm32, bpf: add support for sign-extension load instruction Message-ID: References: <20230906183320.1959008-1-puranjay12@gmail.com> <20230906183320.1959008-3-puranjay12@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230906183320.1959008-3-puranjay12@gmail.com> Sender: Russell King (Oracle) X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,RDNS_NONE, SPF_HELO_NONE,SPF_NONE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 06, 2023 at 06:33:14PM +0000, Puranjay Mohan wrote: > The cpuv4 added the support of an instruction that is similar to load > but also sign-extends the result after the load. > > BPF_MEMSX | | BPF_LDX means dst = *(signed size *) (src + offset) > here can be one of BPF_B, BPF_H, BPF_W. > > ARM32 has instructions to load a byte or a half word with sign > extension into a 32bit register. As the JIT uses two 32 bit registers > to simulate a 64-bit BPF register, an extra instruction is emitted to > sign-extent the result up to the second register. > > Signed-off-by: Puranjay Mohan Reviewed-by: Russell King (Oracle) but see below... Thanks! > +static inline void emit_ldsx_r(const s8 dst[], const s8 src, > + s16 off, struct jit_ctx *ctx, const u8 sz){ > + const s8 *tmp = bpf2a32[TMP_REG_1]; > + const s8 *rd = is_stacked(dst_lo) ? tmp : dst; > + s8 rm = src; > + int add_off; > + > + if (!is_ldst_imm8(off, sz)) { I think a comment here would be useful: /* offset does not fit in the load/store immediate, * construct an ADD instruction to apply the offset. */ otherwise I'm sure someone will question why we aren't handling the zero case below... since zero will fit in the load/store immediate. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!