From patchwork Thu May 11 14:13:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jose E. Marchesi" X-Patchwork-Id: 92629 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:6358:3046:b0:115:7a1d:dabb with SMTP id p6csp4468524rwl; Thu, 11 May 2023 07:14:22 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7imYzP6hqXZ2IWcoZ6Hm1gFbc/3zz3sWUbOlZyIK3UmiXvgNj9TLvPtg9Zz4IOPMiqd9Cs X-Received: by 2002:a05:6402:1358:b0:50d:f9b3:444d with SMTP id y24-20020a056402135800b0050df9b3444dmr1659558edw.21.1683814462523; Thu, 11 May 2023 07:14:22 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id i22-20020a50fc16000000b0050bfb2a51c5si5034146edr.395.2023.05.11.07.14.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 May 2023 07:14:22 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=PRKPlsn0; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DF1013856261 for ; Thu, 11 May 2023 14:14:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DF1013856261 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1683814455; bh=v1dTyp99SwGG7TMMlZfWjO791Co3U3+OI+RGrQrEFiU=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=PRKPlsn00D1HLX2MniQkWunezC/qJY9Nb4fZIL4+G7Pmhw60JuPqTG5HY31M02y3t F66yvTljT8945EEylE84M7lL7sQt82X3gP/Bp7AcDslEoQ3YbaJBdP5OJ3qGXyXFgo jAQ8NfnlPj5ZRK3RQ5x4gRNDjQKiISUGAQCNzwEU= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id E67723857735 for ; Thu, 11 May 2023 14:14:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E67723857735 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34BDwk0u014337 for ; Thu, 11 May 2023 14:14:04 GMT Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3qf776q52r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 May 2023 14:14:04 +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 34BDXWiD024177 for ; Thu, 11 May 2023 14:14:03 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3qf7y6sbny-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 May 2023 14:14:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QyEGzxCPWOgIoHpWn/K017t5RTs+A17zAPf+PpDbcYl0E9NMwoPgvXoOX+kZjIik3qpexWTtf8E6e/GA9n3BuC3qwyKBDrKrkc/lod/BCbu5RneSNiY/vvVxsxROnlDFFwFrEDWfplCC0d/77hJjYw2tn1JN4cdvdrURwp0+AYjKFTwbg8cJg6gMQFmXkj3pAtsHbQuCEAXXSVUzDj/9SKtnOaHIxJWUbro9JmmPPfZX3fiGU0RHsWVaYW+LQDrxfxHt5fe97wmequi16T5D1FzKBAsHGwGjvXedozQ1/aj/WUODu8N6moVHdE5/YzFl3OPD+r1MPagB7N9KGUL/cQ== 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=v1dTyp99SwGG7TMMlZfWjO791Co3U3+OI+RGrQrEFiU=; b=hJQE4CgQ3niVXZXKEMd0SPy3h+rR7scsvD0WizT34dfFg9cR4YvuuV6AeE9fxVCTtCTycM3xEWKBB3UtSfvpVvhwX+bWFTlKJLzWaR8vp1ZSOohV+Syii4hwxaupD9Urd95lFNabS414BNIWa8WnbjkHHWxnNuEW37DWQI14ashJPCNwXBzNRsdHEzGh72Bt6Y+QlVBy2saJjjMJ6RNbixHZYKzHHljP9iIMfIj6CMDzaaul80DUnrT3sYFaNva83ijIjRfpTyi6ETfxVmuc3k1GoF+EuK43lmfLlbuvy2S4j0XhPKY1GDgsEF+HGl1F4TTi2JAVegYtZX+tWN9B4Q== 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 Received: from BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by SA1PR10MB6341.namprd10.prod.outlook.com (2603:10b6:806:254::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.32; Thu, 11 May 2023 14:14:00 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::d8ec:1377:664:f516]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::d8ec:1377:664:f516%7]) with mapi id 15.20.6363.033; Thu, 11 May 2023 14:13:59 +0000 To: binutils@sourceware.org Subject: [PATCH 1/4] opcodes: use CGEN_INSN_LGUINT for base instructions Date: Thu, 11 May 2023 16:13:48 +0200 Message-Id: <20230511141351.18886-2-jose.marchesi@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230511141351.18886-1-jose.marchesi@oracle.com> References: <20230511141351.18886-1-jose.marchesi@oracle.com> X-ClientProxiedBy: SN4PR0501CA0060.namprd05.prod.outlook.com (2603:10b6:803:41::37) To BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR10MB2888:EE_|SA1PR10MB6341:EE_ X-MS-Office365-Filtering-Correlation-Id: e18c1d6b-9080-45d5-e431-08db5229f724 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HlinSXhw75Ydy8JNaxv7wjHcr2otOeh2/v0G1fVIG7C9xEhS3hWQCd8N90yrboAJrivAZoGHe4zWxy4ee4C6MttYFLEUVVClY+XSmsLOIUYBrme35qEAp9xARqxURSnOpVrxNTa1Aqlu2tiaPsq/eQfoPcP++5TEOK0CSC/a1VfcPmCxyhWOqMIY6VBK+xP7Nkfq5wkldNKKyssAWxVUfqVh7jD3R3fPSyZFYarh0ZRZfEm+Zh2dtTFbM/ynVqa7twOtagkm1gEZEPIMytq3l1/sHK2wu1COxB9uNY8baX1CFeIdVdncaoJA98ZaT/dVYubnkNv1kFzxLjjIBPJ4u7LHDXKySZHcJjbux0X5aYnpaAXNe5zef+758mxzk17OGfu39tjBogb8HHlETtEikkVfDW1ebr/wPvQOf0aj5caXS7yB31g9jmAa7Y9RwK8AlZY6436KC26e/AedL0Ke6VUZvz9n9XCHhoBtf//Aj7boSUUbMVSMHIXpYYvZPD7u+h/Iv0X3xF095BDL8LfVybtXhQXevyCqYDCNQuAbKThjQ82jI8W0OLi47tKM1pCN 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)(39860400002)(136003)(346002)(376002)(396003)(366004)(451199021)(8936002)(30864003)(316002)(8676002)(478600001)(41300700001)(2906002)(6666004)(6916009)(66946007)(66476007)(66556008)(5660300002)(6486002)(1076003)(26005)(6506007)(6512007)(2616005)(36756003)(186003)(83380400001)(38100700002)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MTEqkalwZSB/N6XSLx6T3KXGEnS+Zaxe8Jq6evgf167ivemiUj4a1VWa3KIWRSnrzlM4HFMyJ3j89NHotogoBmtQ1edaBbCceCpRodlvlN5lPCis4a/hDvUFWnIY2pb68Pdthmq0BDBDNq8j4l4Nbw+CZnSlFZ5TxgokfgaEsmJYyYTQnDYQkfYtz6lDGm5tPjcSUF4xAsw4sTmOhs3Xw36jLyzjEldnwTvU+7Q9DibyORrbItTei98KbIhqBwlRyyTc60OC+CkU5oNU3HIafTZ1bNXxmPwzjzYes5o3tnHtjt/7vdLpHVFDZlN4XR5EXuxQJLRXXABXTQuyJYLcbP52j7eKVq8MT7LQPCjxPv9vKRHWiqa1Wh05LJWLTxpG8PEfqM2AGQqjEOddckI9wo96WsSVirMDvo9h4VZzXdBDPF77q/Uy6q+LqHK1jJxdTyFg4ktgbMGLifwjRmkK2K20W7ybIIpYEEq5jr+rXf2xyJPBi24lgCZsbvHdMUMPrwohBcyph2A4RLUERlIEA0FTs3MKVqDNm6m6ODOZg428GUdVADIWuYHj/Xi16DXzBBklG2d917Sv6d7rfyn14xrnRnq2zQndjIcs01wJ02IWiPraWeheulbwgzBbV4vq+W+jw99kMQi1ft4D9Lo9utAnM03uLiAWY6bwcTHM+VHCi2poZm5Uwxs8b9mwftceNP4DXbqss9Jau7+mnq/nUPprK7XfQ5re5e/08BuUjt4mdKAdvSgAc7IO3hTGcsjDCqEktzFpYhkxk6E8iBGqC4PlYXs8grk04n1AipjAwq1tXF+Xm5LSDVBSXjVIa+XHSgGWAu/5UF57GqIsrRLFPDhpC+v9hH7Yd5L5Kj8/WYg/MJVtd/FunNbKWbxubNtKYaHGXwOZSwqg7eVe2+E2bFMmWoOQxQslSCVI9lhvOwkAcLD9bmc+81amPV+FVRxorIE9kMfVzxmju1pDdqOFwb7nJqZyX+y4UQDpmQ5ULCXgErWLDdZ9/nO3+mIPQPMbMwi9HB4aLmDoubjaq8j2zmwWeoPqEthPEbYwv6tNdfcBeQA8g2Ca14sdw1cYNcyTfnBZfDy0BnHH9VgtbMqPaEsPrynl0w4KOn5Vd1Pbil7EaApBrrcF8bY8A0bEk6NvDmWaGiNn/CIqv3dnmCFLEEvg2WbIRH79i5zQs1s1GVD8qI81ThEUmen+RNHAv+2r449G396K37O4HEouOVcWI+CfWUrJtvpnq+qIYiwGElN6UmbkFnNveyVaUIXm2Rpp9Pw80f7HkbGEm6AJjnMQ0On9ONbWBlBFTsV1655VXMhuKsjJ7gQZcbGX0xSIeGjEQeK+ykPxxAwBkQji20vwbAz9c36YrqseN+wJQY6XKxyVi4UPTIOVxPmb11YsCWwCYjgvfXhkCZu6WIslBM2ZSG9Kszd+cGwXfq7VUrWi98Mr4gTeC52zeZBZw9PC6KaDf/Ih+050KWrCtS+OSYdybL/CBTaMzDB0n+js1G26eKbdniCvy+hEh9HVWgJPgoif/2AB4rB9t5UUoqPrDx9FcY58ox4a5GD4dEVnf7PNqz8IxhZkhGYDk02EcuxhQ8MAuZdAInNUns18FDAGiJUQXQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: H3bJiruDu7xfD3astUEgiNEIu5+WZaRUGCfqmxMBtJ1Q2SX4lx2yEdxiHeSPXUgVu1nQSdIh5qJKbgTgA2jc5gVUgRm6E0FTWNgxUA9nTdY3Nh9X9oHqhV9lK3OQHw2WPMNR08cNqr73OgM9vufqMjB1t5pemII0mIPIdaqdeZBuby37mbE/JDH6m+CyOQmb2M8BUeELZdlDAFF7e1HXJsYzQLkTUHaEHaQqekFqPe/Uxca41cFflDQQYxUACeUZQYidbCPR1YoqrZOTseU3giALzJjqHQf6YYfBpocrSvVqBKPZd2kMFFB+veEHAYNsnxhURVR8+zGuxIjpm4KfoTVRKMfERgn0kunVtc7hpgsTWeIDry2CevZ75ZrCMnZC9Dt3dM8H+dYVwCo3t9t+tCZRJ6dSrCsvAORoaVt6WzSTsXiTlEgtZ4hbYQ4gZk+GMlZXxa1gpm/M/REWXBndd8h9P+FvzQoSGVmV7ZYeVpxpbDhMmHdvELQBn0YW3/wNJDokp3UsLR+AAvPTxv3AxG5pLMizx5/JK9IfdIQpbJFfEJhjQ8T1lt56s/PNqk9PYVD3aEsrVAEIs45kFz5N8c6GsNXigb8Los3kYaFN5doKS0IcYgvFEywA34jcc9x87D2sYL9dqOxqfaje6BbZYx2dmROYMz6a6TTE7IhDdp6RFXHMrCklLcAqEb/r9VWFBnrSaKtVzzQktBjbu6gncB6BUvJjnUCCt9yyl2YfWUO94Q6XOVsW4LRliv7vNKus X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e18c1d6b-9080-45d5-e431-08db5229f724 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2023 14:13:59.8915 (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: j+JI4XA3NjyhTY0RIfmqPszewk16chUh80rSDceV4wkY5Noo1CjuA9FwJXPmRthxHiX2a2z+Ce3okgPODuAp8BwY9NNpK62SC/SICgcJB0M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6341 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-11_11,2023-05-05_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 adultscore=0 bulkscore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305110123 X-Proofpoint-ORIG-GUID: wHMWu_-o21yx6M8AcYd0XxY8HiUICw8f X-Proofpoint-GUID: wHMWu_-o21yx6M8AcYd0XxY8HiUICw8f X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "Jose E. Marchesi via Binutils" From: "Jose E. Marchesi" Reply-To: "Jose E. Marchesi" Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765607434245580150?= X-GMAIL-MSGID: =?utf-8?q?1765607434245580150?= This patch changes the opcodes CGEN support code in order to allow base instructions with opcodes past the least significative 32 bits. Note that the masks have been adapted in a previous patch. This patch has been regtested for all the current targets in binutils that are based on CGEN, namely: - bpf-unknown-none - lm32-elf - fr30-elf - ip2k-elf - iq2000-elf - m32c-elf - m32r-elf - mep-elf - mt-elf - or1k-elf - stormy16-elf" Also with --enable-cgen-maint and --enable-targets=all. No regressions observed. include/ChangeLog: 2023-05-10 Jose E. Marchesi * opcode/cgen.h (CGEN_IVALUE): Make room for 64-bit base values. opcodes/ChangeLog: 2023-05-10 Jose E. Marchesi * cgen-dis.in (print_insn): Use CGEN_INSN_LGUINT for instruction base values. * cgen-dis.c (cgen_dis_lookup_insn): Likewise. * cgen-opc.c (cgen_macro_insn_count): Likewise. * epiphany-dis.c: Regenerate. * fr30-dis.c: Likewise. * frv-dis.c: Likewise. * ip2k-dis.c: Likewise. * iq2000-dis.c: Likewise. * lm32-dis.c: Likewise. * m32c-dis.c: Likewise. * m32r-dis.c: Likewise. * mep-dis.c: Likewise. * mt-dis.c: Likewise. * or1k-dis.c: Likewise. * xstormy16-dis.c: Likewise. --- include/ChangeLog | 4 ++++ include/opcode/cgen.h | 10 +++++----- opcodes/ChangeLog | 19 +++++++++++++++++++ opcodes/bpf-dis.c | 2 +- opcodes/cgen-dis.c | 2 +- opcodes/cgen-dis.in | 2 +- opcodes/cgen-opc.c | 8 ++++---- opcodes/epiphany-dis.c | 2 +- opcodes/fr30-dis.c | 2 +- opcodes/frv-dis.c | 2 +- opcodes/ip2k-dis.c | 2 +- opcodes/iq2000-dis.c | 2 +- opcodes/lm32-dis.c | 2 +- opcodes/m32c-dis.c | 2 +- opcodes/m32r-dis.c | 2 +- opcodes/mep-dis.c | 2 +- opcodes/mt-dis.c | 2 +- opcodes/or1k-dis.c | 2 +- opcodes/xstormy16-dis.c | 2 +- 19 files changed, 47 insertions(+), 24 deletions(-) diff --git a/include/ChangeLog b/include/ChangeLog index b157251bea8..d38f507f4e3 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2023-05-10 Jose E. Marchesi + + * opcode/cgen.h (CGEN_IVALUE): Make room for 64-bit base values. + 2023-03-23 Frederic Cambus * elf/common.h (PT_OPENBSD_MUTABLE): Define. diff --git a/include/opcode/cgen.h b/include/opcode/cgen.h index 6c0732b4b25..9d638f091f5 100644 --- a/include/opcode/cgen.h +++ b/include/opcode/cgen.h @@ -928,7 +928,7 @@ typedef struct typedef struct { /* The opcode portion of the base insn. */ - CGEN_INSN_INT base_value; + CGEN_INSN_LGUINT base_value; #ifdef CGEN_MAX_EXTRA_OPCODE_OPERANDS /* Extra opcode values beyond base_value. */ @@ -1186,7 +1186,7 @@ extern CGEN_INSN_LIST * cgen_asm_lookup_insn instruction (the actually hashing done is up to the target). */ extern CGEN_INSN_LIST * cgen_dis_lookup_insn - (CGEN_CPU_DESC, const char *, CGEN_INSN_INT); + (CGEN_CPU_DESC, const char *, CGEN_INSN_LGUINT); /* FIXME: delete these two */ #define CGEN_DIS_LOOKUP_INSN(cd, buf, value) cgen_dis_lookup_insn ((cd), (buf), (value)) #define CGEN_DIS_NEXT_INSN(insn) ((insn)->next) @@ -1449,7 +1449,7 @@ extern int CGEN_SYM (get_mach) (const char *); /* Operand index computation. */ extern const CGEN_INSN * cgen_lookup_insn (CGEN_CPU_DESC, const CGEN_INSN * insn_, - CGEN_INSN_INT int_value_, unsigned char *bytes_value_, + CGEN_INSN_LGUINT int_value_, unsigned char *bytes_value_, int length_, CGEN_FIELDS *fields_, int alias_p_); extern void cgen_get_insn_operands (CGEN_CPU_DESC, const CGEN_INSN * insn_, @@ -1461,10 +1461,10 @@ extern const CGEN_INSN * cgen_lookup_get_insn_operands /* Cover fns to bfd_get/set. */ -extern CGEN_INSN_INT cgen_get_insn_value +extern CGEN_INSN_LGUINT cgen_get_insn_value (CGEN_CPU_DESC, unsigned char *, int, int); extern void cgen_put_insn_value - (CGEN_CPU_DESC, unsigned char *, int, CGEN_INSN_INT, int); + (CGEN_CPU_DESC, unsigned char *, int, CGEN_INSN_LGUINT, int); extern CGEN_INSN_INT cgen_get_base_insn_value (CGEN_CPU_DESC, unsigned char *, int); diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 890931e6b8a..d954bb938aa 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,22 @@ +2023-05-10 Jose E. Marchesi + + * cgen-dis.in (print_insn): Use CGEN_INSN_LGUINT for instruction + base values. + * cgen-dis.c (cgen_dis_lookup_insn): Likewise. + * cgen-opc.c (cgen_macro_insn_count): Likewise. + * epiphany-dis.c: Regenerate. + * fr30-dis.c: Likewise. + * frv-dis.c: Likewise. + * ip2k-dis.c: Likewise. + * iq2000-dis.c: Likewise. + * lm32-dis.c: Likewise. + * m32c-dis.c: Likewise. + * m32r-dis.c: Likewise. + * mep-dis.c: Likewise. + * mt-dis.c: Likewise. + * or1k-dis.c: Likewise. + * xstormy16-dis.c: Likewise. + 2023-04-21 Tom Tromey * i386-dis.c (OP_J): Check result of get16. diff --git a/opcodes/bpf-dis.c b/opcodes/bpf-dis.c index 0a345179569..a1f2c71fa5d 100644 --- a/opcodes/bpf-dis.c +++ b/opcodes/bpf-dis.c @@ -367,7 +367,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/cgen-dis.c b/opcodes/cgen-dis.c index 90746a845ed..917ce0a8ecc 100644 --- a/opcodes/cgen-dis.c +++ b/opcodes/cgen-dis.c @@ -232,7 +232,7 @@ build_dis_hash_table (CGEN_CPU_DESC cd) /* Return the first entry in the hash list for INSN. */ CGEN_INSN_LIST * -cgen_dis_lookup_insn (CGEN_CPU_DESC cd, const char * buf, CGEN_INSN_INT value) +cgen_dis_lookup_insn (CGEN_CPU_DESC cd, const char * buf, CGEN_INSN_LGUINT value) { unsigned int hash; diff --git a/opcodes/cgen-dis.in b/opcodes/cgen-dis.in index c144c7eb450..16f888fa9c6 100644 --- a/opcodes/cgen-dis.in +++ b/opcodes/cgen-dis.in @@ -202,7 +202,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/cgen-opc.c b/opcodes/cgen-opc.c index 7141ffb6a3f..86d897580fa 100644 --- a/opcodes/cgen-opc.c +++ b/opcodes/cgen-opc.c @@ -355,13 +355,13 @@ cgen_macro_insn_count (CGEN_CPU_DESC cd) /* Cover function to read and properly byteswap an insn value. */ -CGEN_INSN_INT +CGEN_INSN_LGUINT cgen_get_insn_value (CGEN_CPU_DESC cd, unsigned char *buf, int length, int endian) { int big_p = (endian == CGEN_ENDIAN_BIG); int insn_chunk_bitsize = cd->insn_chunk_bitsize; - CGEN_INSN_INT value = 0; + CGEN_INSN_LGUINT value = 0; if (insn_chunk_bitsize != 0 && insn_chunk_bitsize < length) { @@ -397,7 +397,7 @@ void cgen_put_insn_value (CGEN_CPU_DESC cd, unsigned char *buf, int length, - CGEN_INSN_INT value, + CGEN_INSN_LGUINT value, int endian) { int big_p = (endian == CGEN_ENDIAN_BIG); @@ -446,7 +446,7 @@ cgen_put_insn_value (CGEN_CPU_DESC cd, const CGEN_INSN * cgen_lookup_insn (CGEN_CPU_DESC cd, const CGEN_INSN *insn, - CGEN_INSN_INT insn_int_value, + CGEN_INSN_LGUINT insn_int_value, /* ??? CGEN_INSN_BYTES would be a nice type name to use here. */ unsigned char *insn_bytes_value, int length, diff --git a/opcodes/epiphany-dis.c b/opcodes/epiphany-dis.c index 72ea8bcc645..a77b1c24765 100644 --- a/opcodes/epiphany-dis.c +++ b/opcodes/epiphany-dis.c @@ -443,7 +443,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/fr30-dis.c b/opcodes/fr30-dis.c index f0918b8a49c..f200290fc3f 100644 --- a/opcodes/fr30-dis.c +++ b/opcodes/fr30-dis.c @@ -464,7 +464,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/frv-dis.c b/opcodes/frv-dis.c index 4740ac4509a..d3901c923be 100644 --- a/opcodes/frv-dis.c +++ b/opcodes/frv-dis.c @@ -561,7 +561,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/ip2k-dis.c b/opcodes/ip2k-dis.c index 87ff75b47c2..598b04fc129 100644 --- a/opcodes/ip2k-dis.c +++ b/opcodes/ip2k-dis.c @@ -453,7 +453,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/iq2000-dis.c b/opcodes/iq2000-dis.c index 07fd2fc6557..3fc988d078c 100644 --- a/opcodes/iq2000-dis.c +++ b/opcodes/iq2000-dis.c @@ -354,7 +354,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/lm32-dis.c b/opcodes/lm32-dis.c index b013eaec8a3..268d0f19da8 100644 --- a/opcodes/lm32-dis.c +++ b/opcodes/lm32-dis.c @@ -312,7 +312,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/m32c-dis.c b/opcodes/m32c-dis.c index 950198a15c3..c783510cf4d 100644 --- a/opcodes/m32c-dis.c +++ b/opcodes/m32c-dis.c @@ -1056,7 +1056,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/m32r-dis.c b/opcodes/m32r-dis.c index 8cfd9fdd499..4bba1c1503c 100644 --- a/opcodes/m32r-dis.c +++ b/opcodes/m32r-dis.c @@ -444,7 +444,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/mep-dis.c b/opcodes/mep-dis.c index 91ea29b7c39..0da8a9aa117 100644 --- a/opcodes/mep-dis.c +++ b/opcodes/mep-dis.c @@ -1366,7 +1366,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/mt-dis.c b/opcodes/mt-dis.c index a2121989871..8efaac835a0 100644 --- a/opcodes/mt-dis.c +++ b/opcodes/mt-dis.c @@ -452,7 +452,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/or1k-dis.c b/opcodes/or1k-dis.c index e70c6519973..e6170d608c7 100644 --- a/opcodes/or1k-dis.c +++ b/opcodes/or1k-dis.c @@ -339,7 +339,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; diff --git a/opcodes/xstormy16-dis.c b/opcodes/xstormy16-dis.c index 0de29d60248..a8da1e6285b 100644 --- a/opcodes/xstormy16-dis.c +++ b/opcodes/xstormy16-dis.c @@ -333,7 +333,7 @@ print_insn (CGEN_CPU_DESC cd, bfd_byte *buf, unsigned int buflen) { - CGEN_INSN_INT insn_value; + CGEN_INSN_LGUINT insn_value; const CGEN_INSN_LIST *insn_list; CGEN_EXTRACT_INFO ex_info; int basesize; From patchwork Thu May 11 14:13:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jose E. Marchesi" X-Patchwork-Id: 92630 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:6358:3046:b0:115:7a1d:dabb with SMTP id p6csp4468734rwl; Thu, 11 May 2023 07:14:38 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ72H+f0yYLqmdJ61yfg5CmCgPkuOFJodGU6i8Io1uCRjT6HPllGIbv9NXnK4DR2+wmLOaOE X-Received: by 2002:a17:906:fe42:b0:957:28b2:560a with SMTP id wz2-20020a170906fe4200b0095728b2560amr17662143ejb.46.1683814477810; Thu, 11 May 2023 07:14:37 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id ha14-20020a170906a88e00b00965b8a996cdsi4939239ejb.1013.2023.05.11.07.14.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 May 2023 07:14:37 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=ODWpCZ9C; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1451E3855590 for ; Thu, 11 May 2023 14:14:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1451E3855590 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1683814462; bh=zuXJ+UM0hZ8kHgp9Hr3PCTI6yOS9FhbErcGuSEexKm8=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=ODWpCZ9C6K2JJdfHoPDltZOjex2NPNtcQ/xYK7SnkyftjzBmkZDRrx2MbXigtLtUw RpezYKcH4wqLWUu16D7W6J6q9+CMHEdxnTCOPjCWi950CTNmk7nTxnGxoAiLJoGJIr l0hlXof3XUwz/+Sb4NlR1zr0lEqUepWqFYO5BPBs= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 4E53338582AB for ; Thu, 11 May 2023 14:14:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4E53338582AB Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34BDxHKi018089 for ; Thu, 11 May 2023 14:14:09 GMT Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3qf778y9hn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 May 2023 14:14:08 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 34BD2LuP004558 for ; Thu, 11 May 2023 14:14:06 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2170.outbound.protection.outlook.com [104.47.55.170]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3qf7pm2mj0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 May 2023 14:14:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R0ES+cgibu8JiB3Kqd+Egs9M+J0wABLNVVgHotjtQ+AHlBWa6Qzzud5t91Wtw1oHmL9fM3cF2nXCfdquGTiwJzhSPgDHJntEehBtYZEIiOtEeeaEAT2Cr8EFGSfDjMsWDBPEZmADfTn/xK4u6oACWVotejdO6C7UZdrzR46qTqrdWCSZuTnL+ZdE5jSnd+M058CbPVZYDKAaHqynRfzVQRwncd+tvEh6EBmqQ0dyCzCWUzUsryRxrs8jPKl+hZbooe0AgXot6AFJt18Nw/bhjEmjMb56mwaNUihzJDGCXd79qdvTQmQuzsn/s7YHnz+LGzf0bj78Rm0rTFmOTobDgg== 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=zuXJ+UM0hZ8kHgp9Hr3PCTI6yOS9FhbErcGuSEexKm8=; b=h4+X4khy1oAfTwAQQ2LWygLrSGIRvY27UGzJ5R6I6lUH0nWMVoYiMJQ0fJWsRgyKoFcUPmxFr79qWOFz9RGo8ziI79vOaxdb90Jd2EEAbRUjoG9d3WTal3zHzi76afIv8R9BNIJEutm7QYbw64DA3K3Zlzt7vkidbwZM/kwZqtYVOxT6tIkPslwyOavkCfpCjUkmQID774nrbEB9lESVTnKayoPln52wfVlDyaaJy880k+ZhgChyt3tNgBgVOGBoUDWR1R9Q4ttsqDRZMpE+bDd/d55EHUj4sDmzSaiXe6pja+qWsC5JqPCJwIMNHwtvbxmbiiDL1gjqmpVnAvdV5Q== 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 Received: from BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by SA1PR10MB6341.namprd10.prod.outlook.com (2603:10b6:806:254::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.32; Thu, 11 May 2023 14:14:03 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::d8ec:1377:664:f516]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::d8ec:1377:664:f516%7]) with mapi id 15.20.6363.033; Thu, 11 May 2023 14:14:03 +0000 To: binutils@sourceware.org Subject: [PATCH 2/4] cpu: add V3 BPF atomic instructions Date: Thu, 11 May 2023 16:13:49 +0200 Message-Id: <20230511141351.18886-3-jose.marchesi@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230511141351.18886-1-jose.marchesi@oracle.com> References: <20230511141351.18886-1-jose.marchesi@oracle.com> X-ClientProxiedBy: SN4PR0501CA0055.namprd05.prod.outlook.com (2603:10b6:803:41::32) To BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR10MB2888:EE_|SA1PR10MB6341:EE_ X-MS-Office365-Filtering-Correlation-Id: 277d5be3-ad7b-4f5f-eafb-08db5229f91b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: N+ppN/fK4Y9wg377qMj8HEtQfES+eHu3RRLSOb7rLEZhfw4tYaKMeoW9Dg74jTinrQgdVd/3ikxgKAC2KV1ka4W0Uth9ScIXHxeeX9pH4xI3UW9TqUq1J0j60x7suOAfTptA7C0jtTTPYFC+EqIt/doU2hwx0n9ryAG3HD3e1eK4hph34zClipms7sxyEQDYFXsUaGCyALNvTqBlPtCcxeYFMtdNCjbWBG+5P5L49M03GC/M7F/QY8wqJmyh+fJ6MJXHdKYAmQovXAsNyr1lP4P7+gwkn4QPU5On/e303DhFLBwosgMYA+um+iPvZ6ep4BYpTUBTIX63BBGU9jXaRy7obk2io48PdM5MoJoQyOHJl1txpkVwkIwv88YaEjiwI0825G8ViTPKMYUWICHnfnyO88brdoY9ZyyYryyW/GzSr3NLCos865ycdL+hnP4sfBSq/JAakfkqlDAi9JgvX8KGqnh5BbLg57O3qo7U9vPvyp59ERWrE0kLqMX9shvpZlH2y5ulRdsX9DpDOGKmDgUo2DT+vTFJ/I9xjzbuxOxMpMQVtA/fzTuLwYHlcF4HgBnSszyFBdBjbw9JGZyxKuiTHJzMWuGxws4A8noQHhU= 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)(39860400002)(136003)(346002)(376002)(396003)(366004)(451199021)(8936002)(30864003)(316002)(8676002)(478600001)(41300700001)(2906002)(6666004)(6916009)(66946007)(66476007)(66556008)(5660300002)(6486002)(1076003)(26005)(6506007)(6512007)(2616005)(36756003)(186003)(83380400001)(38100700002)(86362001)(21314003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: rWv50XgGQG+3YbW3RBmONp6/eG1T8zC7yyjMZDXWvfq9sWhBKYEYkBRq8Qk9Nk5H7yBQe4LURIuZ8TF4TM5gG0INYN7PBlmtsEM386AnHqnmIAe9iRxpZ0G2K5/nbzuKVB+VNVkFc3EjlB6KcBeaCEXtnmNGHRdytS+xNiDfhhl5qtf6y2cyTWByQZAbqU5mwEdQuvpF+vTxGL3pzcGdcRzJZDYMBM7B4XXDflLXxl9h1P6MHgx3Vdd98hQvG8ehddpffY2xL5cHMXyhzW4msfgb8EZv3QTbJMv0dRF5OpGGGdUKolI3k5ipjskkcyuyRRd4BOC3yWXdWTR8LoBpOQvx4Mk6ToSgqnGPy40Pup3JKcL/wvdIMsuKFVNx68e32qcSan3YH9sqcmTnvYwLnIkOrfKP6aVVgazFFIzfeIcVIiSE2u0ziutMjZ2QdBGjG/PWQJd9q5O94YjX0FYQs4CbdzfBw3ULNCH5rs0nQrcaxLsIb/78Eve9wv5wMOs7EjasOFLZ4pKd4aj7/ZscL7bOeZqNoBiwdq9fr8BBvUwV37InFry7GJwr4L3entz9tJXTQquB62khZQJVobEmhaqrDAIQF91CqTlUSgjOZosawFOJ/Zc4C2wqk44b2itoBSkQXg3wNAkCNNupkO29UjigX+WP5p6UbGs4e42JUYqQcPIkjjcoOMTE7EwxAdM7w3j6xM4H1HGsC+2RZKfhlDsD3uvdBYSrUZUL9kqCYxWKCyeM79128zVwKIhMtZfufWXIkD1Yj4+J0GEM9/npg1nIfEclMUqZ8gBpFzMQBOGXX1mtE+7CyZi9QMLN1ZuUWMA+7U9uQ3J4ohGM3BAe5yYoAPEtDSw2TN2/TkC4u3BLPFdmpuPecI/EBhJqnECfiplRUY90kgihfUwMsKHIedNz4uE8eP0Yl3SVJpTgn/XZJ0DWhx6lKDQEny+IkFdLx5D/M/SrNTNpISrOaSfrr0DG9MFmT7NdScPgS4Md5IkOigIpEe6cnP4S3d982amU4KjWm+fMbdw9N5YxHWVHke9COOjrM4YKTy7Bzi2WhxWY+V4D9CSyThOgxFgNqppHjhVVXPUH7KRDlQBanyDArxAaw3nuNGPouFMvppHhgH6H7YpwzrVO0r5+9MbTRijcN5l1SQp4n1f4iNRuqYjON6XTp71WN4Ki9NbbcEPQx3gC1K6a9fjeOJyzu0ab5n/y5RVCImcSdl5FvHKfdyKuy5XmFXsPY+UjPjqxaZj4fXAPV7OKhNOUEq+KbYuJLoqKrRm3PoV+ntPaquQQ0cX0V3n/rjicjgKqDv/F74FQWa3cKYS3nmB3pkN1nC0Fm4TR8C2iAdQf1gW1kX3USLkQ7Jo0CJYTaQSmlNT6bTr3h7Ua83qsKkTy3Gw4ax9uW8tO/r4LwdamEIkEzHxmktNtPHiIzDnzLfFPLLGd3FCF7yarox6rzpFp8YEpPlujo88IOtcq5P5nPPIlSPEEy54oJp6yIT1wUz5qy7U7sE2+ySHArXi6zxnzltNnHwtB7qlCPDXHZCFzWLUlRfIfSZBcysQPviWn02ug76BuGQxqlrA0bvIYJoczsH9Yyov9lQiYwQaxuSZm2NPhye+j7nJd0A== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: /nmvCTgbw3X2VNLK1ONgA8bDoijMp/7J8teJWNh0aZj9dA2JgZyXuYOPcytVLLAvztKz06zH3HIV3ILl6IIJanPfDxgE1XrjWR9wsjX383MG/W1XpdK0SghMcCATsS5IHrLHrSLDB8v8f9yQgYIPT1lFw0gFZHRF9NaHnlle24vNlxV4xuSGQKSYfjIRq8zB3IgW/Ko49TkRWbBA2RjWU8gA1YG6AvVZRUlQ0bHQJgH0dOzsGeTYB21whlMxrQdLwIm4RGQMmUtsdpWey7xgPHcfUDh589z2C91SBeTpdYZYv7CusVZyutqo4hWwHVQCKF2oxi83N6JwbZlzbqFcUlkCqWrOazLkcpAMYWF5N/a8jeXd+9b4QdgNuiVmmmgtZ+bH6gv55T/9Ma3/FIl0zpU60Y11Y4DeJhWOIQ+G5SLTKVwgtJTogpeh2gZ9rVZsJnWxmATRj18ZLqax/rx93UCtvElsnVSeVi1yb3PjgDOdenX6/+0JhNs/Ci42VEaOYcSR1VQwvKyo7RjW0pSdRRNxBMi21Qz1tWlb05dN757rOLWcNEsbgJzzESCVXgEoAB/pQi7VzZjaEARKCPIcV8IotOrb6tiZgVtMmFSo8Ot3MiNCoKrhBiRN+4OvYbDMDfhPOc1TgdZ35j74BL1WeJKWlVI01284lGGCS+eeJOavAmqJzjfK16DA626yg05bq1f2bhks1gkMjEbiAlpr8mgn8xMryQoeEu00LKz+ysdLjX6Jt8Js+LpbDaKIlRV5 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 277d5be3-ad7b-4f5f-eafb-08db5229f91b X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2023 14:14:03.2450 (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: tQmsu7xQoZ+cFwykJFwnHhIL5iDDUKGTsaJKmMa2LVEG6XLsuP82aevgB9u4E9aEHi2d/y4YcrP1F79RHP7e0QxwqhvuOQAZgCtk6qSJdtU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6341 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-11_11,2023-05-05_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305110123 X-Proofpoint-GUID: HGRBSCT-HWaBS9aIfc-N4pN4YcrDNDpr X-Proofpoint-ORIG-GUID: HGRBSCT-HWaBS9aIfc-N4pN4YcrDNDpr X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "Jose E. Marchesi via Binutils" From: "Jose E. Marchesi" Reply-To: "Jose E. Marchesi" Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765607449791794652?= X-GMAIL-MSGID: =?utf-8?q?1765607449791794652?= This patch adds a set of new atomic instructions that were introduced in the version 3 BPF ISA: Atomic operations: xor{w,dw} xand{w,dw} xxor{w,dw} Atomic fetch-and-operate: xfadd{w,dw} xfor{w,dw} xfand{w,dw} xfxor{w,dw} Other: xchg{w,dw} xcmp{w,dw} cpu/ChangeLog: 2023-05-10 Jose E. Marchesi * bpf.cpu: Add BPF V3 atomic instructions, along with semantics. opcodes/ChangeLog: 2023-05-10 Jose E. Marchesi * bpf-desc.c: Regenerate. * bpf-desc.h: Likewise. * bpf-opc.h: Likewise. * bpf-opc.c: Likewise. --- cpu/ChangeLog | 4 + cpu/bpf.cpu | 164 +++++++++++++++++++++++++++----- opcodes/ChangeLog | 7 ++ opcodes/bpf-desc.c | 182 +++++++++++++++++++++++++++++++++++ opcodes/bpf-desc.h | 30 ++++-- opcodes/bpf-opc.c | 232 ++++++++++++++++++++++++++++++++++++++++++++- opcodes/bpf-opc.h | 14 ++- 7 files changed, 593 insertions(+), 40 deletions(-) diff --git a/cpu/ChangeLog b/cpu/ChangeLog index 23c89c99eab..78ed5bdb9c5 100644 --- a/cpu/ChangeLog +++ b/cpu/ChangeLog @@ -1,3 +1,7 @@ +2023-05-10 Jose E. Marchesi + + * bpf.cpu: Add BPF V3 atomic instructions, along with semantics. + 2023-03-15 Nick Clifton PR 30231 diff --git a/cpu/bpf.cpu b/cpu/bpf.cpu index 2ae74fc4c18..c252155eded 100644 --- a/cpu/bpf.cpu +++ b/cpu/bpf.cpu @@ -51,7 +51,7 @@ ;; Whereas the 128-bit instructions (at the moment there is only one ;; of such instructions, lddw) have the form: ;; -;; code:8 regs:8 offset:16 imm:32 unused:32 imm:32 +;; code:8 regs:8 offset:16 imm:32 unused:32 imm:32 ;; ;; In both formats `regs' is itself composed by two fields: ;; @@ -83,7 +83,7 @@ ;; ;; and another for big-endian with instructions like: ;; -;; code:8 dst:4 src:4 offset:16 imm:32 [unused:32 imm:32] +;; code:8 dst:4 src:4x offset:16 imm:32 [unused:32 imm:32] ;; ;; where `offset' and the immediate fields are encoded in ;; little-endian and big-endian byte-order, respectively. @@ -206,7 +206,19 @@ (type pc UDI) (get () (raw-reg h-pc)) (set (newval) (set (raw-reg h-pc) newval))) - + +;; r0 register is used by compare and exchange atomic operation +;; used in addressing by offset mode, so they compare/xchange +;; values in memory with r0. + +(define-hardware + (name h-r0) + (comment "r0 register") + (attrs all-isas) + (type register DI) + (get () (raw-reg h-r0)) + (set (newval) (set (raw-reg h-r0) newval))) + ;; A 64-bit h-sint to be used by the imm64 operand below. XXX this ;; shouldn't be needed, as h-sint is supposed to be able to hold ;; 64-bit values. However, in practice CGEN limits h-sint to 32 bits @@ -234,6 +246,7 @@ (length x-length) (mode x-mode))) + ;; For arithmetic and jump instructions the 8-bit code field is ;; subdivided in: ;; @@ -274,11 +287,54 @@ (dwf f-op-mode "eBPF opcode mode" (all-isas) 0 8 7 3 UINT) (dwf f-op-size "eBPF opcode size" (all-isas) 0 8 4 2 UINT) +;; Atomic instructions abuse f-imm32 to hold extra opcodes. +;; These opcodes are structured like: +;; +;; +;; 31 imm32 0 +;; +-----------+-----+-----+ +;; | | op |flags| +;; +-----------+-----+-----+ +;; --4-- --4-- +;; +;; Where: +;; +;; OP is one of ADD, AND, OR, XOR, CHG, CMP. +;; FLAGS is either 0 or FETCH. + +(dwf f-op-atomic "eBPF atomic insn opcode" (all-isas) 32 64 31 32 UINT) + +(define-normal-insn-enum insn-atomic-op-le "eBPF atomic insn opcode" + ((ISA ebpfle xbpfle)) OP_ATOMIC_LE_ f-op-atomic + ((ADD #x00) + (OR #x40) + (AND #x50) + (XOR #xa0) + (FADD #x01) + (FOR #x41) + (FAND #x51) + (FXOR #xa1) + (CHG #xe1) + (CMP #xf1))) + +(define-normal-insn-enum insn-atomic-op-be "eBPF atomic insn opcode" + ((ISA ebpfbe xbpfbe)) OP_ATOMIC_BE_ f-op-atomic + ((ADD #x00000000) + (OR #x40000000) + (AND #x50000000) + (XOR #xa0000000) + (FADD #x01000000) + (FOR #x41000000) + (FAND #x51000000) + (FXOR #xa1000000) + (CHG #xe1000000) + (CMP #xf1000000))) + (define-normal-insn-enum insn-op-mode "eBPF load/store instruction modes" (all-isas) OP_MODE_ f-op-mode ((IMM #b000) (ABS #b001) (IND #b010) (MEM #b011) ;; #b100 and #b101 are used in classic BPF only, reserved in eBPF. - (XADD #b110))) + (ATOMIC #b110))) (define-normal-insn-enum insn-op-size "eBPF load/store instruction sizes" (all-isas) OP_SIZE_ f-op-size @@ -541,7 +597,7 @@ ;; variant for each ISA: ;; ;; LDDWle for the little-endian ISA -;; LDDWbe for the big-endian ISA +;; LDDWbe for the big-endian ISA (define-pmacro (define-lddw x-endian) (dni (.sym lddw x-endian) @@ -614,7 +670,7 @@ ())) (define-pmacro (define-ldind x-endian) - (begin + (begin (dlind "w" W x-endian SI) (dlind "h" H x-endian HI) (dlind "b" B x-endian QI) @@ -810,35 +866,91 @@ ;;; Atomic instructions -;; The atomic exchange-and-add instructions come in two flavors: one +;; The atomic exchange-and-op instructions come in two flavors: one ;; for swapping 64-bit quantities and another for 32-bit quantities. -(define-pmacro (sem-exchange-and-add x-endian x-mode) +;; Semantic routines for regular atomic operations. +(define-pmacro (sem-atomic-op x-semop x-endian x-mode) + (sequence VOID ((x-mode tmp)) + (set x-mode tmp (mem x-mode (add DI (.sym dst x-endian) offset16))) + (set x-mode + (mem x-mode (add DI (.sym dst x-endian) offset16)) + (x-semop x-mode tmp (.sym src x-endian))))) + +;; Semantic routines for atomic operations that involve exchange. +(define-pmacro (sem-atomic-op-fetch x-semop x-endian x-mode) (sequence VOID ((x-mode tmp)) - ;; XXX acquire lock in simulator... as a hardware element? (set x-mode tmp (mem x-mode (add DI (.sym dst x-endian) offset16))) (set x-mode (mem x-mode (add DI (.sym dst x-endian) offset16)) - (add x-mode tmp (.sym src x-endian))))) + (x-semop x-mode tmp (.sym src x-endian))) + (set x-mode (.sym src x-endian) tmp))) + +;; Semantic routine for the atomic exchange. +(define-pmacro (sem-exchange x-semop x-endian x-mode) + (sequence VOID ((x-mode tmp)) + (set x-mode tmp (mem x-mode (add DI (.sym dst x-endian) offset16))) + (set x-mode (mem x-mode (add DI (.sym dst x-endian) offset16)) (.sym src x-endian)) + (set x-mode (.sym src x-endian) tmp))) + +;; Semantic routine for compare-and-exchange. +(define-pmacro (sem-cmp-exchange x-semop x-endian x-mode) + (sequence VOID ((x-mode tmp)) + (set x-mode tmp (mem x-mode (add DI (.sym dst x-endian) offset16))) + (if (eq x-mode (reg h-r0) tmp) + (set x-mode (mem x-mode (add DI (.sym dst x-endian) offset16)) (.sym src x-endian))) + (set x-mode (reg h-r0) (zext tmp)))) + +;; Atomic operation without fetching. +(define-pmacro (dai x-basename x-suffix x-size x-op-code x-endian x-mode semproc semop) + (begin + (dni (.str "x" x-basename x-suffix x-endian) + (.str "x" x-basename x-suffix x-endian) + (endian-isas x-endian) + (.str "x" x-basename x-suffix " [$dst" x-endian "+$offset16],$src" x-endian) + (+ (.sym src x-endian) (.sym dst x-endian) + offset16 OP_MODE_ATOMIC x-size OP_CLASS_STX x-op-code) + (semproc semop x-endian x-mode) + ()))) + +(define-pmacro (dais x-basename x-op-code x-endian semproc semop) + (begin + (dai x-basename "dw" OP_SIZE_DW x-op-code x-endian DI semproc semop) + (dai x-basename "w" OP_SIZE_W x-op-code x-endian SI semproc semop))) (define-pmacro (define-atomic-insns x-endian) (begin - (dni (.str "xadddw" x-endian) - "xadddw" - (endian-isas x-endian) - (.str "xadddw [$dst" x-endian "+$offset16],$src" x-endian) - (+ (f-imm32 0) (.sym src x-endian) (.sym dst x-endian) - offset16 OP_MODE_XADD OP_SIZE_DW OP_CLASS_STX) - (sem-exchange-and-add x-endian DI) - ()) - (dni (.str "xaddw" x-endian) - "xaddw" - (endian-isas x-endian) - (.str "xaddw [$dst" x-endian "+$offset16],$src" x-endian) - (+ (f-imm32 0) (.sym src x-endian) (.sym dst x-endian) - offset16 OP_MODE_XADD OP_SIZE_W OP_CLASS_STX) - (sem-exchange-and-add x-endian SI) - ()))) + (dais add + (.if (.eq x-endian le) OP_ATOMIC_LE_ADD OP_ATOMIC_BE_ADD) + x-endian sem-atomic-op add) + (dais fadd + (.if (.eq x-endian le) OP_ATOMIC_LE_FADD OP_ATOMIC_BE_FADD) + x-endian sem-atomic-op-fetch add) + (dais or + (.if (.eq x-endian le) OP_ATOMIC_LE_OR OP_ATOMIC_BE_OR) + x-endian sem-atomic-op or) + (dais for + (.if (.eq x-endian le) OP_ATOMIC_LE_FOR OP_ATOMIC_BE_FOR) + x-endian sem-atomic-op-fetch or) + (dais and + (.if (.eq x-endian le) OP_ATOMIC_LE_AND OP_ATOMIC_BE_AND) + x-endian sem-atomic-op and) + (dais fand + (.if (.eq x-endian le) OP_ATOMIC_LE_FAND OP_ATOMIC_BE_FAND) + x-endian sem-atomic-op-fetch and) + (dais xor + (.if (.eq x-endian le) OP_ATOMIC_LE_XOR OP_ATOMIC_BE_XOR) + x-endian sem-atomic-op xor) + (dais fxor + (.if (.eq x-endian le) OP_ATOMIC_LE_FXOR OP_ATOMIC_BE_FXOR) + x-endian sem-atomic-op-fetch xor) + ;; CHG and CMP have only "fetch" variants. + (dais chg + (.if (.eq x-endian le) OP_ATOMIC_LE_CHG OP_ATOMIC_BE_CHG) + x-endian sem-exchange ()) + (dais cmp + (.if (.eq x-endian le) OP_ATOMIC_LE_CMP OP_ATOMIC_BE_CMP) + x-endian sem-cmp-exchange ()))) (define-atomic-insns le) (define-atomic-insns be) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index d954bb938aa..6debcbc653a 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,10 @@ +2023-05-10 Jose E. Marchesi + + * bpf-desc.c: Regenerate. + * bpf-desc.h: Likewise. + * bpf-opc.h: Likewise. + * bpf-opc.c: Likewise. + 2023-05-10 Jose E. Marchesi * cgen-dis.in (print_insn): Use CGEN_INSN_LGUINT for instruction diff --git a/opcodes/bpf-desc.c b/opcodes/bpf-desc.c index 7bef587da8b..5e18b0c7b40 100644 --- a/opcodes/bpf-desc.c +++ b/opcodes/bpf-desc.c @@ -177,6 +177,7 @@ const CGEN_HW_ENTRY bpf_cgen_hw_table[] = { "h-iaddr", HW_H_IADDR, CGEN_ASM_NONE, 0, { 0, { { { (1< X-Patchwork-Id: 92634 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:6358:3046:b0:115:7a1d:dabb with SMTP id p6csp4470380rwl; Thu, 11 May 2023 07:16:30 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5pKjpciY+C08jP1nh1wWsQZ1/LLETI78W1IkaxT124Ol+USGQRrf52dds30+UMAlRmzVnZ X-Received: by 2002:a17:907:72cc:b0:969:9118:a98f with SMTP id du12-20020a17090772cc00b009699118a98fmr12309410ejc.10.1683814589784; Thu, 11 May 2023 07:16:29 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id hf7-20020a1709072c4700b00965f6e296e1si5541575ejc.124.2023.05.11.07.16.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 May 2023 07:16:29 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b="yG5B/dVG"; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B3F09385355E for ; Thu, 11 May 2023 14:15:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B3F09385355E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1683814513; bh=GB+w7lJCshiMX0h23Ws8QK7tFU+ndn9pNa9xdZ7vMI4=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=yG5B/dVGYOXoyMYaYsqVD93vylEhytvw40BVfmWcyohctAlB8IDaxMoWkqHlscUTe JZYy9OhKdLbclpdZJilhLcuYV+pVkteTd6Xhpf37lhwz7SgMgIQirBULs2E+nH6pBv Q/2pisgZpfuxRzUVluUTy27HgJDTtlsQYHq3YNok= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id BAA2A385697F for ; Thu, 11 May 2023 14:14:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BAA2A385697F Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34BDwkkI014335 for ; Thu, 11 May 2023 14:14:10 GMT Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3qf776q52y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 May 2023 14:14:09 +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 34BDZOEN024157 for ; Thu, 11 May 2023 14:14:09 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2171.outbound.protection.outlook.com [104.47.56.171]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3qf7y6sbss-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 May 2023 14:14:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jlP2aX5+8bAw8IkKrPo9siUiafCgYljrJpjhp8ie+7oXmeMHIowabymyGsiOIxrXXrspmtHkBM+U/BZLN74OKZ0tdkHLUYu1oPCsz4Br91183iBCq0CpeDeUJTTkqSZS6u3gHLG0hJM+CFzKtLhkeiJPyYObIxX9jyzR+1Kin5apdxHHZHGYoUbTMpxCh/9nRJxVUK6RYDX0uJtB9F0DdBYNSD9kGrbo+KSZVivYBpDJIKtOqGyVfr7vaWwZBjr3hSphqxv6GWszoYZZ4OByXY45DNojlo1DQ357s4NSI8AQ21yZaZSVHKDMyJ2Xd7VEoSyjSeq0MaPGSU7e5DluNA== 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=GB+w7lJCshiMX0h23Ws8QK7tFU+ndn9pNa9xdZ7vMI4=; b=H1gSTJifHmPLfS3EIQxOnLHxtAGqmvPnanuCHRWvCom0TXtrPQ3cjPEhgkGbxrvMmo69M7bt+MjMkgKUM90o3jatG7UmHBGFJ8Gvu8/1PwltFGS6H8jm88E1OH9iH8VSYoaq4Y2g9uLzNpogs3XiojKLce7IiMaVHCzMAINgrAVAy3aMHm+5WqcTgCJBL23XTy7qZl3CvLgiq13SmpT1XpW6v52Qgc1o25PT5hCZn2B8W3lWORZpwTESUTe41oTQ/ufUtXjtP82DqYVM8BArFDH5ReB0wk4DlBqZNBmvGM0fJehwT++vTED+hfpmLc13eCKwhlYAxdEGDu/4+YU8Rw== 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 Received: from BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by DS0PR10MB7271.namprd10.prod.outlook.com (2603:10b6:8:f6::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.31; Thu, 11 May 2023 14:14:06 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::d8ec:1377:664:f516]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::d8ec:1377:664:f516%7]) with mapi id 15.20.6363.033; Thu, 11 May 2023 14:14:06 +0000 To: binutils@sourceware.org Subject: [PATCH 3/4] gas: add tests for BPF V3 atomic instructions Date: Thu, 11 May 2023 16:13:50 +0200 Message-Id: <20230511141351.18886-4-jose.marchesi@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230511141351.18886-1-jose.marchesi@oracle.com> References: <20230511141351.18886-1-jose.marchesi@oracle.com> X-ClientProxiedBy: SN6PR04CA0098.namprd04.prod.outlook.com (2603:10b6:805:f2::39) To BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR10MB2888:EE_|DS0PR10MB7271:EE_ X-MS-Office365-Filtering-Correlation-Id: e291d71d-af03-465f-5411-08db5229fb15 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JlK1uHW/FBimmAmEDOnSPCHzq9tobPTWMTNP6bHJmopV64bEZoU6ivGb+FCMStCG1uB8v4O+t66ElB34PY+zVBiyH/s7zikmkqjh+USGiZ8QqJdUZoKCexLDY3loWDs3ZSOba8Q8f2/5xGSnwFSPScLBvT3IEBwiw7xO6OOxBreKrkTRRVdr041nTGWvgsqK7KraKAuiBKLkNTBAq6vDAnebxJk8UwPFeUQE6wknqjwFTh0AFTcR+WkzJOsqbbLgJm7FYmjKvQ+GRsdMSsPYIeYUnb6rKB29qemwtgDRsDWi5cWp+lh2I1hFd72ZU9+eGamcQEmsNUsYJcfJqWUFyBxljQBC2HbTpHq1w6/NrcZNr0Dr2CJPmwvwzTZX9/XskwXO9X7o85BsvZiuvMGB6AfN/vRYcil4hZgmR8bVHD9Z1wC021HPTg3YJaIwaWd3X7guIIPxTbroADWQwA9z6Brz/xz6WWBhpgDnfPuOOGr+PSthYolNYXWJeJePRiaTm1NUc04bPJuCVTydfgqVBYQJPe3LHg3zPM6+jHPHzqBq5Z3YmObMA3amEm00aP7c 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)(39860400002)(136003)(346002)(366004)(376002)(396003)(451199021)(2616005)(86362001)(83380400001)(186003)(36756003)(66476007)(6916009)(66946007)(66556008)(2906002)(6506007)(6512007)(1076003)(26005)(8936002)(8676002)(38100700002)(41300700001)(6486002)(316002)(6666004)(5660300002)(478600001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: paPezVJi7Ng4ASgfS4Bb8Y0ORdGxNZ3OnhxyB5Owm3GFnM63gqVdGXzFbw8AAfuPKbSRm/SjM5vlVvUcjYLBwsl13vc8kDZXotIi5LJz4zzqrWuSx8ugUt2wiql7lq6ojKV0aFNZWVG/DOmA8o4U9TGGkruwYcrUEkxIszspPXqzBHiK8Vdcb+bfmqoeLSh//AEtnh02fGrskhMaZFvIz4ryC6X9g/9QVDekekh4hnJi+3rGapbYcvwNu0OYFlGCgJBQNo3hSelJYTbylXfNILu4zgayltlHjuxQtXUlF9MfhF8T51Jn0Sejlnfcuv3oqM6/ZxoKHfzP2Uh4NJTTxgwrRzCCN9wDY06nSCJi+uDKcFGuBoFdEdkQ/aru9KEBpROsDsf4YCjmd7i3Kt2mVc8/qYS/xQ/WktvfGCK09wsmpU4zyd59XYfaOgsSfVksOvX/ynbdXgXwQOcvYC7BLi3jvRlxOQT1o2a+MRAGVU6tEoeVwJXubDCt84XWrNh1hkHsBED1FN1fABaLcQ0ceEs9CMeL022D/gVaEAjEcIGoTYzgDXWqA+SsCSn4msmvG0FbV5+2ltwmu9ZB/MWb9nz2W7ul7Bwsj8bjOQBdeucGwyxCRFVtkkKkF4+DwffjCE0rire9hN2LhdNCwRNi0TSRq6y828VZHFzINz0hhWSveDMBVdSLjzO+is3qkP2OJh4+C1tr/WOCYm788Hnl9iNj1uw6bf9N5GocHu0wBD9ECjQf5Xh3OTlPLx/BfS/qiMV8stspgR0Jx75S97WTotYtaVlQ8gtRH+hc0He9TcuoWltxb2lwzwKqfB0V17lgeS7zifekR1UTfB0da2WK+4+BZTyow6T2jS+IUijWdID4k4KrKl4PfcaoHvuvTgZCDW49VxNMRy383BHKm3A9OzbGfXplVXfnXi/06tLmlVYdJURvKBsFC/G5oTKpr9JyG6o3vQHterAeKwKrEcAvQw6CB3ZOCBVSmjuTya3VQr/W5/IKey1WCm3G5e1KzZkwjwu7z+t1Xz2Xp96Mh+4ZFX1EmuOxJuQDVQM60ZOJz3ccDtvf1ia6VV6VqgxP+vLJ+9BJcOwgAfZ2zuFXw4vJMBDo2O036VkGc+9X2zl+/svagC8u5iRyKB885sXG7DNtz4JWlc+fCATE8imYsFDrSXdKIceIEaLMoTGBlrY+585jNkgQJNKnVniRPaZYS3R7sBZUtY+nZIbC5dbg6vDMP3bzwnAxB9RGft7RfexQ41wr/X0QOdukxGPe3VmPBykopc+3BHBaaOLpUHW0PJw5pmZSSDiDjns7HS1wVaxUbpmX6NceH5x8gMHRcj+7xp4sN2BZLBGe01ruZpIWLROdx2XOWQVyQtYQ65OHSddc6KBsNMVagFtnUM/D+zm7Qmq6/X8ouGn0BJV9XoABkM1t2weQgZ0I3yHXE/POilA4s+hmayiAph6NooG4YUChRxMOmufpSVEi91BYR1srEyN7N5w5NxIrQZPu4l26zS7uvxNe3wTgQca9ZeyB8VXucDEVUL9VMGMWQe5s04VnMlv61jOdlmTQ0ji0u/AI3cNXKV1axqyalOjsiGtGoS5tpvIg2VQcdeUOSp+iZJ110Ar9VQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5SU6dC8MJVBJGyXyNUBOoPrpgD0W9v5eWdo2pGTbH2oTCOu3auyBra60WNdN9515IYGTj7WL26BSQjqIYvjq+9rLa/CDan7OYlKm/rH2BcN1aqIxIwxMVVhkSjX7/6SKSU5oBtyLXsRMPQT4G0oBf7i0gBkRMBb2e+wiGdiwJPBOC3zzGeMBR5G9+1IO7ssMEW9jHTZCYRBlLfg/hpuTiecJCkmXOuLDpjwQ1Tkxba9avoI6u03J1fasaOGyo3C1Fcef3jo6InFsDQ4/xUB36TlxzOO2mV0XqSZ0J/PmhMBLPgtSJy0DggkgoX3E8EOYHKYar5v3/uk9f1RxMa0FmFyRWIzxxvQAXOay9BA+uDHjhxqLPCbMwuj6E+rF9YHpqj+zFnmiCmBsOmM29LWE5k/JrP3nO1PU84D5Bw0ry6xkDn5jRv6JkSl3J49NywvzrZmSzm17hbOzjBIFvGmktgXWrjSBUCZDPPDUL+11lZvNaiwdFkpatTTRv8M53kBTD3+SobGIzhwer86pWn27cDGxberNN23Ki12j4wg0vAlVWFLJAWurofxIkksQCwd8jBmu3/ZXjQrAZmPwLBqPVUC2/YCn4xhR54lXAhikS6P55d/HlI0i+rlBdwLWNcSqLm+LR6LRZlve7PWGLCZQ1qTXBV7btEcXSCXeCJ7IwNIHdqO8up+t7CrKRK+jW/7MiPY9v/ieKhJPChgUKaCVIstBK1r1D3R6uk5Aw+YmxIAMTQWmH/SbdAJorm+1s3Ub X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e291d71d-af03-465f-5411-08db5229fb15 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2023 14:14:06.4806 (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: I8Mfc6a+IsczNFFaFrEjX3gWzyLGetXSQHKGAwyD2P4/BqNG6DaZtSkGa32gDAFDHa34Kuqanuro/eg6S/Z+sLPcAjIoCVJibmwGnEDclcE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7271 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-11_11,2023-05-05_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 adultscore=0 bulkscore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305110123 X-Proofpoint-ORIG-GUID: AZuQrum-7H946HUq9VPXajBTx8oHcbXK X-Proofpoint-GUID: AZuQrum-7H946HUq9VPXajBTx8oHcbXK X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "Jose E. Marchesi via Binutils" From: "Jose E. Marchesi" Reply-To: "Jose E. Marchesi" Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765607566937269577?= X-GMAIL-MSGID: =?utf-8?q?1765607566937269577?= 2023-05-10 Jose E. Marchesi * testsuite/gas/bpf/atomic-v3.s: New file. * testsuite/gas/bpf/atomic-v3.d: Likewise. * testsuite/gas/bpf/atomic-v3-be.d: Likewise. * testsuite/gas/bpf/bpf.exp: Run atomic-v3 and atomic-v3-be. --- gas/ChangeLog | 9 ++++++++- gas/testsuite/gas/bpf/atomic-v3-be.d | 30 ++++++++++++++++++++++++++++ gas/testsuite/gas/bpf/atomic-v3.d | 30 ++++++++++++++++++++++++++++ gas/testsuite/gas/bpf/atomic-v3.s | 22 ++++++++++++++++++++ gas/testsuite/gas/bpf/bpf.exp | 2 ++ 5 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 gas/testsuite/gas/bpf/atomic-v3-be.d create mode 100644 gas/testsuite/gas/bpf/atomic-v3.d create mode 100644 gas/testsuite/gas/bpf/atomic-v3.s diff --git a/gas/ChangeLog b/gas/ChangeLog index 966f1c5de83..a16647bb4a4 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,8 +1,15 @@ +2023-05-10 Jose E. Marchesi + + * testsuite/gas/bpf/atomic-v3.s: New file. + * testsuite/gas/bpf/atomic-v3.d: Likewise. + * testsuite/gas/bpf/atomic-v3-be.d: Likewise. + * testsuite/gas/bpf/bpf.exp: Run atomic-v3 and atomic-v3-be. + 2023-04-27 Jose E. Marchesi * testsuite/gas/bpf/mem.dump: New file. * testsuite/gas/bpf/mem-pseudoc.d: Likewise. - * testsuite/gas/bpf/mem.d: #dump mem.dump. + * testsuite/gas/bpf/mem.d: #dump mem.dump. * testsuite/gas/bpf/lddw.dump: New file. * testsuite/gas/bpf/lddw-pseudoc.d: Likewise. * testsuite/gas/bpf/lddw.d: #dump lddw.dump. diff --git a/gas/testsuite/gas/bpf/atomic-v3-be.d b/gas/testsuite/gas/bpf/atomic-v3-be.d new file mode 100644 index 00000000000..6648bc669b3 --- /dev/null +++ b/gas/testsuite/gas/bpf/atomic-v3-be.d @@ -0,0 +1,30 @@ +#as: --EB +#objdump: -dr +#source: atomic-v3.s +#name: eBPF V3 atomic instructions, big-endian, normal syntax + +.*: +file format .*bpf.* + +Disassembly of section .text: + +0+ <.text>: + 0: db 12 1e ef 00 00 00 00 xadddw \[%r1\+0x1eef\],%r2 + 8: c3 12 1e ef 00 00 00 00 xaddw \[%r1\+0x1eef\],%r2 + 10: db 12 1e ef 00 00 00 40 xordw \[%r1\+0x1eef\],%r2 + 18: c3 12 1e ef 00 00 00 40 xorw \[%r1\+0x1eef\],%r2 + 20: db 12 1e ef 00 00 00 50 xanddw \[%r1\+0x1eef\],%r2 + 28: c3 12 1e ef 00 00 00 50 xandw \[%r1\+0x1eef\],%r2 + 30: db 12 1e ef 00 00 00 a0 xxordw \[%r1\+0x1eef\],%r2 + 38: c3 12 1e ef 00 00 00 a0 xxorw \[%r1\+0x1eef\],%r2 + 40: db 12 1e ef 00 00 00 01 xfadddw \[%r1\+0x1eef\],%r2 + 48: c3 12 1e ef 00 00 00 01 xfaddw \[%r1\+0x1eef\],%r2 + 50: db 12 1e ef 00 00 00 41 xfordw \[%r1\+0x1eef\],%r2 + 58: c3 12 1e ef 00 00 00 41 xforw \[%r1\+0x1eef\],%r2 + 60: db 12 1e ef 00 00 00 51 xfanddw \[%r1\+0x1eef\],%r2 + 68: c3 12 1e ef 00 00 00 51 xfandw \[%r1\+0x1eef\],%r2 + 70: db 12 1e ef 00 00 00 a1 xfxordw \[%r1\+0x1eef\],%r2 + 78: c3 12 1e ef 00 00 00 a1 xfxorw \[%r1\+0x1eef\],%r2 + 80: db 12 1e ef 00 00 00 e1 xchgdw \[%r1\+0x1eef\],%r2 + 88: c3 12 1e ef 00 00 00 e1 xchgw \[%r1\+0x1eef\],%r2 + 90: db 12 1e ef 00 00 00 f1 xcmpdw \[%r1\+0x1eef\],%r2 + 98: c3 12 1e ef 00 00 00 f1 xcmpw \[%r1\+0x1eef\],%r2 diff --git a/gas/testsuite/gas/bpf/atomic-v3.d b/gas/testsuite/gas/bpf/atomic-v3.d new file mode 100644 index 00000000000..23649c7e801 --- /dev/null +++ b/gas/testsuite/gas/bpf/atomic-v3.d @@ -0,0 +1,30 @@ +#as: --EL +#objdump: -dr +#source: atomic-v3.s +#name: eBPF V3 atomic instructions, litle-endian, normal syntax + +.*: +file format .*bpf.* + +Disassembly of section .text: + +0+ <.text>: + 0: db 21 ef 1e 00 00 00 00 xadddw \[%r1\+0x1eef\],%r2 + 8: c3 21 ef 1e 00 00 00 00 xaddw \[%r1\+0x1eef\],%r2 + 10: db 21 ef 1e 40 00 00 00 xordw \[%r1\+0x1eef\],%r2 + 18: c3 21 ef 1e 40 00 00 00 xorw \[%r1\+0x1eef\],%r2 + 20: db 21 ef 1e 50 00 00 00 xanddw \[%r1\+0x1eef\],%r2 + 28: c3 21 ef 1e 50 00 00 00 xandw \[%r1\+0x1eef\],%r2 + 30: db 21 ef 1e a0 00 00 00 xxordw \[%r1\+0x1eef\],%r2 + 38: c3 21 ef 1e a0 00 00 00 xxorw \[%r1\+0x1eef\],%r2 + 40: db 21 ef 1e 01 00 00 00 xfadddw \[%r1\+0x1eef\],%r2 + 48: c3 21 ef 1e 01 00 00 00 xfaddw \[%r1\+0x1eef\],%r2 + 50: db 21 ef 1e 41 00 00 00 xfordw \[%r1\+0x1eef\],%r2 + 58: c3 21 ef 1e 41 00 00 00 xforw \[%r1\+0x1eef\],%r2 + 60: db 21 ef 1e 51 00 00 00 xfanddw \[%r1\+0x1eef\],%r2 + 68: c3 21 ef 1e 51 00 00 00 xfandw \[%r1\+0x1eef\],%r2 + 70: db 21 ef 1e a1 00 00 00 xfxordw \[%r1\+0x1eef\],%r2 + 78: c3 21 ef 1e a1 00 00 00 xfxorw \[%r1\+0x1eef\],%r2 + 80: db 21 ef 1e e1 00 00 00 xchgdw \[%r1\+0x1eef\],%r2 + 88: c3 21 ef 1e e1 00 00 00 xchgw \[%r1\+0x1eef\],%r2 + 90: db 21 ef 1e f1 00 00 00 xcmpdw \[%r1\+0x1eef\],%r2 + 98: c3 21 ef 1e f1 00 00 00 xcmpw \[%r1\+0x1eef\],%r2 diff --git a/gas/testsuite/gas/bpf/atomic-v3.s b/gas/testsuite/gas/bpf/atomic-v3.s new file mode 100644 index 00000000000..a17e95b6793 --- /dev/null +++ b/gas/testsuite/gas/bpf/atomic-v3.s @@ -0,0 +1,22 @@ + # eBPF v3 atomic instructions + .text + xadddw [%r1+0x1eef], %r2 + xaddw [%r1+0x1eef], %r2 + xordw [%r1+0x1eef], %r2 + xorw [%r1+0x1eef], %r2 + xanddw [%r1+0x1eef], %r2 + xandw [%r1+0x1eef], %r2 + xxordw [%r1+0x1eef], %r2 + xxorw [%r1+0x1eef], %r2 + xfadddw [%r1+0x1eef], %r2 + xfaddw [%r1+0x1eef], %r2 + xfordw [%r1+0x1eef], %r2 + xforw [%r1+0x1eef], %r2 + xfanddw [%r1+0x1eef], %r2 + xfandw [%r1+0x1eef], %r2 + xfxordw [%r1+0x1eef], %r2 + xfxorw [%r1+0x1eef], %r2 + xchgdw [%r1+0x1eef], %r2 + xchgw [%r1+0x1eef], %r2 + xcmpdw [%r1+0x1eef], %r2 + xcmpw [%r1+0x1eef], %r2 diff --git a/gas/testsuite/gas/bpf/bpf.exp b/gas/testsuite/gas/bpf/bpf.exp index 5d91805f478..041abdf7e35 100644 --- a/gas/testsuite/gas/bpf/bpf.exp +++ b/gas/testsuite/gas/bpf/bpf.exp @@ -34,6 +34,7 @@ if {[istarget bpf*-*-*]} { run_dump_test exit run_dump_test atomic run_dump_test atomic-pseudoc + run_dump_test atomic-v3 run_dump_test data run_dump_test pseudoc-normal @@ -48,6 +49,7 @@ if {[istarget bpf*-*-*]} { run_dump_test call-be run_dump_test exit-be run_dump_test atomic-be + run_dump_test atomic-v3-be run_dump_test data-be run_dump_test pseudoc-normal-be From patchwork Thu May 11 14:13:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jose E. Marchesi" X-Patchwork-Id: 92637 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:6358:3046:b0:115:7a1d:dabb with SMTP id p6csp4470866rwl; Thu, 11 May 2023 07:17:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5Ia6dHAy0C90agvww1RLCZrk73bA0e3XcZyPmq1wVmH+Ywx0bA4u1iv3kVg5DIR3v4MIeI X-Received: by 2002:a05:6402:10cc:b0:502:2494:b8fc with SMTP id p12-20020a05640210cc00b005022494b8fcmr15682418edu.7.1683814621898; Thu, 11 May 2023 07:17:01 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id k8-20020aa7d8c8000000b0050bd2211c6asi2838205eds.374.2023.05.11.07.17.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 May 2023 07:17:01 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=qy64F97F; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9DB043856267 for ; Thu, 11 May 2023 14:15:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9DB043856267 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1683814536; bh=XUW3KYM+wkYo6HU6ljHhLICsg6zh9T9TEbsvOVkm/gA=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=qy64F97F4DJdUKYFwDqatxkRd9AptSVCz3UFuOmARP/bCKIeIdXrnsmaTWPYK1dxP xpwBLhRIkCSd8+mWjlarGQBBst8MfkUpeklQvBIQJyzIhKwzVEko0FXoSaqYrQmO+E SjC+EniCaPoy6ZZ96mmiz1ZTsz4gGhKd2mKRy+ow= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id C8322385696B for ; Thu, 11 May 2023 14:14:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C8322385696B Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34BDwgWc027630 for ; Thu, 11 May 2023 14:14:14 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3qf77779cy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 May 2023 14:14:13 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 34BCxBrm030587 for ; Thu, 11 May 2023 14:14:12 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2177.outbound.protection.outlook.com [104.47.56.177]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3qf81h7s7m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 May 2023 14:14:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dtb1AIEwHjxQ8s24WFt6bJtpypWCQrSd38WNJ6CfHB/lhHFuZQWmRHUNSkYd+MMTZXe/JfLEFMSaIpIEs4XJGHhtDB0pad2b5rouDQ+Bmdbqck6dFmCrYzuoC9WaCOSbSwciLZ6UNUoTOKwfMFVpwTAhIHgKptXlNZ8H9Pv3j3Bvka3Z2cqwFcvWUzVdmB6rjzWHEiWDUgbQkMqx5gl4T79Ws5Jv7qyi9kzIOY5JCgnGvIeOAWdDnkeyrzi9mJai4hmyAPJ3qQisaX2z99Lh9JVkdLwepDKCHK+oZr4SJWAyTLOjmswUGLjAgvW8Bxa6v1We0nV/CosRNHZoPgsnnA== 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=XUW3KYM+wkYo6HU6ljHhLICsg6zh9T9TEbsvOVkm/gA=; b=WbBVbz67Ta/95dJv0MDRiXwOVa29xtq9iZ27ZDESwg62DoLl9ZlaLZHw8GvxuRaD4BP/yf+mv8SKjcN4HwIaHIU+oIyHit7y9cBKOvL/OcdHgvrW04bONZ5nFAvdhYMnSzUs/RGmCVOiJms1jUXmCXXi+Q9qatj5e8Y7Xxg4n1mbVqQW5fevigt6SqFSm9dIjQU7yFnHW1tZ9d1lCI5eaLgBpI/VQgYbNmdq0Nbm0HrDXY+BjjvmyK6R6/p8J/k5PIHOHVJs228k2gZmvLOOzbgR7b4tYsX22bMyeBYp50buEer1AqAjNjXT9SKkOvMu9O4ILTwWgnu6QUNhv/FcEg== 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 Received: from BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by DS0PR10MB7271.namprd10.prod.outlook.com (2603:10b6:8:f6::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.31; Thu, 11 May 2023 14:14:10 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::d8ec:1377:664:f516]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::d8ec:1377:664:f516%7]) with mapi id 15.20.6363.033; Thu, 11 May 2023 14:14:10 +0000 To: binutils@sourceware.org Subject: [PATCH 4/4] gas: document V3 BPF atomic instructions in the GAS manual Date: Thu, 11 May 2023 16:13:51 +0200 Message-Id: <20230511141351.18886-5-jose.marchesi@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230511141351.18886-1-jose.marchesi@oracle.com> References: <20230511141351.18886-1-jose.marchesi@oracle.com> X-ClientProxiedBy: SA9PR13CA0039.namprd13.prod.outlook.com (2603:10b6:806:22::14) To BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR10MB2888:EE_|DS0PR10MB7271:EE_ X-MS-Office365-Filtering-Correlation-Id: 8dad8382-c48d-4821-1d84-08db5229fd30 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sG3AxNixGMUIWGc01wQrIiO/XpVCbPD8krYZqFX9ATALpQ/ehswEK26RkjBoKSTJ1K+yFo3b/SAchTHc7uaRR7hdd78ni0SU3tzMVBx0kMqIci5rfx3P93Tnxzv/+TYi2kZCjeaPiYd1FUVV27LREQUdaY0o+p/SqM/eF5LcJ7J9poWXuMGxsk2Jiig6IiT1YjoK4TmNPD+VaSCwzOjgYcKHxWh1d65CiuVwZzr0PdQmXFHT6V21A4v3OoFrC3V0xIsoeoxAelXkiq92gKhCyVxHQ/FLorS0VFftqHrPtdT00ZAlTYy35sSqMb5MKLC+v853Z3VwzXZKgD79sWALq0IRW7PAbK9MjUsz2d0/EN1qrZtD5w2HX9dg0LKvbhhEXJWOjDefJeW0HRuqZ4fkDvL3RP/YrDXZnxkvxz1dzEzBmj5OELE98m+XkN8O72mnptPf5mwqH3eW+LxAhyW7NEPn5NZgNkzVCaKqJ5MliJR+hGb4Bnh+C+5zIR0h/hUvgzUbwQGEwMq4FfEXMj2gY7dacWWIZ/u5JfNhoAGVfhH7AparsK1a2ZeoHO64K78r 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)(39860400002)(136003)(346002)(366004)(376002)(396003)(451199021)(2616005)(86362001)(83380400001)(186003)(36756003)(66476007)(6916009)(66946007)(66556008)(2906002)(6506007)(6512007)(1076003)(26005)(8936002)(8676002)(38100700002)(41300700001)(6486002)(316002)(6666004)(5660300002)(478600001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TBRkFvPE5mU6bruXPZtH3C9rNTysxXN6UBPGZOthIXVsR6Tmh4oHIUNNuDjdj0+g3Y8dfiwiMIW+3xrTwDRbziBv6/CRfX4JlxJ/vONuYORExUMYB1+YFdWqNocUE7HFsoiUAGjct5y5d2l0mG+v0nhvdSonHKcgRUKZq5poODWwVenqleXh4gZnnANOYHr2Mqdh15IN1GVs/mEXKpXvEG7p6yLIQwAENcb+v8x/0hTNnnIRV/CVzDbXnSNfdcKDOB573tneqSRClm3pA0+k0rUBAFM438YMhDZ3044Hedh89ucQoUm0sox4uD9jjPXEQ/tQ8IByTklP4lGWyADRJWUoW/IUOW4ndkq+O0kXGTiSInbAmFrCxNYzITzUie4orkC/Uu/pNlTKx+0G83e4OHgezkai3riZ6jGVHW3ud2P5KarRMGwOlHZuNlNDtu6fAlAf1W+imhej3XI4jGGGSl3Z0L4nhJyRY+4bsrJJS2I0gj0dM5gmTlalYmKFBF3thYTfV3b2lDW9RHOU8/gcezcFe3yTfy0ioTjV63uDZvsYkBFao2FyNvNOr1bOLR+akVtMvNBnBEybit2ylxZ2kCxPodito63hJdbf6WbFkxWsrviPs5s9QJQcqsQg5t/cFw2MVixVV+e9+c+l6+1OBp/t83HFD2CX92w+PeYhlMHdbLbt0J64mbN/SqIFjEfTj43LCs3lpKigEbbWMAYZpzVM27SMCEtMHk3Jxh5l1AAhKeCBbUGiQSIVlAFNL739pSpfx/7eDMB3o0UFrWoXAyWaxRzJDRhPXAJsKH7fNxYnX5RIhXrSUzEezmfsiy0S7mePQTHsq9zR2FntKeBt/1/3MIugP2gzaL7g490goOa0b72iUBohwR/cZ7oH/kgFYfZ7Lhhhj6leQnJvNRaeMiOSLkITliVSv9xIMGCwQzcUhfaRF+LZWGUQ0o7APT1cN4gcuqsK0UdvtgAi9D9USVQzz4jH2MQLkWuJZ7NmdYxQ7MYG3+8uxsKTH10K8B5rjzzVW6R5GnG1Jp5J6wjnuielIhNUKyvQLatvf8sesOsBXamlGClVqcvB59AppzMdkMGgMZNOoqZuJdu13ew3+u7mmwY2duqIrUeSP4M32qym8KIrFjJns+onIVme5AXBThessuwHvPMoKcyWfv+8u7YsTBJRUH3/4z/ErcrheB/YREWXP7xEXzFggbMRTqVudDjPtP/D77JYRTXPFKmM5FE90BePNh30XT0vU67KD8Dli3P93R2z0WM6KsyIFnt7LS3NAPLWp/VjsO7UgDWw8+e5yi2Tqwm2r1efCeK4Z4C5ZlJ7TUSf6Kb0e//6ZDgVGVOEx+qRNwywYdQ0/v+79JXtvvhJSDrDJAqpg4umaTGScXK/vjVcASfqB8cYwgLtu9sMXq5ZhXa+OrUVt5DriG6bz8PpXOmFcQbckw9IkcRvNPx8IAcgWfAfcuUZsFFRjefkFkSHxrWJc7lIkAE8CtsWG67xRMK0AX7hiXfu/38Lqnu4g1P3ip+d2gN7RgXz4OG4/r41DtxnLV4tGxHzgrFwoinlDrgwQlhlk1T9o2zdvkoJRWAwORCQ7JHUCBnbqfjGaF0c8RimP9H94nJpTw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: zHGfk1yAVIsKnUR67jGlek+0sRJ+DEdw3n+DqlbZ8PjmS1M/xPkwurC6xXzCEXlI8dd9JrQrsnzmHhWNUemMTTWfU3IVGPCY3tRbJyjyzFBsYZjS+/yQ+O+ws+EQQ6O4dBiB3VTjsionk9ZXP09Wz0hMBrwmBoaNGSEOxCUs177W+F5de/CmyZtVSYrgAE7FJXKjjx/xCk14coAJBd/WwGSpaJQtlc/g3zJCs1DDJWInMYDC0fhcJyaaZEn8h8OAcwuTBpcf2/ecMZ6Y8emA8VIzsClZQXM2ipp0stUwBN8aTZRhvsViG1zyQzo/deHu2k+ej7t3svH+zq5TWDYkmrj3nwsCa7rpCD1XZTa4UwZj9JInojGOcuHP1fqfpnKdiyhjoyScoA1IpTSTy3t3dDnmWXVXHloMCMN6vZqZKFvcwxqMfvGVKmrqOj8U+7zrH5+t3W+4VYc9/oEVR046WQyO0SG8HkgNZc68Z12KbT9398hLbzpVAZOcQQh/hPLu3q6m09BFEVSfga1ME4UtjX7VtYR6Pq4uOpn7C0JLvMhU7DpZzKOo1QFwirii0t3DQz/qQVXiIAii+lYZLBXSOweuCXxr4NN+qhAAJeNqYUm8LrK1aiLgf8weaFrSe3suatHl+8rc4bQXUOZ8EZ4id1lGtCM9OtsYimjoHn6H6rnRg/Ht6Zy8celiJ57CrwJylw6z+XkaH1aiOT4yxqpW1T6x0eJScNriljdLjxCC+OLyd7ETfLoCKOrgJEnIKVR0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8dad8382-c48d-4821-1d84-08db5229fd30 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2023 14:14:09.9651 (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: HKTYmugJxINi5bXIgJkz/qslYCJlVra8guLcCIWue9FvoZ+KD9c3eUABnxVjoe7sZPcYx4Jkc7SSLE1PAJPppIVXKZNP0GdNGzWt2iWJ4Yc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7271 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-11_11,2023-05-05_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0 mlxscore=0 bulkscore=0 suspectscore=0 malwarescore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305110123 X-Proofpoint-GUID: fJNm3kFhsSHrXxegaNNiO9bl4ObyPN8O X-Proofpoint-ORIG-GUID: fJNm3kFhsSHrXxegaNNiO9bl4ObyPN8O X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "Jose E. Marchesi via Binutils" From: "Jose E. Marchesi" Reply-To: "Jose E. Marchesi" Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765607601092400706?= X-GMAIL-MSGID: =?utf-8?q?1765607601092400706?= gas/ChangeLog: 2023-05-10 Jose E. Marchesi * doc/c-bpf.texi (BPF Opcodes): Document the V3 BPF atomic instructions. --- gas/ChangeLog | 5 +++++ gas/doc/c-bpf.texi | 56 +++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 56 insertions(+), 5 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index a16647bb4a4..987b0c8704f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2023-05-10 Jose E. Marchesi + + * doc/c-bpf.texi (BPF Opcodes): Document the V3 BPF atomic + instructions. + 2023-05-10 Jose E. Marchesi * testsuite/gas/bpf/atomic-v3.s: New file. diff --git a/gas/doc/c-bpf.texi b/gas/doc/c-bpf.texi index 0756796adc9..917e0dc1628 100644 --- a/gas/doc/c-bpf.texi +++ b/gas/doc/c-bpf.texi @@ -377,14 +377,60 @@ Terminate the eBPF program. @subsubsection Atomic instructions -Atomic exchange-and-add instructions are provided in two flavors: one -for swapping 64-bit quantities and another for 32-bit quantities. +BPF provides a set of instructions to perform arithmetic and logical +operations on stored data atomically. These are: @table @code -@item xadddw [%d+offset16],%s -Exchange-and-add a 64-bit value at the specified location. @item xaddw [%d+offset16],%s -Exchange-and-add a 32-bit value at the specified location. +@itemx xadddw [%d+offset16],%s +Add @code{%s} to the 32 or 64 bit signed integer stored in the +specified memory location and store the result, atomically. +@item xorw [%d+offset16],%s +@itemx xordw [%d+offset16],%s +Perform a bit-wise or operation between @code{%s} and the 32 or 64 bit +signed integer stored in the specified memory location and store the +result, atomically. +@item xxorw [%d+offset16],%s +@itemx xxordw [%d+offset16],%s +Perform a bit-wise xor operation between @code{%s} and the 32 or 64 bit +signed integer stored in the specified memory location and store the +result, atomically. +@end table + +@noindent +Additionally, the following instructions allow to perform arithmetic +and logical operations on stored data and then fetching the original +stored value in a register, atomically: + +@table @code +@item xfaddw [%d+offset16],%s +@itemx xfadddw [%d+offset16],%s +Add @code{%s} to the 32 or 64 bit signed integer stored in the +specified memory location, store the result, and set @code{%s} to the +value originally stored in the memory location, atomically. +@item xforw [%d+offset16],%s +@itemx xfordw [%d+offset16],%s +Perform a bit-wise or operation between @code{%s} and the 32 or 64 bit +signed integer stored in the specified memory location, store the +result, and set @code{%s} to the value originally stored in the memory +location, atomically. +@item xfxorw [%d+offset16],%s +@itemx xfxordw [%d+offset16],%s +Perform a bit-wise xor operation between @code{%s} and the 32 or 64 +bit signed integer stored in the specified memory location, store the +result, and set @code{%s} to the value originally stored in the memory +location, atomically. +@item xchgw [%d+offset16],%s +@itemx xchgdw [%d+offset16],%s +Exchange the 32 or 64 bit values in @code{%s} and the specified memory +location, atomically. +@item xcmpw [%d+offset16],%s +@itemx xcmpdw [%d+offset16],%s +Compare and exchange operation. Compare the 32 or 64 bit value stored +in the specified memory location to the contents of the @code{%r0} +register. If they are equal, store @code{%s} in the memory location. +In any case, update @code{%r0} with the original contents of the +memory location. @end table @node BPF Pseudo-C Syntax