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 525913858C36 for ; Wed, 26 Apr 2023 17:31:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 525913858C36 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 33QGwqd1017115 for ; Wed, 26 Apr 2023 17:31:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=Et0tBAu1fhKGiD6e5o0zCxdeONSjClzSGs9dI8F3Pz4=; b=WpmuihJPwYbWdYRfrPqnHPAHGvrpG2Op0+4KQnYtmuWjjw8MIfXIzoLoaQLPhaaY2t1X ZVP0yu6ZwPP4sXHZyBdI7KPvbPZD6w7m+8qaKqAY8AxuZ1HMNZlAET5jrHW3Xh/zK5r+ J0zGkuhW9YbVuWclM7sPC7DC+JolzdoJ2CJCa98tkjc9+PLEt2Xl5VzxOQCpsFIw/vqu X+yDYDsVPMB7s9cJ/U3/H37wmTlaR6eS7JTBDCdrKQU6Okh6DqxOvtPLlc40vJFvoFyI DyhjMBVFOgqf7G7MDfgBT82JvFP0JSjyQK27PFZKXvsU+E0jEl5muyM1hIjlYLSJ8aBX ww== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3q46c4a3qp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 26 Apr 2023 17:31:47 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 33QH2EMn032602 for ; Wed, 26 Apr 2023 17:31:46 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2102.outbound.protection.outlook.com [104.47.55.102]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3q4618fbtb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 26 Apr 2023 17:31:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NVzpPQGfeAMgrhFTzNd+JW6Ht99B318jGbQajzJfI0AWrgY0KFyFXyJECAUmkxY/GN5etH5F0hLQYC+7x5icFthrDN1HnJjfQfK3rCUVysY6mwKsBJ9jS6EbzU0rjcJJXW1qqIjX3orHo2KQZSRqRujAnxiBMYi9mD2DlFT9hSMN5TSYdb/vO3fhxfPOEpxl9LTYIhGFCrCITK8kBFfwySHMrhDHzqSVw0NOZH+gGWc2AyZl9Et9x9Q9MMWqL134vSUbpr6NRtZ3s0d9JYkVmXd3Vow09DbLBXZkHHcbL8+cZfRBSWJYxTiNT1uBTj4n0TK4ExAIF38ybt1o2CWnow== 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=Et0tBAu1fhKGiD6e5o0zCxdeONSjClzSGs9dI8F3Pz4=; b=H5EEVuYwSvQbkWelrbnGr2GBuOlT2DPEaPi/FBGY23Er64pKIYip9PAeZfgZukZ7mKrtzbtxlA9ZrIqIy68PyFzwhB6a6HHgjiUMojOs+4w2LjK8kchCxpUIubEMmjL+eDHN0uZqF34vkqJt63mrFedve05VuSB6Mrv38OoxPURcC62aUj3y7P9rSH26+jUNjQXtd1TBkKNfVxvwlmKFwWZUVlVOhb+poPWAw9nhEZMN3WsJZbPsHz2mlKCbhtNYba8A0Ex7NYLWiH7fs4Kq66cQHQ21Ffi7L1oaoXZwTUu8r3H/PIVR4ZtnoH4RaA7YrAgWTgjluDGbQB5aTUIRDQ== 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=Et0tBAu1fhKGiD6e5o0zCxdeONSjClzSGs9dI8F3Pz4=; b=g6I9SOTGx5INUKLMKCh0RYEn2LLjyzm5pyP7TsyCVmiPZjNF64N4hq93brtYC5o2+CA2e+CQpdQTQLv26eVU4d4sA1HDckO4BL1AMkVCFXu905n+r7IixG19zhnUf/zbgtqrYU2+Vx35Cut4K4ma9WlGzsJxHBF/EHLB10khNSU= Received: from BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by PH0PR10MB5730.namprd10.prod.outlook.com (2603:10b6:510:148::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Wed, 26 Apr 2023 17:31:37 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::53da:d3b:d2e4:d40]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::53da:d3b:d2e4:d40%6]) with mapi id 15.20.6319.033; Wed, 26 Apr 2023 17:31:37 +0000 From: "Jose E. Marchesi" To: binutils@sourceware.org Subject: [COMMITTED 2/3] gas: BPF pseudo-c syntax tests Date: Wed, 26 Apr 2023 19:31:22 +0200 Message-Id: <20230426173123.24564-2-jose.marchesi@oracle.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230426173123.24564-1-jose.marchesi@oracle.com> References: <20230426173123.24564-1-jose.marchesi@oracle.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: AS4P189CA0044.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5dd::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_|PH0PR10MB5730:EE_ X-MS-Office365-Filtering-Correlation-Id: eaecea35-0afc-43f6-db7b-08db467c1660 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0HqBJhIJgTND9TiYyQhtr+CEIaILQiV3P+O+SyknYtCe0BpItfFppygsVZ9i8sAJLHMiHpzZLBY0Ntg7cJ7q6gVb5dT7pq5gRP2G7FY1W/I8NaqfgbnGVge5LuIk7y69+A0tm5zX6FBW+ujPLdjr84+yMMVG0NrapidQLi+IQdwyoydeDalAZz1CO+76vfBZXihb8x+Br6j6H1z8vtf/N+5tzlZTfLINiCcw9bNA3lgwxd/SJ45rdG56cvaRXUNDUX+Tk7CXHNiXEW4JiBfnMJWRJrcDXiz5bpI/xe48YNOFIoR9hAWPITIwa3Yw9nzTvR9qJEOFBtryNeAD4PT3TFQIoI/02+HLu+XO9bCSm6VehixNWX1Anb1QinEAHxJT95/mA+1mS43yDCKJ2hBc6if/rcqOH6/5a0KO00IMPD4hm64z0fgDQysom8yxhrTcxiS2QX0qbCu2vpBfsrkJUJDRTs9HUG2IvX4pV0QYETMoqMw4l1NzJiFP07NlMUsV8c8jDk2oqNfh4Re3+QXfn7CJ8dXsb7jSAY2gIyQElLQ3xNd5WPP6CTjh68GlzriS 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)(366004)(346002)(396003)(39860400002)(376002)(136003)(451199021)(38100700002)(6486002)(6916009)(316002)(6666004)(478600001)(36756003)(66556008)(66946007)(41300700001)(86362001)(66476007)(186003)(1076003)(8936002)(83380400001)(2616005)(26005)(6512007)(6506007)(8676002)(2906002)(30864003)(5660300002)(579004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LYa6gt21mXmCCas6G6sjTzw1bp9dBz5Q8vx9DVDvmExfNG4+UR35qOILMPdM?= =?us-ascii?Q?hVsskK2FjfvqKfPnpVp3JDuodIxvh0xkPMWJf92IhwBIcyJDr8AsLkwR7TMr?= =?us-ascii?Q?R+IK6va/vY02ssppvRW9a1I/yDlgydO2PwjQdsrv+V8RJgRJAD/J7iu/m+js?= =?us-ascii?Q?KIo9x9nx6xGVUAqZuYiBZM4Js7h4i1jI5cnh4AQLt4gBO8Bm0LcfuL1kdRxP?= =?us-ascii?Q?4oji0T+8KkjWCMliM4o/kHlfkqUQoGzRC8IsnVtz2ZESVENqKjXNiEkyQAV4?= =?us-ascii?Q?UV4sAjIYkp5Wz4Iba6bRQtQbjpQ+xHg7DeGsnM7E8kPigd7ecRd6/fHYlKf+?= =?us-ascii?Q?O3oi7rUWmyxbTC1PQQB2/gkyil91f9Iky3KgZVelZFWGvyh5IMLQC0Y6InGr?= =?us-ascii?Q?Pw9H6cai3Eq+Fd2g9nV1XQ3d3+xVx0iYLjeM9WI6q/7SNLgyyQOE32+V9TDI?= =?us-ascii?Q?SmWByDKJKn+s8Yow7YRufH4X8WI1GJVKGEiujA5idq1SkKxTmBhq0LFR334W?= =?us-ascii?Q?hXy1vEb1tyQ5qysR8kdXVcfAm9EjGqzlIuw35tN+dP5lySi7C9hsSKpJ9RJ5?= =?us-ascii?Q?BDxMunI4Ta8i0ftSnaU/VEOYcCwr1kXnJXGHGxFfIJR17REECs7ZKGWipIV3?= =?us-ascii?Q?4Jp6QMoTcQK1Trh/VvEIPK3xOLf5hsO0RMXEeRpk/SM3Kmp0MssYcRnWdUaa?= =?us-ascii?Q?PIlu6dpodqRH33fZqgOgG3gBeNRmqXct8P/4JWnwK/9WuDZ0vlwKWfrYFg8C?= =?us-ascii?Q?2BvfV0XgKH8/0DQNn//qhBNloTO9m/Im12MqyUjshcnRMy1adhQe7AWLCrL1?= =?us-ascii?Q?sCINHVbDvqvYFPwZY4tipSK4VtH5YDyfrLdg5Wu8013uacXWyaPCb6YCaNRw?= =?us-ascii?Q?yi0fJCUZ2i3o5ziwR0jddi8quHWi3d2uJY+AYGJTkncZJHqKljvyvQLadUT5?= =?us-ascii?Q?TkVQZ5kpoYWGh7uCyVV2JwuIk7sAPgjOV1msEl49qWm5qSghMZ7IIjzYLOVW?= =?us-ascii?Q?1ZGvblaOE7YVJRLEWrSklO9Sp1lzidoFiuFAYtKHPF+TqC90BvE0O+3dYORW?= =?us-ascii?Q?oiyaDkkFNhjewDKDtWgdODrbbgwFCjTDzCyDaO5/k9ta66ph7yCtxEl1l3z5?= =?us-ascii?Q?TDewDQHF0E/H+Y/SnwLQS2FqwRu7rPl+xNgEeodhikHWLzgNk13YtBZo0mFe?= =?us-ascii?Q?Jm0nig7ZWyuQntccKnoRQO/cSZ0Zg2mdQlV1mCAQyXZqxUJV17TzgfdEmap2?= =?us-ascii?Q?uxwALSXm+wN4BoV9459zmloXb9IvClImlY9cdcUZdsn0xq4zbjCmGsj+aqcQ?= =?us-ascii?Q?aPOU0NR6xTCn92r4b1poyqyc9GKSaZVEC+3B1g1KLBI8usPUsJLUQpwmK8Hm?= =?us-ascii?Q?DYWXp6WxXs9FKeHfILsvGQx3diNN0c5bHbE3FR9ERpc8e7m7PLnq4kAyka1B?= =?us-ascii?Q?dJ9QRDFAeVLA1XaDwxXBJKNFHkqeAp+0eLJIGQi7odqm+pTuYe4HfZ0D3ao9?= =?us-ascii?Q?Smb6o1AEh0730YDJDBjWoldDYbNy6Z8L/F83lxRCel+hmVGFPvqBOYOijt1k?= =?us-ascii?Q?ViOnrv3gQ8eg5yEnPWYPHc0ctpAoYEEvPZdKSr/Jjj+e+Z7J+Ia38mhO2+Vc?= =?us-ascii?Q?Hg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: D+eqz6Je6TXDI0ukSXNmbxVn7oPyMN32sEV8XHR7T82T2t3qPZ2wFfM0cTM5XL3Wnx7X6ZW3KgI7guXi3p+/KWZMVivkBNHHVp5AX4O+ICJth88BPfoBe+vnRStJsKrx/YICHQpvmQ/fjShXchNlsqoHRbYQe0MP7fxJ7fpY8wPEQZ+gf7ifTeFzlp39qlHpFtiHY0PqlDQ96vUYJKDFlbdMwVPpQTJBaHe6QQfnhIsmtaX/KdVxhw7x3JUSAH3ftABU1ldbRmQGXpov30rocjOUh1IYJAZN+hqeG+etu8gRpq1LC17giUqwPqYohhqmWcYuGtIRdx9ar323t5lJAXw1jssoeXHWQQ6MUD2rWP6X67aRcpmujXlTbdBLSGYz79QSFmfHWJN3Y/SWss3wMitJoh/guegapJy1Ovwax5PBMIXugQY4zJomepqHQsRD1IHvQ2c8Z795GnHB72lsWcIByt+WfTDsLJezAEClZyUfsDhtMBqtd1esbr09m2wDmaDQuuExlrTOXiMERTg5bv3ANGaP5eIDeham/Ll7/RfUAVENTh9Ozecgny00aXuVQrcnVb1ZMvHzS0Eml+XRKC1+V6mi2PCG8KYoDiOLmjEi+qe5bZAyZPXkRIM0+0MeN3nvepAF5O/1eBt7f3ek1BnRGWXgInXhsaKbdiHvbXPMlwUS4N3jOy6EHR5eWmM4cP6ye/aMw3xAKH+8+2mvcfzGDRix13Sb0kGJ0nMJ+9YHabapFpb4ZJPHvR/Pd0n1 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: eaecea35-0afc-43f6-db7b-08db467c1660 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2023 17:31:37.3521 (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: hFnpyd93eQ2pjSnOxH5kulpVAD7TZPeLtjYPXflnEOhhByvv5HiJTs8GG62Gq+/v7zt8mmgw1abgsaK4u4+rfHlTfKm5jcPYeLo8rKiI2fQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5730 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-04-26_09,2023-04-26_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304260155 X-Proofpoint-GUID: ofuG_I8QO8_yD7-rHWrp4EgZTwDIIs0V X-Proofpoint-ORIG-GUID: ofuG_I8QO8_yD7-rHWrp4EgZTwDIIs0V 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 List-Id: This patch expands the GAS BPF testsuite in order to also test the alternative pseudo-C syntax used in BPF assembly. This includes three main changes: - Some general GAS tests involving assignment and equality operands in expressions (such as = and ==) are disabled in bpf-* targets, because the syntax collides with the pseudo-C BPF assembly syntax. - New tests are added to the BPF GAS testsuite that test the pseudo-c syntax. Tests for all BPF instructions are included. - New tests are added to the BPF GAS testsuite that test the support for both syntaxes in the same source. gas/ChangeLog: 2023-04-20 Guillermo E. Martinez PR gas/29728 * testsuite/gas/all/assign-bad-recursive.d: Skip test in bpf-* targets. * testsuite/gas/all/eqv-dot.d: Likewise. * testsuite/gas/all/gas.exp: Skip other assignment tests in bpf-*. * testsuite/gas/bpf/alu-pseudoc.s: New file. * testsuite/gas/bpf/pseudoc-normal.s: Likewise. * testsuite/gas/bpf/pseudoc-normal.d: Likewise. * testsuite/gas/bpf/pseudoc-normal-be.d: Likewise. * testsuite/gas/bpf/mem-pseudoc.s: Likewise. * testsuite/gas/bpf/lddw-pseudoc.s: Likewise. * testsuite/gas/bpf/jump32-pseudoc.s: Likewise. * testsuite/gas/bpf/jump-pseudoc.s: Likewise. * testsuite/gas/bpf/indcall-1-pseudoc.s: Likewise. * testsuite/gas/bpf/atomic-pseudoc.s: Likewise. * testsuite/gas/bpf/alu32-pseudoc.s: Likewise. * testsuite/gas/bpf/*.d: Add -pseudoc variants of the tests. --- gas/ChangeLog | 20 ++ gas/testsuite/gas/all/assign-bad-recursive.d | 1 + gas/testsuite/gas/all/eqv-dot.d | 2 +- gas/testsuite/gas/all/gas.exp | 5 +- gas/testsuite/gas/bpf/alu-be.d | 1 + gas/testsuite/gas/bpf/alu-pseudoc.s | 51 +++++ gas/testsuite/gas/bpf/alu32-be.d | 1 + gas/testsuite/gas/bpf/alu32-pseudoc.s | 57 +++++ gas/testsuite/gas/bpf/alu32.d | 2 + gas/testsuite/gas/bpf/atomic-be.d | 1 + gas/testsuite/gas/bpf/atomic-pseudoc.s | 4 + gas/testsuite/gas/bpf/atomic.d | 2 + gas/testsuite/gas/bpf/bpf.exp | 2 + gas/testsuite/gas/bpf/indcall-1-pseudoc.s | 13 ++ gas/testsuite/gas/bpf/indcall-1.d | 2 + gas/testsuite/gas/bpf/indcall-bad-1.l | 2 + gas/testsuite/gas/bpf/jump-be.d | 1 + gas/testsuite/gas/bpf/jump-pseudoc.s | 25 +++ gas/testsuite/gas/bpf/jump.d | 4 +- gas/testsuite/gas/bpf/jump32-pseudoc.s | 25 +++ gas/testsuite/gas/bpf/jump32.d | 2 + gas/testsuite/gas/bpf/lddw-be.d | 1 + gas/testsuite/gas/bpf/lddw-pseudoc.s | 6 + gas/testsuite/gas/bpf/lddw.d | 2 + gas/testsuite/gas/bpf/mem-be.d | 3 +- gas/testsuite/gas/bpf/mem-pseudoc.s | 23 ++ gas/testsuite/gas/bpf/mem.d | 2 + gas/testsuite/gas/bpf/pseudoc-normal-be.d | 214 +++++++++++++++++++ gas/testsuite/gas/bpf/pseudoc-normal.d | 214 +++++++++++++++++++ gas/testsuite/gas/bpf/pseudoc-normal.s | 196 +++++++++++++++++ gas/testsuite/gas/macros/macros.exp | 1 + 31 files changed, 880 insertions(+), 5 deletions(-) create mode 100644 gas/testsuite/gas/bpf/alu-pseudoc.s create mode 100644 gas/testsuite/gas/bpf/alu32-pseudoc.s create mode 100644 gas/testsuite/gas/bpf/atomic-pseudoc.s create mode 100644 gas/testsuite/gas/bpf/indcall-1-pseudoc.s create mode 100644 gas/testsuite/gas/bpf/jump-pseudoc.s create mode 100644 gas/testsuite/gas/bpf/jump32-pseudoc.s create mode 100644 gas/testsuite/gas/bpf/lddw-pseudoc.s create mode 100644 gas/testsuite/gas/bpf/mem-pseudoc.s create mode 100644 gas/testsuite/gas/bpf/pseudoc-normal-be.d create mode 100644 gas/testsuite/gas/bpf/pseudoc-normal.d create mode 100644 gas/testsuite/gas/bpf/pseudoc-normal.s diff --git a/gas/ChangeLog b/gas/ChangeLog index e1cfcec4abf..88a9d2eff95 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,23 @@ +2023-04-20 Guillermo E. Martinez + + PR gas/29728 + * testsuite/gas/all/assign-bad-recursive.d: Skip test in bpf-* + targets. + * testsuite/gas/all/eqv-dot.d: Likewise. + * testsuite/gas/all/gas.exp: Skip other assignment tests in bpf-*. + * testsuite/gas/bpf/alu-pseudoc.s: New file. + * testsuite/gas/bpf/pseudoc-normal.s: Likewise. + * testsuite/gas/bpf/pseudoc-normal.d: Likewise. + * testsuite/gas/bpf/pseudoc-normal-be.d: Likewise. + * testsuite/gas/bpf/mem-pseudoc.s: Likewise. + * testsuite/gas/bpf/lddw-pseudoc.s: Likewise. + * testsuite/gas/bpf/jump32-pseudoc.s: Likewise. + * testsuite/gas/bpf/jump-pseudoc.s: Likewise. + * testsuite/gas/bpf/indcall-1-pseudoc.s: Likewise. + * testsuite/gas/bpf/atomic-pseudoc.s: Likewise. + * testsuite/gas/bpf/alu32-pseudoc.s: Likewise. + * testsuite/gas/bpf/*.d: Add -pseudoc variants of the tests. + 2023-04-20 Guillermo E. Martinez PR gas/29728 diff --git a/gas/testsuite/gas/all/assign-bad-recursive.d b/gas/testsuite/gas/all/assign-bad-recursive.d index aeec5d55f8a..678be3e7c9f 100644 --- a/gas/testsuite/gas/all/assign-bad-recursive.d +++ b/gas/testsuite/gas/all/assign-bad-recursive.d @@ -1,4 +1,5 @@ #name: bad recursive assignments #source: assign-bad-recursive.s #xfail: bfin-*-* +#notarget: *bpf-*-* #error_output: assign-bad-recursive.l diff --git a/gas/testsuite/gas/all/eqv-dot.d b/gas/testsuite/gas/all/eqv-dot.d index fc40b09f217..d97db14995e 100644 --- a/gas/testsuite/gas/all/eqv-dot.d +++ b/gas/testsuite/gas/all/eqv-dot.d @@ -2,7 +2,7 @@ #name: eqv involving dot # bfin doesn't support 'symbol = expression' # tic30 and tic4x have 4 octets per byte, tic54x has 2 octets per byte -#notarget: bfin-*-* *c30-*-* *c4x-*-* *c54x-*-* +#notarget: bfin-*-* *c30-*-* *c4x-*-* *c54x-*-* *bpf-*-* # linkrelax targets don't handle equivalence expressions well (nor any # other forward expression). mep uses complex relocs #xfail: am33_2.0-*-* crx-*-* h8300-*-* mn10200-*-* mn10300-*-* mep-*-* diff --git a/gas/testsuite/gas/all/gas.exp b/gas/testsuite/gas/all/gas.exp index 734634f78d3..53d825310e2 100644 --- a/gas/testsuite/gas/all/gas.exp +++ b/gas/testsuite/gas/all/gas.exp @@ -105,7 +105,7 @@ if { [istarget "pdp11-*-*"] } then { run_dump_test eqv-dot } -if { ![istarget "bfin-*-*"] } then { +if { ![istarget "bfin-*-*"] && ![istarget "bpf-*-*"] } then { gas_test "assign-ok.s" "" "" "== assignment support" } gas_test_error "assign-bad.s" "" "== assignment for symbol already set" @@ -403,7 +403,8 @@ if { ([istarget "i*86-*-*pe*"] && ![istarget "i*86-*-openbsd*"]) \ gas_test "fastcall.s" "" "" "fastcall labels" } -if { ![istarget "bfin-*-*"] && ![istarget "nds32*-*-*"] } then { +if { ![istarget "bfin-*-*"] && ![istarget "nds32*-*-*"] \ + && ![istarget "bpf-*-*"] } then { run_dump_test assign } run_dump_test sleb128 diff --git a/gas/testsuite/gas/bpf/alu-be.d b/gas/testsuite/gas/bpf/alu-be.d index c4ddbad7d18..d42d33bc3cb 100644 --- a/gas/testsuite/gas/bpf/alu-be.d +++ b/gas/testsuite/gas/bpf/alu-be.d @@ -1,5 +1,6 @@ #as: --EB #source: alu.s +#source: alu-pseudoc.s #objdump: -dr #name: eBPF ALU64 instructions, big endian diff --git a/gas/testsuite/gas/bpf/alu-pseudoc.s b/gas/testsuite/gas/bpf/alu-pseudoc.s new file mode 100644 index 00000000000..0f79929ea0d --- /dev/null +++ b/gas/testsuite/gas/bpf/alu-pseudoc.s @@ -0,0 +1,51 @@ +# Tests for the ALU64 eBPF pseudo-C instructions + .text + r2 += 666 + r3 += -666 + r4 += 2125315823 + r5 += r6 + r2 -= 666 + r3 -= -666 + r4 -= 2125315823 + r5 -= r6 + r2 *= 666 + r3 *= -666 + r4 *= 2125315823 + r5 *= r6 + r2 /= 666 + r3 /= -666 + r4 /= 2125315823 + r5 /= r6 + r2 |= 666 + r3 |= -666 + r4 |= 2125315823 + r5 |= r6 + r2 &= 666 + r3 &= -666 + r4 &= 2125315823 + r5 &= r6 + r2 <<= 666 + r3 <<= -666 + r4 <<= 2125315823 + r5 <<= r6 + r2 >>= 666 + r3 >>= -666 + r4 >>= 2125315823 + r5 >>= r6 + r2 %= 0x29a + r3 %= -666 + r4 %= 0x7eadbeef + r5 %= r6 + r2 ^= 666 + r3 ^= -666 + r4 ^= 2125315823 + r5 ^= r6 + r2 = 666 + r3 = -666 + r4 = 2125315823 + r5 = r6 + r2 s>>= 666 + r3 s>>= -666 + r4 s>>= 2125315823 + r5 s>>= r6 + r2 = -r2 diff --git a/gas/testsuite/gas/bpf/alu32-be.d b/gas/testsuite/gas/bpf/alu32-be.d index 2c753e2261d..2ad744dc84c 100644 --- a/gas/testsuite/gas/bpf/alu32-be.d +++ b/gas/testsuite/gas/bpf/alu32-be.d @@ -1,5 +1,6 @@ #as: --EB #source: alu32.s +#source: alu32-pseudoc.s #objdump: -dr #name: eBPF ALU instructions, big-endian diff --git a/gas/testsuite/gas/bpf/alu32-pseudoc.s b/gas/testsuite/gas/bpf/alu32-pseudoc.s new file mode 100644 index 00000000000..a29f6ea0336 --- /dev/null +++ b/gas/testsuite/gas/bpf/alu32-pseudoc.s @@ -0,0 +1,57 @@ +# Tests for the ALU eBPF pseudo-C instructions + .text + W2 += 666 + W3 += -666 + W4 += 2125315823 + W5 += w6 + W2 -= 666 + W3 -= -666 + W4 -= 2125315823 + W5 -= w6 + W2 *= 666 + W3 *= -666 + W4 *= 2125315823 + w5 *= w6 + w2 /= 666 + w3 /= -666 + w4 /= 2125315823 + w5 /= w6 + w2 |= 666 + w3 |= -666 + w4 |= 2125315823 + w5 |= w6 + w2 &= 666 + w3 &= -666 + w4 &= 2125315823 + w5 &= w6 + w2 <<= 666 + w3 <<= -666 + w4 <<= 2125315823 + w5 <<= w6 + w2 >>= 666 + w3 >>= -666 + w4 >>= 2125315823 + w5 >>= w6 + w2 %= 666 + w3 %= -666 + w4 %= 0x7eadbeef + w5 %= w6 + w2 ^= 666 + w3 ^= -666 + w4 ^= 2125315823 + w5 ^= w6 + w2 = 666 + w3 = -666 + w4 = 2125315823 + w5 = w6 + w2 s>>= 666 + w3 s>>= -666 + w4 s>>= 2125315823 + w5 s>>= w6 + w2 = -w2 + r9 = le16 r9 + r8 = le32 r8 + r7 = le64 r7 + r6 = be16 r6 + r5 = be32 r5 + r4 = be64 r4 diff --git a/gas/testsuite/gas/bpf/alu32.d b/gas/testsuite/gas/bpf/alu32.d index d2260fffeb6..ac5c8341e52 100644 --- a/gas/testsuite/gas/bpf/alu32.d +++ b/gas/testsuite/gas/bpf/alu32.d @@ -1,5 +1,7 @@ #as: --EL #objdump: -dr +#source: alu32.s +#source: alu32-pseudoc.s #name: eBPF ALU instructions .*: +file format .*bpf.* diff --git a/gas/testsuite/gas/bpf/atomic-be.d b/gas/testsuite/gas/bpf/atomic-be.d index 04161e08aca..b252571e5fd 100644 --- a/gas/testsuite/gas/bpf/atomic-be.d +++ b/gas/testsuite/gas/bpf/atomic-be.d @@ -1,5 +1,6 @@ #as: --EB #source: atomic.s +#source: atomic-pseudoc.s #objdump: -dr #name: eBPF atomic instructions, big endian diff --git a/gas/testsuite/gas/bpf/atomic-pseudoc.s b/gas/testsuite/gas/bpf/atomic-pseudoc.s new file mode 100644 index 00000000000..1a4f218ccb7 --- /dev/null +++ b/gas/testsuite/gas/bpf/atomic-pseudoc.s @@ -0,0 +1,4 @@ + # Test for eBPF ADDW and ADDDW pseudo-C instructions + .text + lock *(u64 *)(r1 + 7919) += r2 + lock *(u32 *)(r1 + 7919) += r2 diff --git a/gas/testsuite/gas/bpf/atomic.d b/gas/testsuite/gas/bpf/atomic.d index 1c83cb582ab..e22d54283de 100644 --- a/gas/testsuite/gas/bpf/atomic.d +++ b/gas/testsuite/gas/bpf/atomic.d @@ -1,5 +1,7 @@ #as: --EL #objdump: -dr +#source: atomic.s +#source: atomic-pseudoc.s #name: eBPF atomic instructions .*: +file format .*bpf.* diff --git a/gas/testsuite/gas/bpf/bpf.exp b/gas/testsuite/gas/bpf/bpf.exp index b0c49a9e23a..1cdaf6dcc08 100644 --- a/gas/testsuite/gas/bpf/bpf.exp +++ b/gas/testsuite/gas/bpf/bpf.exp @@ -28,6 +28,7 @@ if {[istarget bpf*-*-*]} { run_dump_test exit run_dump_test atomic run_dump_test data + run_dump_test pseudoc-normal run_dump_test lddw-be run_dump_test alu-be @@ -38,6 +39,7 @@ if {[istarget bpf*-*-*]} { run_dump_test exit-be run_dump_test atomic-be run_dump_test data-be + run_dump_test pseudoc-normal-be run_dump_test indcall-1 run_list_test indcall-bad-1 diff --git a/gas/testsuite/gas/bpf/indcall-1-pseudoc.s b/gas/testsuite/gas/bpf/indcall-1-pseudoc.s new file mode 100644 index 00000000000..ede3eac58ef --- /dev/null +++ b/gas/testsuite/gas/bpf/indcall-1-pseudoc.s @@ -0,0 +1,13 @@ + + .text + .align 4 +main: + r0 = 1 + r1 = 1 + r2 = 2 + r6 = 56 ll + callx r6 + exit +bar: + r0 = 0 + exit diff --git a/gas/testsuite/gas/bpf/indcall-1.d b/gas/testsuite/gas/bpf/indcall-1.d index b26e8f8853f..158c75438d7 100644 --- a/gas/testsuite/gas/bpf/indcall-1.d +++ b/gas/testsuite/gas/bpf/indcall-1.d @@ -1,5 +1,7 @@ #as: -mxbpf --EL #objdump: -mxbpf -dr +#source: indcall-1.s +#source: indcall-1-pseudoc.s #name: BPF indirect call 1 .*: +file format .*bpf.* diff --git a/gas/testsuite/gas/bpf/indcall-bad-1.l b/gas/testsuite/gas/bpf/indcall-bad-1.l index 510ec6eabf2..8386736ee78 100644 --- a/gas/testsuite/gas/bpf/indcall-bad-1.l +++ b/gas/testsuite/gas/bpf/indcall-bad-1.l @@ -1,3 +1,5 @@ .*: Assembler messages: +.* Error: bad expression .* Error: illegal operand `call %r6' +.* Error: unexpected token: '%r6' #pass diff --git a/gas/testsuite/gas/bpf/jump-be.d b/gas/testsuite/gas/bpf/jump-be.d index 65632e0813b..7e235e69551 100644 --- a/gas/testsuite/gas/bpf/jump-be.d +++ b/gas/testsuite/gas/bpf/jump-be.d @@ -1,5 +1,6 @@ #as: --EB #source: jump.s +#source: jump-pseudoc.s #objdump: -dr #name: eBPF JUMP instructions, big endian diff --git a/gas/testsuite/gas/bpf/jump-pseudoc.s b/gas/testsuite/gas/bpf/jump-pseudoc.s new file mode 100644 index 00000000000..1331bdad307 --- /dev/null +++ b/gas/testsuite/gas/bpf/jump-pseudoc.s @@ -0,0 +1,25 @@ +# Tests for the JUMP pseudo-C instructions + .text + goto 2f + r1 += r1 +1: if r3 == 3 goto 2f + if r3 == r4 goto 2f +2: if r3 >= 3 goto 1b + if r3 >= r4 goto 1b +1: if r3 < 3 goto 1f + if r3 < r4 goto 1f +1: if r3 <= 3 goto 1f + if r3 <= r4 goto 1f +1: if r3 & 3 goto 1f + if r3 & r4 goto 1f +1: if r3 != 3 goto 1f + if r3 != r4 goto 1f +1: if r3 s> 3 goto 1f + if r3 s> r4 goto 1f +1: if r3 s>= 3 goto 1f + if r3 s>= r4 goto 1f +1: if r3 s< 3 goto 1f + if r3 s< r4 goto 1f +1: if r3 s<= 3 goto 1f + if r3 s<= r4 goto 1f +1: diff --git a/gas/testsuite/gas/bpf/jump.d b/gas/testsuite/gas/bpf/jump.d index ca600f602ba..903f70e8043 100644 --- a/gas/testsuite/gas/bpf/jump.d +++ b/gas/testsuite/gas/bpf/jump.d @@ -1,5 +1,7 @@ #as: --EL #objdump: -dr +#source: jump.s +#source: jump-pseudoc.s #name: eBPF JUMP instructions .*: +file format .*bpf.* @@ -28,4 +30,4 @@ Disassembly of section .text: 90: c5 03 01 00 03 00 00 00 jslt %r3,3,1 98: cd 43 00 00 00 00 00 00 jslt %r3,%r4,0 a0: d5 03 01 00 03 00 00 00 jsle %r3,3,1 - a8: dd 43 00 00 00 00 00 00 jsle %r3,%r4,0 \ No newline at end of file + a8: dd 43 00 00 00 00 00 00 jsle %r3,%r4,0 diff --git a/gas/testsuite/gas/bpf/jump32-pseudoc.s b/gas/testsuite/gas/bpf/jump32-pseudoc.s new file mode 100644 index 00000000000..07311657ebe --- /dev/null +++ b/gas/testsuite/gas/bpf/jump32-pseudoc.s @@ -0,0 +1,25 @@ +# Tests for the eBPF JUMP32 pseudo-C instructions + .text + goto 2f + r1 += r1 +1: if w3 == 3 goto 2f + if w3 == w4 goto 2f +2: if w3 >= 3 goto 1b + if w3 >= w4 goto 1b +1: if w3 < 3 goto 1f + if w3 < w4 goto 1f +1: if w3 <= 3 goto 1f + if w3 <= w4 goto 1f +1: if w3 & 3 goto 1f + if w3 & w4 goto 1f +1: if w3 != 3 goto 1f + if w3 != w4 goto 1f +1: if w3 s> 3 goto 1f + if w3 s> w4 goto 1f +1: if w3 s>= 3 goto 1f + if w3 s>= w4 goto 1f +1: if w3 s< 3 goto 1f + if w3 s< w4 goto 1f +1: if w3 s<= 3 goto 1f + if w3 s<= w4 goto 1f +1: diff --git a/gas/testsuite/gas/bpf/jump32.d b/gas/testsuite/gas/bpf/jump32.d index 4f5ae2c5aa3..ae8683dd69b 100644 --- a/gas/testsuite/gas/bpf/jump32.d +++ b/gas/testsuite/gas/bpf/jump32.d @@ -1,5 +1,7 @@ #as: --EL #objdump: -dr +#source: jump32.s +#source: jump32-pseudoc.s #name: eBPF JUMP32 instructions .*: +file format .*bpf.* diff --git a/gas/testsuite/gas/bpf/lddw-be.d b/gas/testsuite/gas/bpf/lddw-be.d index dc69d3a64d5..b9e60457cde 100644 --- a/gas/testsuite/gas/bpf/lddw-be.d +++ b/gas/testsuite/gas/bpf/lddw-be.d @@ -1,5 +1,6 @@ #as: --EB #source: lddw.s +#source: lddw-pseudoc.s #objdump: -dr #name: eBPF LDDW, big-endian diff --git a/gas/testsuite/gas/bpf/lddw-pseudoc.s b/gas/testsuite/gas/bpf/lddw-pseudoc.s new file mode 100644 index 00000000000..9968c5d8e78 --- /dev/null +++ b/gas/testsuite/gas/bpf/lddw-pseudoc.s @@ -0,0 +1,6 @@ +# Tests for the LDDW pseudo-C instruction + .text + r3 = 1 ll + r4 = 0xdeadbeef ll + r5 = 0x1122334455667788 ll + r6 = -2 ll diff --git a/gas/testsuite/gas/bpf/lddw.d b/gas/testsuite/gas/bpf/lddw.d index f44e7724353..042e4dead30 100644 --- a/gas/testsuite/gas/bpf/lddw.d +++ b/gas/testsuite/gas/bpf/lddw.d @@ -1,5 +1,7 @@ #as: --EL #objdump: -dr +#source: lddw.s +#source: lddw-pseudoc.s #name: eBPF LDDW .*: +file format .*bpf.* diff --git a/gas/testsuite/gas/bpf/mem-be.d b/gas/testsuite/gas/bpf/mem-be.d index b3dba80c2b6..148c55a3491 100644 --- a/gas/testsuite/gas/bpf/mem-be.d +++ b/gas/testsuite/gas/bpf/mem-be.d @@ -1,5 +1,6 @@ #as: --EB #source: mem.s +#source: mem-pseudoc.s #objdump: -dr #name: eBPF MEM instructions, modulus lddw, big endian @@ -27,4 +28,4 @@ Disassembly of section .text: 80: 72 10 7e ef 11 22 33 44 stb \[%r1\+0x7eef\],0x11223344 88: 6a 10 7e ef 11 22 33 44 sth \[%r1\+0x7eef\],0x11223344 90: 62 10 7e ef 11 22 33 44 stw \[%r1\+0x7eef\],0x11223344 - 98: 7a 10 ff fe 11 22 33 44 stdw \[%r1\+-2\],0x11223344 \ No newline at end of file + 98: 7a 10 ff fe 11 22 33 44 stdw \[%r1\+-2\],0x11223344 diff --git a/gas/testsuite/gas/bpf/mem-pseudoc.s b/gas/testsuite/gas/bpf/mem-pseudoc.s new file mode 100644 index 00000000000..06c2cfcdde9 --- /dev/null +++ b/gas/testsuite/gas/bpf/mem-pseudoc.s @@ -0,0 +1,23 @@ +# eBPF tests for MEM pseudo-C instructions, modulus lddw. + + .text + r0 = *(u32 *)skb[48879] + r0 = *(u16 *)skb[48879] + r0 = *(u8 *)skb[48879] + r0 = *(u64 *)skb[48879] + r0 = *(u32 *)skb[r3 + 0xbeef] + r0 = *(u16 *)skb[r5 + 0xbeef] + r0 = *(u8 *)skb[r7 + 0xbeef] + r0 = *(u64 *)skb[r9 + 0xbeef] + r2 = *(u32 *)(r1 + 32495) + r2 = *(u16 *)(r1 + 32495) + r2 = *(u8 *)(r1 + 32495) + r2 = *(u64 *)(r1 - 2) + *(u32 *)(r1 + 32495) = r2 + *(u16 *)(r1 + 32495) = r2 + *(u8 *)(r1 + 32495) = r2 + *(u64 *)(r1 - 2) = r2 + stb [%r1+0x7eef], 0x11223344 + sth [%r1+0x7eef], 0x11223344 + stw [%r1+0x7eef], 0x11223344 + stdw [%r1+-2], 0x11223344 diff --git a/gas/testsuite/gas/bpf/mem.d b/gas/testsuite/gas/bpf/mem.d index 0e0b498ea91..5f257317057 100644 --- a/gas/testsuite/gas/bpf/mem.d +++ b/gas/testsuite/gas/bpf/mem.d @@ -1,5 +1,7 @@ #as: --EL #objdump: -dr +#source: mem.s +#source: mem-pseudoc.s #name: eBPF MEM instructions, modulus lddw .*: +file format .*bpf.* diff --git a/gas/testsuite/gas/bpf/pseudoc-normal-be.d b/gas/testsuite/gas/bpf/pseudoc-normal-be.d new file mode 100644 index 00000000000..7a577edbe4c --- /dev/null +++ b/gas/testsuite/gas/bpf/pseudoc-normal-be.d @@ -0,0 +1,214 @@ +#as: --EB +#objdump: -dr +#source: pseudoc-normal.s +#name: eBPF clang (pseudo-C)/gas (normal) instructions + +.*: +file format .*bpf.* + +Disassembly of section .text: + +0+ : + 0: 07 10 00 00 00 00 00 aa add %r1,0xaa + 8: 07 10 00 00 00 00 00 aa add %r1,0xaa + 10: 0f 12 00 00 00 00 00 00 add %r1,%r2 + 18: 0f 12 00 00 00 00 00 00 add %r1,%r2 + 20: 17 10 00 00 00 00 00 aa sub %r1,0xaa + 28: 17 10 00 00 00 00 00 aa sub %r1,0xaa + 30: 1f 12 00 00 00 00 00 00 sub %r1,%r2 + 38: 1f 12 00 00 00 00 00 00 sub %r1,%r2 + 40: 27 10 00 00 00 00 00 aa mul %r1,0xaa + 48: 27 10 00 00 00 00 00 aa mul %r1,0xaa + 50: 2f 12 00 00 00 00 00 00 mul %r1,%r2 + 58: 2f 12 00 00 00 00 00 00 mul %r1,%r2 + 60: 37 10 00 00 00 00 00 aa div %r1,0xaa + 68: 37 10 00 00 00 00 00 aa div %r1,0xaa + 70: 3f 12 00 00 00 00 00 00 div %r1,%r2 + 78: 3f 12 00 00 00 00 00 00 div %r1,%r2 + 80: 47 10 00 00 00 00 00 aa or %r1,0xaa + 88: 47 10 00 00 00 00 00 aa or %r1,0xaa + 90: 4f 12 00 00 00 00 00 00 or %r1,%r2 + 98: 4f 12 00 00 00 00 00 00 or %r1,%r2 + a0: 57 10 00 00 00 00 00 aa and %r1,0xaa + a8: 57 10 00 00 00 00 00 aa and %r1,0xaa + b0: 5f 12 00 00 00 00 00 00 and %r1,%r2 + b8: 5f 12 00 00 00 00 00 00 and %r1,%r2 + c0: 67 10 00 00 00 00 00 aa lsh %r1,0xaa + c8: 67 10 00 00 00 00 00 aa lsh %r1,0xaa + d0: 6f 12 00 00 00 00 00 00 lsh %r1,%r2 + d8: 6f 12 00 00 00 00 00 00 lsh %r1,%r2 + e0: 77 10 00 00 00 00 00 aa rsh %r1,0xaa + e8: 77 10 00 00 00 00 00 aa rsh %r1,0xaa + f0: 7f 12 00 00 00 00 00 00 rsh %r1,%r2 + f8: 7f 12 00 00 00 00 00 00 rsh %r1,%r2 + 100: a7 10 00 00 00 00 00 aa xor %r1,0xaa + 108: a7 10 00 00 00 00 00 aa xor %r1,0xaa + 110: af 12 00 00 00 00 00 00 xor %r1,%r2 + 118: af 12 00 00 00 00 00 00 xor %r1,%r2 + 120: b7 10 00 00 00 00 00 aa mov %r1,0xaa + 128: b7 10 00 00 00 00 00 aa mov %r1,0xaa + 130: bf 12 00 00 00 00 00 00 mov %r1,%r2 + 138: bf 12 00 00 00 00 00 00 mov %r1,%r2 + 140: c7 10 00 00 00 00 00 aa arsh %r1,0xaa + 148: c7 10 00 00 00 00 00 aa arsh %r1,0xaa + 150: cf 12 00 00 00 00 00 00 arsh %r1,%r2 + 158: cf 12 00 00 00 00 00 00 arsh %r1,%r2 + 160: 87 10 00 00 00 00 00 00 neg %r1 + 168: 87 10 00 00 00 00 00 00 neg %r1 + 170: 04 10 00 00 00 00 00 aa add32 %r1,0xaa + 178: 04 10 00 00 00 00 00 aa add32 %r1,0xaa + 180: 0c 12 00 00 00 00 00 00 add32 %r1,%r2 + 188: 0c 12 00 00 00 00 00 00 add32 %r1,%r2 + 190: 14 10 00 00 00 00 00 aa sub32 %r1,0xaa + 198: 14 10 00 00 00 00 00 aa sub32 %r1,0xaa + 1a0: 1c 12 00 00 00 00 00 00 sub32 %r1,%r2 + 1a8: 1c 12 00 00 00 00 00 00 sub32 %r1,%r2 + 1b0: 24 10 00 00 00 00 00 aa mul32 %r1,0xaa + 1b8: 24 10 00 00 00 00 00 aa mul32 %r1,0xaa + 1c0: 2c 12 00 00 00 00 00 00 mul32 %r1,%r2 + 1c8: 2c 12 00 00 00 00 00 00 mul32 %r1,%r2 + 1d0: 34 10 00 00 00 00 00 aa div32 %r1,0xaa + 1d8: 34 10 00 00 00 00 00 aa div32 %r1,0xaa + 1e0: 3c 12 00 00 00 00 00 00 div32 %r1,%r2 + 1e8: 3c 12 00 00 00 00 00 00 div32 %r1,%r2 + 1f0: 44 10 00 00 00 00 00 aa or32 %r1,0xaa + 1f8: 44 10 00 00 00 00 00 aa or32 %r1,0xaa + 200: 4c 12 00 00 00 00 00 00 or32 %r1,%r2 + 208: 4c 12 00 00 00 00 00 00 or32 %r1,%r2 + 210: 54 10 00 00 00 00 00 aa and32 %r1,0xaa + 218: 54 10 00 00 00 00 00 aa and32 %r1,0xaa + 220: 5c 12 00 00 00 00 00 00 and32 %r1,%r2 + 228: 5c 12 00 00 00 00 00 00 and32 %r1,%r2 + 230: 64 10 00 00 00 00 00 aa lsh32 %r1,0xaa + 238: 64 10 00 00 00 00 00 aa lsh32 %r1,0xaa + 240: 6c 12 00 00 00 00 00 00 lsh32 %r1,%r2 + 248: 6c 12 00 00 00 00 00 00 lsh32 %r1,%r2 + 250: 74 10 00 00 00 00 00 aa rsh32 %r1,0xaa + 258: 74 10 00 00 00 00 00 aa rsh32 %r1,0xaa + 260: 7c 12 00 00 00 00 00 00 rsh32 %r1,%r2 + 268: 7c 12 00 00 00 00 00 00 rsh32 %r1,%r2 + 270: a4 10 00 00 00 00 00 aa xor32 %r1,0xaa + 278: a4 10 00 00 00 00 00 aa xor32 %r1,0xaa + 280: ac 12 00 00 00 00 00 00 xor32 %r1,%r2 + 288: ac 12 00 00 00 00 00 00 xor32 %r1,%r2 + 290: b4 10 00 00 00 00 00 aa mov32 %r1,0xaa + 298: b4 10 00 00 00 00 00 aa mov32 %r1,0xaa + 2a0: bc 12 00 00 00 00 00 00 mov32 %r1,%r2 + 2a8: bc 12 00 00 00 00 00 00 mov32 %r1,%r2 + 2b0: c4 10 00 00 00 00 00 aa arsh32 %r1,0xaa + 2b8: c4 10 00 00 00 00 00 aa arsh32 %r1,0xaa + 2c0: cc 12 00 00 00 00 00 00 arsh32 %r1,%r2 + 2c8: cc 12 00 00 00 00 00 00 arsh32 %r1,%r2 + 2d0: 84 10 00 00 00 00 00 00 neg32 %r1 + 2d8: 84 10 00 00 00 00 00 00 neg32 %r1 + 2e0: d4 10 00 00 00 00 00 10 endle %r1,16 + 2e8: d4 10 00 00 00 00 00 10 endle %r1,16 + 2f0: d4 10 00 00 00 00 00 20 endle %r1,32 + 2f8: d4 10 00 00 00 00 00 20 endle %r1,32 + 300: d4 10 00 00 00 00 00 40 endle %r1,64 + 308: d4 10 00 00 00 00 00 40 endle %r1,64 + 310: dc 10 00 00 00 00 00 10 endbe %r1,16 + 318: dc 10 00 00 00 00 00 10 endbe %r1,16 + 320: dc 10 00 00 00 00 00 20 endbe %r1,32 + 328: dc 10 00 00 00 00 00 20 endbe %r1,32 + 330: dc 10 00 00 00 00 00 40 endbe %r1,64 + 338: dc 10 00 00 00 00 00 40 endbe %r1,64 + 340: 71 12 00 aa 00 00 00 00 ldxb %r1,\[%r2\+0xaa\] + 348: 71 12 00 aa 00 00 00 00 ldxb %r1,\[%r2\+0xaa\] + 350: 69 12 00 aa 00 00 00 00 ldxh %r1,\[%r2\+0xaa\] + 358: 69 12 00 aa 00 00 00 00 ldxh %r1,\[%r2\+0xaa\] + 360: 61 12 00 aa 00 00 00 00 ldxw %r1,\[%r2\+0xaa\] + 368: 61 12 00 aa 00 00 00 00 ldxw %r1,\[%r2\+0xaa\] + 370: 79 12 00 aa 00 00 00 00 ldxdw %r1,\[%r2\+0xaa\] + 378: 79 12 00 aa 00 00 00 00 ldxdw %r1,\[%r2\+0xaa\] + 380: 73 12 00 aa 00 00 00 00 stxb \[%r1\+0xaa\],%r2 + 388: 73 12 00 aa 00 00 00 00 stxb \[%r1\+0xaa\],%r2 + 390: 6b 12 00 aa 00 00 00 00 stxh \[%r1\+0xaa\],%r2 + 398: 6b 12 00 aa 00 00 00 00 stxh \[%r1\+0xaa\],%r2 + 3a0: 63 12 00 aa 00 00 00 00 stxw \[%r1\+0xaa\],%r2 + 3a8: 63 12 00 aa 00 00 00 00 stxw \[%r1\+0xaa\],%r2 + 3b0: 7b 12 00 aa 00 00 00 00 stxdw \[%r1\+0xaa\],%r2 + 3b8: 7b 12 00 aa 00 00 00 00 stxdw \[%r1\+0xaa\],%r2 + 3c0: 05 00 00 bb 00 00 00 00 ja 187 + 3c8: 05 00 00 bb 00 00 00 00 ja 187 + 3d0: 15 10 00 bb 00 00 00 aa jeq %r1,0xaa,187 + 3d8: 15 10 00 bb 00 00 00 aa jeq %r1,0xaa,187 + 3e0: 1d 12 00 bb 00 00 00 00 jeq %r1,%r2,187 + 3e8: 1d 12 00 bb 00 00 00 00 jeq %r1,%r2,187 + 3f0: 25 10 00 bb 00 00 00 aa jgt %r1,0xaa,187 + 3f8: 25 10 00 bb 00 00 00 aa jgt %r1,0xaa,187 + 400: 2d 12 00 bb 00 00 00 00 jgt %r1,%r2,187 + 408: 2d 12 00 bb 00 00 00 00 jgt %r1,%r2,187 + 410: 35 10 00 bb 00 00 00 aa jge %r1,0xaa,187 + 418: 35 10 00 bb 00 00 00 aa jge %r1,0xaa,187 + 420: 3d 12 00 bb 00 00 00 00 jge %r1,%r2,187 + 428: 3d 12 00 bb 00 00 00 00 jge %r1,%r2,187 + 430: a5 10 00 bb 00 00 00 aa jlt %r1,0xaa,187 + 438: a5 10 00 bb 00 00 00 aa jlt %r1,0xaa,187 + 440: ad 12 00 bb 00 00 00 00 jlt %r1,%r2,187 + 448: ad 12 00 bb 00 00 00 00 jlt %r1,%r2,187 + 450: b5 10 00 bb 00 00 00 aa jle %r1,0xaa,187 + 458: b5 10 00 bb 00 00 00 aa jle %r1,0xaa,187 + 460: bd 12 00 bb 00 00 00 00 jle %r1,%r2,187 + 468: bd 12 00 bb 00 00 00 00 jle %r1,%r2,187 + 470: 45 10 00 bb 00 00 00 aa jset %r1,0xaa,187 + 478: 45 10 00 bb 00 00 00 aa jset %r1,0xaa,187 + 480: 4d 12 00 bb 00 00 00 00 jset %r1,%r2,187 + 488: 4d 12 00 bb 00 00 00 00 jset %r1,%r2,187 + 490: 55 10 00 bb 00 00 00 aa jne %r1,0xaa,187 + 498: 55 10 00 bb 00 00 00 aa jne %r1,0xaa,187 + 4a0: 5d 12 00 bb 00 00 00 00 jne %r1,%r2,187 + 4a8: 5d 12 00 bb 00 00 00 00 jne %r1,%r2,187 + 4b0: 65 10 00 bb 00 00 00 aa jsgt %r1,0xaa,187 + 4b8: 65 10 00 bb 00 00 00 aa jsgt %r1,0xaa,187 + 4c0: 6d 12 00 bb 00 00 00 00 jsgt %r1,%r2,187 + 4c8: 6d 12 00 bb 00 00 00 00 jsgt %r1,%r2,187 + 4d0: 75 10 00 bb 00 00 00 aa jsge %r1,0xaa,187 + 4d8: 75 10 00 bb 00 00 00 aa jsge %r1,0xaa,187 + 4e0: 7d 12 00 bb 00 00 00 00 jsge %r1,%r2,187 + 4e8: 7d 12 00 bb 00 00 00 00 jsge %r1,%r2,187 + 4f0: c5 10 00 bb 00 00 00 aa jslt %r1,0xaa,187 + 4f8: c5 10 00 bb 00 00 00 aa jslt %r1,0xaa,187 + 500: cd 12 00 bb 00 00 00 00 jslt %r1,%r2,187 + 508: cd 12 00 bb 00 00 00 00 jslt %r1,%r2,187 + 510: d5 10 00 bb 00 00 00 aa jsle %r1,0xaa,187 + 518: d5 10 00 bb 00 00 00 aa jsle %r1,0xaa,187 + 520: dd 12 00 bb 00 00 00 00 jsle %r1,%r2,187 + 528: dd 12 00 bb 00 00 00 00 jsle %r1,%r2,187 + 530: 85 00 00 00 00 00 00 aa call 170 + 538: 85 00 00 00 00 00 00 aa call 170 + 540: 95 00 00 00 00 00 00 00 exit + 548: 95 00 00 00 00 00 00 00 exit + 550: b7 60 00 00 00 00 06 20 mov %r6,0x620 + 558: 95 00 00 00 00 00 00 00 exit + 560: 20 00 00 00 00 00 00 aa ldabsw 0xaa + 568: 20 00 00 00 00 00 00 aa ldabsw 0xaa + 570: 50 07 00 00 00 00 00 aa ldindb %r7,0xaa + 578: 50 07 00 00 00 00 00 aa ldindb %r7,0xaa + 580: 20 00 00 00 00 00 00 aa ldabsw 0xaa + 588: 20 00 00 00 00 00 00 aa ldabsw 0xaa + 590: 50 07 00 00 00 00 00 aa ldindb %r7,0xaa + 598: 50 07 00 00 00 00 00 aa ldindb %r7,0xaa + 5a0: 18 30 00 00 00 00 00 01 lddw %r3,1 + 5a8: 00 00 00 00 00 00 00 00 + 5b0: 18 30 00 00 00 00 00 01 lddw %r3,1 + 5b8: 00 00 00 00 00 00 00 00 + 5c0: 18 40 00 00 ee ff 77 88 lddw %r4,-6144092013047351416 + 5c8: 00 00 00 00 aa bb cc dd + 5d0: 18 40 00 00 ee ff 77 88 lddw %r4,-6144092013047351416 + 5d8: 00 00 00 00 aa bb cc dd + 5e0: 18 50 00 00 55 66 77 88 lddw %r5,0x1122334455667788 + 5e8: 00 00 00 00 11 22 33 44 + 5f0: 18 50 00 00 55 66 77 88 lddw %r5,0x1122334455667788 + 5f8: 00 00 00 00 11 22 33 44 + 600: 18 60 00 00 00 00 06 20 lddw %r6,0x620 + 608: 00 00 00 00 00 00 00 00 + 600: R_BPF_64_64 .text + 610: 18 60 00 00 00 00 06 20 lddw %r6,0x620 + 618: 00 00 00 00 00 00 00 00 + 610: R_BPF_64_64 .text + +0000000000000620
: + 620: c3 12 00 aa 00 00 00 00 xaddw \[%r1\+0xaa\],%r2 + 628: c3 12 00 aa 00 00 00 00 xaddw \[%r1\+0xaa\],%r2 + 630: db 12 00 aa 00 00 00 00 xadddw \[%r1\+0xaa\],%r2 + 638: db 12 00 aa 00 00 00 00 xadddw \[%r1\+0xaa\],%r2 diff --git a/gas/testsuite/gas/bpf/pseudoc-normal.d b/gas/testsuite/gas/bpf/pseudoc-normal.d new file mode 100644 index 00000000000..5bece2a085a --- /dev/null +++ b/gas/testsuite/gas/bpf/pseudoc-normal.d @@ -0,0 +1,214 @@ +#as: --EL +#objdump: -dr +#source: pseudoc-normal.s +#name: eBPF clang (pseudo-C)/gas (normal) instructions + +.*: +file format .*bpf.* + +Disassembly of section .text: + +0+ : + 0: 07 01 00 00 aa 00 00 00 add %r1,0xaa + 8: 07 01 00 00 aa 00 00 00 add %r1,0xaa + 10: 0f 21 00 00 00 00 00 00 add %r1,%r2 + 18: 0f 21 00 00 00 00 00 00 add %r1,%r2 + 20: 17 01 00 00 aa 00 00 00 sub %r1,0xaa + 28: 17 01 00 00 aa 00 00 00 sub %r1,0xaa + 30: 1f 21 00 00 00 00 00 00 sub %r1,%r2 + 38: 1f 21 00 00 00 00 00 00 sub %r1,%r2 + 40: 27 01 00 00 aa 00 00 00 mul %r1,0xaa + 48: 27 01 00 00 aa 00 00 00 mul %r1,0xaa + 50: 2f 21 00 00 00 00 00 00 mul %r1,%r2 + 58: 2f 21 00 00 00 00 00 00 mul %r1,%r2 + 60: 37 01 00 00 aa 00 00 00 div %r1,0xaa + 68: 37 01 00 00 aa 00 00 00 div %r1,0xaa + 70: 3f 21 00 00 00 00 00 00 div %r1,%r2 + 78: 3f 21 00 00 00 00 00 00 div %r1,%r2 + 80: 47 01 00 00 aa 00 00 00 or %r1,0xaa + 88: 47 01 00 00 aa 00 00 00 or %r1,0xaa + 90: 4f 21 00 00 00 00 00 00 or %r1,%r2 + 98: 4f 21 00 00 00 00 00 00 or %r1,%r2 + a0: 57 01 00 00 aa 00 00 00 and %r1,0xaa + a8: 57 01 00 00 aa 00 00 00 and %r1,0xaa + b0: 5f 21 00 00 00 00 00 00 and %r1,%r2 + b8: 5f 21 00 00 00 00 00 00 and %r1,%r2 + c0: 67 01 00 00 aa 00 00 00 lsh %r1,0xaa + c8: 67 01 00 00 aa 00 00 00 lsh %r1,0xaa + d0: 6f 21 00 00 00 00 00 00 lsh %r1,%r2 + d8: 6f 21 00 00 00 00 00 00 lsh %r1,%r2 + e0: 77 01 00 00 aa 00 00 00 rsh %r1,0xaa + e8: 77 01 00 00 aa 00 00 00 rsh %r1,0xaa + f0: 7f 21 00 00 00 00 00 00 rsh %r1,%r2 + f8: 7f 21 00 00 00 00 00 00 rsh %r1,%r2 + 100: a7 01 00 00 aa 00 00 00 xor %r1,0xaa + 108: a7 01 00 00 aa 00 00 00 xor %r1,0xaa + 110: af 21 00 00 00 00 00 00 xor %r1,%r2 + 118: af 21 00 00 00 00 00 00 xor %r1,%r2 + 120: b7 01 00 00 aa 00 00 00 mov %r1,0xaa + 128: b7 01 00 00 aa 00 00 00 mov %r1,0xaa + 130: bf 21 00 00 00 00 00 00 mov %r1,%r2 + 138: bf 21 00 00 00 00 00 00 mov %r1,%r2 + 140: c7 01 00 00 aa 00 00 00 arsh %r1,0xaa + 148: c7 01 00 00 aa 00 00 00 arsh %r1,0xaa + 150: cf 21 00 00 00 00 00 00 arsh %r1,%r2 + 158: cf 21 00 00 00 00 00 00 arsh %r1,%r2 + 160: 87 01 00 00 00 00 00 00 neg %r1 + 168: 87 01 00 00 00 00 00 00 neg %r1 + 170: 04 01 00 00 aa 00 00 00 add32 %r1,0xaa + 178: 04 01 00 00 aa 00 00 00 add32 %r1,0xaa + 180: 0c 21 00 00 00 00 00 00 add32 %r1,%r2 + 188: 0c 21 00 00 00 00 00 00 add32 %r1,%r2 + 190: 14 01 00 00 aa 00 00 00 sub32 %r1,0xaa + 198: 14 01 00 00 aa 00 00 00 sub32 %r1,0xaa + 1a0: 1c 21 00 00 00 00 00 00 sub32 %r1,%r2 + 1a8: 1c 21 00 00 00 00 00 00 sub32 %r1,%r2 + 1b0: 24 01 00 00 aa 00 00 00 mul32 %r1,0xaa + 1b8: 24 01 00 00 aa 00 00 00 mul32 %r1,0xaa + 1c0: 2c 21 00 00 00 00 00 00 mul32 %r1,%r2 + 1c8: 2c 21 00 00 00 00 00 00 mul32 %r1,%r2 + 1d0: 34 01 00 00 aa 00 00 00 div32 %r1,0xaa + 1d8: 34 01 00 00 aa 00 00 00 div32 %r1,0xaa + 1e0: 3c 21 00 00 00 00 00 00 div32 %r1,%r2 + 1e8: 3c 21 00 00 00 00 00 00 div32 %r1,%r2 + 1f0: 44 01 00 00 aa 00 00 00 or32 %r1,0xaa + 1f8: 44 01 00 00 aa 00 00 00 or32 %r1,0xaa + 200: 4c 21 00 00 00 00 00 00 or32 %r1,%r2 + 208: 4c 21 00 00 00 00 00 00 or32 %r1,%r2 + 210: 54 01 00 00 aa 00 00 00 and32 %r1,0xaa + 218: 54 01 00 00 aa 00 00 00 and32 %r1,0xaa + 220: 5c 21 00 00 00 00 00 00 and32 %r1,%r2 + 228: 5c 21 00 00 00 00 00 00 and32 %r1,%r2 + 230: 64 01 00 00 aa 00 00 00 lsh32 %r1,0xaa + 238: 64 01 00 00 aa 00 00 00 lsh32 %r1,0xaa + 240: 6c 21 00 00 00 00 00 00 lsh32 %r1,%r2 + 248: 6c 21 00 00 00 00 00 00 lsh32 %r1,%r2 + 250: 74 01 00 00 aa 00 00 00 rsh32 %r1,0xaa + 258: 74 01 00 00 aa 00 00 00 rsh32 %r1,0xaa + 260: 7c 21 00 00 00 00 00 00 rsh32 %r1,%r2 + 268: 7c 21 00 00 00 00 00 00 rsh32 %r1,%r2 + 270: a4 01 00 00 aa 00 00 00 xor32 %r1,0xaa + 278: a4 01 00 00 aa 00 00 00 xor32 %r1,0xaa + 280: ac 21 00 00 00 00 00 00 xor32 %r1,%r2 + 288: ac 21 00 00 00 00 00 00 xor32 %r1,%r2 + 290: b4 01 00 00 aa 00 00 00 mov32 %r1,0xaa + 298: b4 01 00 00 aa 00 00 00 mov32 %r1,0xaa + 2a0: bc 21 00 00 00 00 00 00 mov32 %r1,%r2 + 2a8: bc 21 00 00 00 00 00 00 mov32 %r1,%r2 + 2b0: c4 01 00 00 aa 00 00 00 arsh32 %r1,0xaa + 2b8: c4 01 00 00 aa 00 00 00 arsh32 %r1,0xaa + 2c0: cc 21 00 00 00 00 00 00 arsh32 %r1,%r2 + 2c8: cc 21 00 00 00 00 00 00 arsh32 %r1,%r2 + 2d0: 84 01 00 00 00 00 00 00 neg32 %r1 + 2d8: 84 01 00 00 00 00 00 00 neg32 %r1 + 2e0: d4 01 00 00 10 00 00 00 endle %r1,16 + 2e8: d4 01 00 00 10 00 00 00 endle %r1,16 + 2f0: d4 01 00 00 20 00 00 00 endle %r1,32 + 2f8: d4 01 00 00 20 00 00 00 endle %r1,32 + 300: d4 01 00 00 40 00 00 00 endle %r1,64 + 308: d4 01 00 00 40 00 00 00 endle %r1,64 + 310: dc 01 00 00 10 00 00 00 endbe %r1,16 + 318: dc 01 00 00 10 00 00 00 endbe %r1,16 + 320: dc 01 00 00 20 00 00 00 endbe %r1,32 + 328: dc 01 00 00 20 00 00 00 endbe %r1,32 + 330: dc 01 00 00 40 00 00 00 endbe %r1,64 + 338: dc 01 00 00 40 00 00 00 endbe %r1,64 + 340: 71 21 aa 00 00 00 00 00 ldxb %r1,\[%r2\+0xaa\] + 348: 71 21 aa 00 00 00 00 00 ldxb %r1,\[%r2\+0xaa\] + 350: 69 21 aa 00 00 00 00 00 ldxh %r1,\[%r2\+0xaa\] + 358: 69 21 aa 00 00 00 00 00 ldxh %r1,\[%r2\+0xaa\] + 360: 61 21 aa 00 00 00 00 00 ldxw %r1,\[%r2\+0xaa\] + 368: 61 21 aa 00 00 00 00 00 ldxw %r1,\[%r2\+0xaa\] + 370: 79 21 aa 00 00 00 00 00 ldxdw %r1,\[%r2\+0xaa\] + 378: 79 21 aa 00 00 00 00 00 ldxdw %r1,\[%r2\+0xaa\] + 380: 73 21 aa 00 00 00 00 00 stxb \[%r1\+0xaa\],%r2 + 388: 73 21 aa 00 00 00 00 00 stxb \[%r1\+0xaa\],%r2 + 390: 6b 21 aa 00 00 00 00 00 stxh \[%r1\+0xaa\],%r2 + 398: 6b 21 aa 00 00 00 00 00 stxh \[%r1\+0xaa\],%r2 + 3a0: 63 21 aa 00 00 00 00 00 stxw \[%r1\+0xaa\],%r2 + 3a8: 63 21 aa 00 00 00 00 00 stxw \[%r1\+0xaa\],%r2 + 3b0: 7b 21 aa 00 00 00 00 00 stxdw \[%r1\+0xaa\],%r2 + 3b8: 7b 21 aa 00 00 00 00 00 stxdw \[%r1\+0xaa\],%r2 + 3c0: 05 00 bb 00 00 00 00 00 ja 187 + 3c8: 05 00 bb 00 00 00 00 00 ja 187 + 3d0: 15 01 bb 00 aa 00 00 00 jeq %r1,0xaa,187 + 3d8: 15 01 bb 00 aa 00 00 00 jeq %r1,0xaa,187 + 3e0: 1d 21 bb 00 00 00 00 00 jeq %r1,%r2,187 + 3e8: 1d 21 bb 00 00 00 00 00 jeq %r1,%r2,187 + 3f0: 25 01 bb 00 aa 00 00 00 jgt %r1,0xaa,187 + 3f8: 25 01 bb 00 aa 00 00 00 jgt %r1,0xaa,187 + 400: 2d 21 bb 00 00 00 00 00 jgt %r1,%r2,187 + 408: 2d 21 bb 00 00 00 00 00 jgt %r1,%r2,187 + 410: 35 01 bb 00 aa 00 00 00 jge %r1,0xaa,187 + 418: 35 01 bb 00 aa 00 00 00 jge %r1,0xaa,187 + 420: 3d 21 bb 00 00 00 00 00 jge %r1,%r2,187 + 428: 3d 21 bb 00 00 00 00 00 jge %r1,%r2,187 + 430: a5 01 bb 00 aa 00 00 00 jlt %r1,0xaa,187 + 438: a5 01 bb 00 aa 00 00 00 jlt %r1,0xaa,187 + 440: ad 21 bb 00 00 00 00 00 jlt %r1,%r2,187 + 448: ad 21 bb 00 00 00 00 00 jlt %r1,%r2,187 + 450: b5 01 bb 00 aa 00 00 00 jle %r1,0xaa,187 + 458: b5 01 bb 00 aa 00 00 00 jle %r1,0xaa,187 + 460: bd 21 bb 00 00 00 00 00 jle %r1,%r2,187 + 468: bd 21 bb 00 00 00 00 00 jle %r1,%r2,187 + 470: 45 01 bb 00 aa 00 00 00 jset %r1,0xaa,187 + 478: 45 01 bb 00 aa 00 00 00 jset %r1,0xaa,187 + 480: 4d 21 bb 00 00 00 00 00 jset %r1,%r2,187 + 488: 4d 21 bb 00 00 00 00 00 jset %r1,%r2,187 + 490: 55 01 bb 00 aa 00 00 00 jne %r1,0xaa,187 + 498: 55 01 bb 00 aa 00 00 00 jne %r1,0xaa,187 + 4a0: 5d 21 bb 00 00 00 00 00 jne %r1,%r2,187 + 4a8: 5d 21 bb 00 00 00 00 00 jne %r1,%r2,187 + 4b0: 65 01 bb 00 aa 00 00 00 jsgt %r1,0xaa,187 + 4b8: 65 01 bb 00 aa 00 00 00 jsgt %r1,0xaa,187 + 4c0: 6d 21 bb 00 00 00 00 00 jsgt %r1,%r2,187 + 4c8: 6d 21 bb 00 00 00 00 00 jsgt %r1,%r2,187 + 4d0: 75 01 bb 00 aa 00 00 00 jsge %r1,0xaa,187 + 4d8: 75 01 bb 00 aa 00 00 00 jsge %r1,0xaa,187 + 4e0: 7d 21 bb 00 00 00 00 00 jsge %r1,%r2,187 + 4e8: 7d 21 bb 00 00 00 00 00 jsge %r1,%r2,187 + 4f0: c5 01 bb 00 aa 00 00 00 jslt %r1,0xaa,187 + 4f8: c5 01 bb 00 aa 00 00 00 jslt %r1,0xaa,187 + 500: cd 21 bb 00 00 00 00 00 jslt %r1,%r2,187 + 508: cd 21 bb 00 00 00 00 00 jslt %r1,%r2,187 + 510: d5 01 bb 00 aa 00 00 00 jsle %r1,0xaa,187 + 518: d5 01 bb 00 aa 00 00 00 jsle %r1,0xaa,187 + 520: dd 21 bb 00 00 00 00 00 jsle %r1,%r2,187 + 528: dd 21 bb 00 00 00 00 00 jsle %r1,%r2,187 + 530: 85 00 00 00 aa 00 00 00 call 170 + 538: 85 00 00 00 aa 00 00 00 call 170 + 540: 95 00 00 00 00 00 00 00 exit + 548: 95 00 00 00 00 00 00 00 exit + 550: b7 06 00 00 20 06 00 00 mov %r6,0x620 + 558: 95 00 00 00 00 00 00 00 exit + 560: 20 00 00 00 aa 00 00 00 ldabsw 0xaa + 568: 20 00 00 00 aa 00 00 00 ldabsw 0xaa + 570: 50 70 00 00 aa 00 00 00 ldindb %r7,0xaa + 578: 50 70 00 00 aa 00 00 00 ldindb %r7,0xaa + 580: 20 00 00 00 aa 00 00 00 ldabsw 0xaa + 588: 20 00 00 00 aa 00 00 00 ldabsw 0xaa + 590: 50 70 00 00 aa 00 00 00 ldindb %r7,0xaa + 598: 50 70 00 00 aa 00 00 00 ldindb %r7,0xaa + 5a0: 18 03 00 00 01 00 00 00 lddw %r3,1 + 5a8: 00 00 00 00 00 00 00 00 + 5b0: 18 03 00 00 01 00 00 00 lddw %r3,1 + 5b8: 00 00 00 00 00 00 00 00 + 5c0: 18 04 00 00 88 77 ff ee lddw %r4,-6144092013047351416 + 5c8: 00 00 00 00 dd cc bb aa + 5d0: 18 04 00 00 88 77 ff ee lddw %r4,-6144092013047351416 + 5d8: 00 00 00 00 dd cc bb aa + 5e0: 18 05 00 00 88 77 66 55 lddw %r5,0x1122334455667788 + 5e8: 00 00 00 00 44 33 22 11 + 5f0: 18 05 00 00 88 77 66 55 lddw %r5,0x1122334455667788 + 5f8: 00 00 00 00 44 33 22 11 + 600: 18 06 00 00 20 06 00 00 lddw %r6,0x620 + 608: 00 00 00 00 00 00 00 00 + 600: R_BPF_64_64 .text + 610: 18 06 00 00 20 06 00 00 lddw %r6,0x620 + 618: 00 00 00 00 00 00 00 00 + 610: R_BPF_64_64 .text + +0000000000000620
: + 620: c3 21 aa 00 00 00 00 00 xaddw \[%r1\+0xaa\],%r2 + 628: c3 21 aa 00 00 00 00 00 xaddw \[%r1\+0xaa\],%r2 + 630: db 21 aa 00 00 00 00 00 xadddw \[%r1\+0xaa\],%r2 + 638: db 21 aa 00 00 00 00 00 xadddw \[%r1\+0xaa\],%r2 diff --git a/gas/testsuite/gas/bpf/pseudoc-normal.s b/gas/testsuite/gas/bpf/pseudoc-normal.s new file mode 100644 index 00000000000..b3467d12219 --- /dev/null +++ b/gas/testsuite/gas/bpf/pseudoc-normal.s @@ -0,0 +1,196 @@ +# Tests for mixing pseudo-C and normal eBPF instructions +beg: + .text + add %r1,0xaa + r1 += 0xaa + add %r1,%r2 + r1 += r2 + sub %r1,0xaa + r1 -= 0xaa + sub %r1,%r2 + r1 -= r2 + mul %r1,0xaa + r1 *= 0xaa + mul %r1,%r2 + r1 *= r2 + div %r1,0xaa + r1 /= 0xaa + div %r1,%r2 + r1 /= r2 + or %r1,0xaa + r1 |= 0xaa + or %r1,%r2 + r1 |= r2 + and %r1,0xaa + r1 &= 0xaa + and %r1,%r2 + r1 &= r2 + lsh %r1,0xaa + r1 <<= 0xaa + lsh %r1,%r2 + r1 <<= r2 + rsh %r1,0xaa + r1 >>= 0xaa + rsh %r1,%r2 + r1 >>= r2 + xor %r1,0xaa + r1 ^= 0xaa + xor %r1,%r2 + r1 ^= r2 + mov %r1,0xaa + r1 = 0xaa + mov %r1,%r2 + r1 = r2 + arsh %r1,0xaa + r1 s>>= 0xaa + arsh %r1,%r2 + r1 s>>= r2 + neg %r1 + r1 = -r1 + add32 %r1,0xaa + w1 += 0xaa + add32 %r1,%r2 + w1 += w2 + sub32 %r1,0xaa + w1 -= 0xaa + sub32 %r1,%r2 + w1 -= w2 + mul32 %r1,0xaa + w1 *= 0xaa + mul32 %r1,%r2 + w1 *= w2 + div32 %r1,0xaa + w1 /= 0xaa + div32 %r1,%r2 + w1 /= w2 + or32 %r1,0xaa + w1 |= 0xaa + or32 %r1,%r2 + w1 |= w2 + and32 %r1,0xaa + w1 &= 0xaa + and32 %r1,%r2 + w1 &= w2 + lsh32 %r1,0xaa + w1 <<= 0xaa + lsh32 %r1,%r2 + w1 <<= w2 + rsh32 %r1,0xaa + w1 >>= 0xaa + rsh32 %r1,%r2 + w1 >>= w2 + xor32 %r1,0xaa + w1 ^= 0xaa + xor32 %r1,%r2 + w1 ^= w2 + mov32 %r1,0xaa + w1 = 0xaa + mov32 %r1,%r2 + w1 = w2 + arsh32 %r1,0xaa + w1 s>>= 0xaa + arsh32 %r1,%r2 + w1 s>>= w2 + neg32 %r1 + w1 = -w1 + endle %r1,16 + r1 = le16 r1 + endle %r1,32 + r1 = le32 r1 + endle %r1,64 + r1 = le64 r1 + endbe %r1,16 + r1 = be16 r1 + endbe %r1,32 + r1 = be32 r1 + endbe %r1,64 + r1 = be64 r1 + ldxb %r1,[%r2+0xaa] + r1 = *(u8 *)(r2 + 0xaa) + ldxh %r1,[%r2+0xaa] + r1 = *(u16 *)(r2 + 0xaa) + ldxw %r1,[%r2+0xaa] + r1 = *(u32 *)(r2 + 0xaa) + ldxdw %r1,[%r2+0xaa] + r1 = *(u64 *)(r2 + 0xaa) + stxb [%r1+0xaa],%r2 + *(u8 *)(r1 + 0xaa) = r2 + stxh [%r1+0xaa],%r2 + *(u16 *)(r1 + 0xaa) = r2 + stxw [%r1+0xaa],%r2 + *(u32 *)(r1 + 0xaa) = r2 + stxdw [%r1+0xaa],%r2 + *(u64 *)(r1 + 0xaa) = r2 + ja 187 + goto 0xbb + jeq %r1,0xaa,187 + if r1 == 0xaa goto 0xbb + jeq %r1,%r2,187 + if r1 == r2 goto 0xbb + jgt %r1,0xaa,187 + if r1 > 0xaa goto 0xbb + jgt %r1,%r2,187 + if r1 > r2 goto 0xbb + jge %r1,0xaa,187 + if r1 >= 0xaa goto 0xbb + jge %r1,%r2,187 + if r1 >= r2 goto 0xbb + jlt %r1,0xaa,187 + if r1 < 0xaa goto 0xbb + jlt %r1,%r2,187 + if r1 < r2 goto 0xbb + jle %r1,0xaa,187 + if r1 <= 0xaa goto 0xbb + jle %r1,%r2,187 + if r1 <= r2 goto 0xbb + jset %r1,0xaa,187 + if r1 & 0xaa goto 0xbb + jset %r1,%r2,187 + if r1 & r2 goto 0xbb + jne %r1,0xaa,187 + if r1 != 0xaa goto 0xbb + jne %r1,%r2,187 + if r1 != r2 goto 0xbb + jsgt %r1,0xaa,187 + if r1 s> 0xaa goto 0xbb + jsgt %r1,%r2,187 + if r1 s> r2 goto 0xbb + jsge %r1,0xaa,187 + if r1 s>= 0xaa goto 0xbb + jsge %r1,%r2,187 + if r1 s>= r2 goto 0xbb + jslt %r1,0xaa,187 + if r1 s< 0xaa goto 0xbb + jslt %r1,%r2,187 + if r1 s< r2 goto 0xbb + jsle %r1,0xaa,187 + if r1 s<= 0xaa goto 0xbb + jsle %r1,%r2,187 + if r1 s<= r2 goto 0xbb + call 170 + call 0xaa + exit + exit + mov %r6,main - beg + exit + ldabsw 0xaa + r0 = *(u32 *)skb[0xaa] + ldindb %r7,0xaa + r0 = *(u8 *)skb[r7 + 0xaa] + ldabsw 0xaa + r0 = *(u32 *)skb[0xaa] + ldindb %r7,0xaa + r0 = *(u8 *)skb[r7 + 0xaa] + lddw %r3,1 + r3 = 1 ll + lddw %r4,0xaabbccddeeff7788 + r4 = 0xaabbccddeeff7788 ll + r5 = 0x1122334455667788 ll + lddw %r5,0x1122334455667788 + lddw %r6,main + r6 = main ll + main: + lock *(u32 *)(r1 + 0xaa) += r2 + xaddw [%r1+0xaa],%r2 + lock *(u64 *)(r1 + 0xaa) += r2 + xadddw [%r1+0xaa],%r2 diff --git a/gas/testsuite/gas/macros/macros.exp b/gas/testsuite/gas/macros/macros.exp index e217b2b14ae..811ef7d835c 100644 --- a/gas/testsuite/gas/macros/macros.exp +++ b/gas/testsuite/gas/macros/macros.exp @@ -82,6 +82,7 @@ switch -glob $target_triplet { rl78-*-* { } rx-*-* { } vax-*-* { } + bpf-*-* { } default { run_list_test dot "-alm" } } run_list_test end "" -- 2.30.2