From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id AF6323858C5E for ; Mon, 24 Jul 2023 14:01:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AF6323858C5E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36O6mlBb026672 for ; Mon, 24 Jul 2023 14:01:55 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=ishxgWjGS8tt6cs/zhpa++mQF8gmY1MfeMxnSxZjW3M=; b=ID7s2NDu5yW4hYML6ufd8rYLNrAc0X3R3WJaBgbHTBFIClNg4RCCo+Vaz5GCirpP5RSk eik4soqO1/2K9K54w4eqSMHYWutYWZEp2tAVQnU/kVTKdBTK4ZRwBByN98Rx1NJl4vQG xJbgiT0C/Q3l8hDFiVpnUSFsRL7AhaYOgEn3+R9H6+QCBGSI/jpc2CUB5B2kZ535UXGh kMxWAQcj7UwPNewJsA+U8Rbb0YZjh1dvkld/MC8GGJTc3hwxsQBGebbEi5rMwQy+KIEo jzIkT+mk15f5CFg84+1AZn7hW85MrnjrnKbQi8ALsvg5tubUumFQ0ud99RhaNpPq+Oue SA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s05w3jtxk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 24 Jul 2023 14:01:54 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 36OCJOF0028691 for ; Mon, 24 Jul 2023 14:01:53 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2168.outbound.protection.outlook.com [104.47.59.168]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3s05j3q9ut-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 24 Jul 2023 14:01:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FEqxXQsd7GhUHkHVMRLRimgN/u44FZuFzpIlq9inUDiIqNZgcYXxV88OctFO3siQBhAd9IOqYbJq/Dnrq+h27WV8J1fdfVXRh3LX42AOqnVzGtioCS/XnGNms2yPkF6x2EzOmME/Io5Yf/o8WQbR4rqCdV49aX/oReCPjkd1iAreaj/fdthkAKP1YnrQtc4490/A4fJWRsWkNMItj5BkpGrKZROuP0kQXsgVPCaqMLQm/MZod/IOvZpvKruDv67dZr6dijNDTVb77/KtBwGudgn/brNRQXOfY8K9wrby0xyEZe8zm42qVGdlZfeOYWTFYqpLdjmZ9Z2h/ZiQejOe2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ishxgWjGS8tt6cs/zhpa++mQF8gmY1MfeMxnSxZjW3M=; b=KiZKb+ZgKLae4jtTG6eZiNdKnPVTsXiz4JhVqUJZzSM7iDHHvz+iosOQIedWsxuEixIGIgl17J18AvAXqq92kFdYF7jk+wCf6wXEcaPKBGc7rzHv5mE35AY952zR6Dog8tBidGX7vTlwntlrAIdU0LX0RThuzAnHAT/4+wgcIiJPqPj9qY8ZrWgUaMgPyYQf7etyjk21QuF0gL9tlntPTVHqooXRb2oM3wHjTIw2LX+d7EwqqB4KUA4vMpzJ3eKeSzBnC3eLTEIkK8KZB+a8xLYKplzJTF2YwXwIoGM0TJfE83gbbYWGdN7sOt6Wi9GfRrQ83BiTxG0HNweim6vQ0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ishxgWjGS8tt6cs/zhpa++mQF8gmY1MfeMxnSxZjW3M=; b=amohvSuo2kvWIxTQ14p99Iz70pdsQqCqKWeve84QmrQaEBY16m8WDHOyKTU6F08AZR7qIwmkm26NVRrCiWzEJmfDU3RuxFQYFYn/aRtAdsByhsZnohIWRx0eQlWQwQ27B+8JS4+E1CIIoJpAFqVpNBeX0JM95suZ2cTU40Wk2NI= Received: from BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by PH7PR10MB6275.namprd10.prod.outlook.com (2603:10b6:510:211::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 14:01:50 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::4d0c:9857:9b42:2f6c]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::4d0c:9857:9b42:2f6c%4]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 14:01:50 +0000 From: "Jose E. Marchesi" To: gcc-patches@gcc.gnu.org Subject: [COMMITTED] bpf: sdiv/smod are now part of BPF V4 Date: Mon, 24 Jul 2023 16:01:43 +0200 Message-Id: <20230724140143.17350-1-jose.marchesi@oracle.com> X-Mailer: git-send-email 2.30.2 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: LO3P123CA0030.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:388::13) To BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR10MB2888:EE_|PH7PR10MB6275:EE_ X-MS-Office365-Filtering-Correlation-Id: df23141d-030f-4359-0d93-08db8c4e86e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kx3wH60GG8g/G/EUDdoX0MC7yZXcKfavyZQQ57+/8u35ipADno8qbGIbQJZCdhnFUzgWWDjzZFwKySML+4qFoo0ymKm06XqJoucjDMRLvluOs7fF7ce2C5DZCoHP62GtyixZoHYvu0oHiXggVjSpCTqMc/FAZLgT2ALl965Yt58Hx/fsthnTKS9gEPnN+WwiHN3K2S8HNw10pivbmeaXttXcfVVgjdYlRQ7UJ3vf3NmfnNhz6b6KgBRD93X5THOaGm6b1bj6TPCn8a2LPhGsM3Vx9yi9+iJEIc1oH7FFAt98KH1715xBFLlMOpW1lg9fkToexHMhxI1u7s34t5GMTkil2SZd4pcpP29BaESA2+/h+ZN9MPrHMRsmDonzSMKsvi2+U3EDFnjmh6refzdmMTIuLD9XIf5sk7SA2tqhngs8QybI5C0KyfVnDeayeNSflsu5OtAE5CgPjK61v0rlT9YcUpmKuoVuZQF4+dJ4yLaCVlPqpc23e1l+H+eNEqypZB0MwfVLr5MgOhSqAXt6YrKlIjj0Qim75xZyCeDVcus= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB2888.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(136003)(376002)(366004)(396003)(39860400002)(451199021)(84970400001)(6512007)(6486002)(478600001)(6666004)(83380400001)(36756003)(86362001)(2906002)(186003)(2616005)(6506007)(1076003)(26005)(38100700002)(6916009)(66556008)(41300700001)(8676002)(8936002)(66476007)(66946007)(316002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xdnagOCLFC9cpvpgNelc8A4v0sjEqDA2lrReL9XEX+ayPnWw3Az8nVEg8gCe?= =?us-ascii?Q?g78Vc9pRxCDyTz0j/dFCRYCfP5VlnviUD3ZphnhuNYc2mmMDGk4q1EW6Xkd4?= =?us-ascii?Q?E0Whr6WHkiS0CgwEmZXbunJuYWrEx6QpFEVG6pzKAgz9egSgaQzW5OPQQFzd?= =?us-ascii?Q?xvVNzF8WRT8HRMgwu2wLLS/JUHUvLA2oTGvyfl1XkVSAB6kqbYPHGPP+SJPN?= =?us-ascii?Q?MWFcX23iC5VLeM81/2Lmce5/1ZfPArgFZKsvWaG7lpL81kNncrZDPfC/k2oA?= =?us-ascii?Q?7I+cSDe8jKy1sAsdNBreaILogEHqG1/QmkAFM9BYoB723WVD4htECzzBXITs?= =?us-ascii?Q?A6PwTtZ716Qs79LjIvZ2joaL6K8gJldl/bzPvzS9hsXaEPAhrl3INJ5P39CS?= =?us-ascii?Q?wJiiPpPo/E8pPJSO4H+ZMeRMb0HSk29NvcjGGaHTH4fSYtDgwNUXDZ6QUKH6?= =?us-ascii?Q?lzFry7IC5R/XUfO5onX88Qu8tWPvHm3iPav/VBtTWUkOYRWv7rEYGj4xVGiv?= =?us-ascii?Q?Gp6t+yR8zF3g6dxjPh3DT1SXnSbKk+c5TLtu6SHw+2qaoJ2xf+sOVOo3UrmE?= =?us-ascii?Q?dFLpSerdRdwwrDEmhUINAvKFF2mlsvKECs+XSMPEfYosudLQqabJXyL4WrdI?= =?us-ascii?Q?mEvh7PrwfXCYzfULKQ86t/IjFP7JUSydBoS/KNwK8Q3diQjDhqwEybqjZvDV?= =?us-ascii?Q?InWko9tSTU80hiXqGT3W4hSxKG/dKtYKTkmi5CG2jCjCfILtCESjJAr2ZmHv?= =?us-ascii?Q?pRWp/KsRIBK5io0rt74eXVL4I5WAxq0yb0oftsA6li7/JiQoRNCk4mrj16d6?= =?us-ascii?Q?THpcqQ+iE/gC1zB4Sp3GHi0oGU7ZLyrDSvZviY0U00KB6tJivgbzavcUKANV?= =?us-ascii?Q?V5TlGQnuOg1xZVqvH5yTbUjyW0EXW0g7xX0Ygd1nVdUbWem+LjJJo8tqd1aw?= =?us-ascii?Q?Bq5ubZA6WLdJeQitI+85vasFESdhFk3dNsMdwi/G4GhXIc//9Y+s+jQthy+a?= =?us-ascii?Q?lmdbyjXE+cXsJjOzU7JqC4ifX3pDpv3BSAzh7jwR+19TlRxm78rJfcit9uqh?= =?us-ascii?Q?40KOtkezKokfMjX9jpO3Z/eCDKqWLDLEw4Pbk8Bg7IRE/TOoHwkwCg4IWo+w?= =?us-ascii?Q?6kt6DA5KaNfvdIEM9aVqn5XW6w7dFLZp9+0LN6MG3GR41CrNnVwzDYU+fxwD?= =?us-ascii?Q?olx+ccdafGJBa+PFORlKufMQrYpXSLHC7tHrL/G5AuUdcdniKkqmGzrCkz8g?= =?us-ascii?Q?41n/dBtPIRWnPyh6MwtiQjnKVRvy6/1VHZw5Hl+7DW6IekBOx1V8xAoRbJx2?= =?us-ascii?Q?jPEbtBqaOWWL6KYiEff7S/c+t/G7UczMxn87IOlomyWvf5X2xluw3PnVn0ah?= =?us-ascii?Q?2zfKHnMcWl86csCGJUN1/9L/QuRwaG61e9fcqN3Ra+f++hoJagAnwrBheSYr?= =?us-ascii?Q?JbaC9uFYhmSSJ6K4Cjg0GbA747U796bz0HOlN1YD4kBWUHB+l5RSgReAnWTV?= =?us-ascii?Q?b3nu3rRUgIIwwxoW7qlou6xwGe6g7ElvgXecQiyobgdvjCtJ4czk0i/IwF6X?= =?us-ascii?Q?I6nsmyoPoYZdC+Z2L/y+tHDF2x87VLS1LBTppl/xcv0bhMR0A2t1YVuKVRC4?= =?us-ascii?Q?Gw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: CCIOwFTh0u0RDku8mm1X+z2eoPLiBnywfMiAAKYj0Qxmyjb5j0C2p85XMp0MDK2kYy8yz2bcVsSIRlkssaE0M3Zb/b9Oudn/VC0V52ugp6Rfjv54QZh+RkK/kd+vLBbggvYy8cITmHm3lj8gKArfSHcc0GazDAzvZMTVz1iGTv4gA2C7Fb6Vg6YmbLDRsnanwQ8TzCDDkT2+qxNXkNB5UKXAvh9SByKNYxNjTO/TnfHE8qN18h4JpCzOZHGOPrQ+eU3jz0XZixGtyLaejk6EICWTZ7PGTeJLAxtsNpENSz79y0C+1hWygNaxoAChibP3Ca4O5B2xjsU4/cUQdQD/ko8lb+MxlccOL965MW5OasEaoWNRcB0D7zRDUMad0qHD45dekpPmxyZUdtA0wGSf7xJllCwsbJLvPK+norcUrDsMg03H2jYb4O78np4DYYWIT0td4BaeG8c9yubd98UewYXMAdQzvhikqJaDN44F/jEheLUsKN3+F1cG0cJr/HHYNlFa3wCak8aW9hFa3qfDT+Tj3tF+rQScPJ+mtiSlAKh3IkgB9QiWQNV8E27NXOh4qDmHszt/eS1zB6NlIb5nM+7BCHNoYxZgR97j5P9vxiTHB/H9yqF76C9XgIHtUN3pbbLQ9syE8t5r75TAywX5eGefKAYgbOfAhSNvBgXGt8FwTEgZWOC/GwHxL+V+eu/W9F5Kc3OzkCv0iIbbLqLIF1xbdnQGjkXGyCkBLfsluY5ef0wvXbR0DYQqztxD+mvh X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: df23141d-030f-4359-0d93-08db8c4e86e4 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 14:01:50.3920 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: twYMLepijE5Mtrss9fxuGf7sLZMuBHKl/LAuFrnUjpjxklI0H4NdRjrUJjRkQ9p0WaIpjrf84Lbn1qL50ObxvUc2AAKAMcAF1oqLS2fzrg4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6275 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_10,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240124 X-Proofpoint-GUID: VGjF12qcQRVmEpG6z_824xgxnUeQpVUd X-Proofpoint-ORIG-GUID: VGjF12qcQRVmEpG6z_824xgxnUeQpVUd X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_NUMSUBJECT,KAM_SHORT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: We used to support signed division and signed modulus instructions in the XBPF GCC-specific extensions to BPF. However, BPF catched up by adding these instructions in the V4 of the ISA. This patch changes GCC in order to use sdiv/smod instructions when -mcpu=v4 or higher. The testsuite and the manual have been updated accordingly. Tested in bpf-unknown-none. gcc/ChangeLog PR target/110783 * config/bpf/bpf.opt: New command-line option -msdiv. * config/bpf/bpf.md: Conditionalize sdiv/smod on bpf_has_sdiv. * config/bpf/bpf.cc (bpf_option_override): Initialize bpf_has_sdiv. * doc/invoke.texi (eBPF Options): Document -msdiv. gcc/testsuite/ChangeLog PR target/110783 * gcc.target/bpf/xbpf-sdiv-1.c: Renamed to sdiv-1.c * gcc.target/bpf/xbpf-smod-1.c: Renamed to smod-1.c * gcc.target/bpf/sdiv-1.c: Renamed from xbpf-sdiv-1.c, use -mcpu=v4. * gcc.target/bpf/smod-1.c: Renamed from xbpf-smod-1.c, use -mcpu=v4. * gcc.target/bpf/diag-sdiv.c: Use -mcpu=v3. * gcc.target/bpf/diag-smod.c: Likewise. --- gcc/config/bpf/bpf.cc | 3 +++ gcc/config/bpf/bpf.md | 16 ++++++++-------- gcc/config/bpf/bpf.opt | 4 ++++ gcc/doc/invoke.texi | 5 +++++ gcc/testsuite/gcc.target/bpf/diag-sdiv.c | 2 +- gcc/testsuite/gcc.target/bpf/diag-smod.c | 2 +- .../gcc.target/bpf/{xbpf-sdiv-1.c => sdiv-1.c} | 2 +- .../gcc.target/bpf/{xbpf-smod-1.c => smod-1.c} | 2 +- 8 files changed, 24 insertions(+), 12 deletions(-) rename gcc/testsuite/gcc.target/bpf/{xbpf-sdiv-1.c => sdiv-1.c} (86%) rename gcc/testsuite/gcc.target/bpf/{xbpf-smod-1.c => smod-1.c} (86%) diff --git a/gcc/config/bpf/bpf.cc b/gcc/config/bpf/bpf.cc index 18d3b5f14d6..55b6927a62f 100644 --- a/gcc/config/bpf/bpf.cc +++ b/gcc/config/bpf/bpf.cc @@ -256,6 +256,9 @@ bpf_option_override (void) if (bpf_has_bswap == -1) bpf_has_bswap = (bpf_isa >= ISA_V4); + if (bpf_has_sdiv == -1) + bpf_has_sdiv = (bpf_isa >= ISA_V4); + /* Disable -fstack-protector as it is not supported in BPF. */ if (flag_stack_protect) { diff --git a/gcc/config/bpf/bpf.md b/gcc/config/bpf/bpf.md index 81e2268c400..3e2d760fbe4 100644 --- a/gcc/config/bpf/bpf.md +++ b/gcc/config/bpf/bpf.md @@ -167,8 +167,8 @@ (define_insn "*mulsidi3_zeroextend" ;;; Division -;; Note that eBPF doesn't provide instructions for signed integer -;; division. +;; Note that eBPF <= V3 doesn't provide instructions for signed +;; integer division. (define_insn "udiv3" [(set (match_operand:AM 0 "register_operand" "=r,r") @@ -178,20 +178,20 @@ (define_insn "udiv3" "{div\t%0,%2|%w0 /= %w2}" [(set_attr "type" "")]) -;; However, xBPF does provide a signed division operator, sdiv. +;; However, BPF V4 does provide a signed division operator, sdiv. (define_insn "div3" [(set (match_operand:AM 0 "register_operand" "=r,r") (div:AM (match_operand:AM 1 "register_operand" " 0,0") (match_operand:AM 2 "reg_or_imm_operand" "r,I")))] - "TARGET_XBPF" + "bpf_has_sdiv" "{sdiv\t%0,%2|%w0 s/= %w2}" [(set_attr "type" "")]) ;;; Modulus -;; Note that eBPF doesn't provide instructions for signed integer -;; remainder. +;; Note that eBPF <= V3 doesn't provide instructions for signed +;; integer remainder. (define_insn "umod3" [(set (match_operand:AM 0 "register_operand" "=r,r") @@ -201,13 +201,13 @@ (define_insn "umod3" "{mod\t%0,%2|%w0 %%= %w2}" [(set_attr "type" "")]) -;; Again, xBPF provides a signed version, smod. +;; However, BPF V4 does provide a signed modulus operator, smod. (define_insn "mod3" [(set (match_operand:AM 0 "register_operand" "=r,r") (mod:AM (match_operand:AM 1 "register_operand" " 0,0") (match_operand:AM 2 "reg_or_imm_operand" "r,I")))] - "TARGET_XBPF" + "bpf_has_sdiv" "{smod\t%0,%2|%w0 s%%= %w2}" [(set_attr "type" "")]) diff --git a/gcc/config/bpf/bpf.opt b/gcc/config/bpf/bpf.opt index 3bf9033279b..bd35f8dbd0c 100644 --- a/gcc/config/bpf/bpf.opt +++ b/gcc/config/bpf/bpf.opt @@ -63,6 +63,10 @@ mbswap Target Var(bpf_has_bswap) Init(-1) Enable byte swap instructions. +msdiv +Target Var(bpf_has_sdiv) Init(-1) +Enable signed division and modulus instructions. + mcpu= Target RejectNegative Joined Var(bpf_isa) Enum(bpf_isa) Init(ISA_V4) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index a977a34db42..fa765d5a0dd 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -24711,6 +24711,11 @@ Enable 32-bit ALU instructions. Enabled for CPU v3 and above. @item -mbswap Enable byte swap instructions. Enabled for CPU v4 and above. +@opindex msdiv +@item -msdiv +Enable signed division and modulus instructions. Enabled for CPU v4 +and above. + @opindex mcpu @item -mcpu=@var{version} This specifies which version of the eBPF ISA to target. Newer versions diff --git a/gcc/testsuite/gcc.target/bpf/diag-sdiv.c b/gcc/testsuite/gcc.target/bpf/diag-sdiv.c index db0c494a789..c48bbf03df9 100644 --- a/gcc/testsuite/gcc.target/bpf/diag-sdiv.c +++ b/gcc/testsuite/gcc.target/bpf/diag-sdiv.c @@ -1,6 +1,6 @@ /* Verify signed division does not produce 'sdiv' insn in eBPF. */ /* { dg-do compile } */ -/* { dg-options "-O0" } */ +/* { dg-options "-O0 -mcpu=v3" } */ void foo () diff --git a/gcc/testsuite/gcc.target/bpf/diag-smod.c b/gcc/testsuite/gcc.target/bpf/diag-smod.c index 20234ee39cc..d3df308217f 100644 --- a/gcc/testsuite/gcc.target/bpf/diag-smod.c +++ b/gcc/testsuite/gcc.target/bpf/diag-smod.c @@ -1,6 +1,6 @@ /* Verify signed modulo does not produce 'smod' insn in eBPF. */ /* { dg-do compile } */ -/* { dg-options "-O0" } */ +/* { dg-options "-O0 -mcpu=v3" } */ void foo () diff --git a/gcc/testsuite/gcc.target/bpf/xbpf-sdiv-1.c b/gcc/testsuite/gcc.target/bpf/sdiv-1.c similarity index 86% rename from gcc/testsuite/gcc.target/bpf/xbpf-sdiv-1.c rename to gcc/testsuite/gcc.target/bpf/sdiv-1.c index f6c5c9e9f1c..ad75b044e1d 100644 --- a/gcc/testsuite/gcc.target/bpf/xbpf-sdiv-1.c +++ b/gcc/testsuite/gcc.target/bpf/sdiv-1.c @@ -1,6 +1,6 @@ /* Verify that sdiv instruction is used for xBPF. */ /* { dg-do compile } */ -/* { dg-options "-O0 -mxbpf" } */ +/* { dg-options "-O0 -mcpu=v4" } */ void foo () diff --git a/gcc/testsuite/gcc.target/bpf/xbpf-smod-1.c b/gcc/testsuite/gcc.target/bpf/smod-1.c similarity index 86% rename from gcc/testsuite/gcc.target/bpf/xbpf-smod-1.c rename to gcc/testsuite/gcc.target/bpf/smod-1.c index b3e5816b5cf..c5fc6f7d4b2 100644 --- a/gcc/testsuite/gcc.target/bpf/xbpf-smod-1.c +++ b/gcc/testsuite/gcc.target/bpf/smod-1.c @@ -1,6 +1,6 @@ /* Verify that smod instruction is used for xBPF. */ /* { dg-do compile } */ -/* { dg-options "-O0 -mxbpf" } */ +/* { dg-options "-O0 -mcpu=v4" } */ void foo () -- 2.30.2