From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 8B8743858C33 for ; Tue, 25 Jul 2023 22:14:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8B8743858C33 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 (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36PJIpdE029464 for ; Tue, 25 Jul 2023 22:14:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : in-reply-to : references : date : message-id : content-type : mime-version; s=corp-2023-03-30; bh=QVd3O6Zkk//HwadyZfI+jqXQAQO9t1gkAAVKDMKlq8c=; b=18OSAIdHxBFVweAJUrrNr4CRo6///GDfGSS6BC9riVp5uawXD99SqzkLir50hM61XkL2 iizF2Mzk+41PQN7ryRirtsLnSnE9gGaPnjAWmzSf0HuxiHU9RniYQEjVK8gv+y97CLV6 yKi0QEOuUPc2UZ2vn5E4r2FdHA5TeV5qAogfMGaPpO/B4NU5lbBnIuproRUIkM8TBNM5 A1cAWcO3Xn4QYhD1rHBn+XojoUMSQQwUmLvoFKmLiKYlqR9+8tekSkxt24vbowcBSism tbbdr5tySrIAdQx0Ga6fBkm7nv+JC68+7pHlSBHuHyq/TxM5ib2JmbryIDtJChKzC3V0 FA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s05q1x8m1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 25 Jul 2023 22:14:58 +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 36PLnBl9029350 for ; Tue, 25 Jul 2023 22:14:57 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3s05j5dc47-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 25 Jul 2023 22:14:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gtuo00XFWexzFlPC9RJqrHHD3iVKTDbbE5u6mcmUDpM2+7ZvApQkIwu6xNLo/w9uqNuXpOoElEx6BoIkj6lEQF2Sg5qGJtbNRrFA745fR/rTP/itgcxArZ1/oFAmQ10Lo/qqcfNnV+ukEGt3fJrnCTzbkzjZ3V3V/sgi97nq3m0Tb1JJF/m0kaNoIC/RbTUBz8PS5rcrWGy9cP1J8GFA5jBEERVUIlLIZgoLsDyCx9CrIk5CWcKcfw0tAQXgNxEiktEDM5PDfx594V0U7oyTu/ASkuCbWkK7S2PycXcxAUaiKXF53aalZ2W49j467P2poAnrFscS5FLRIKWC+leuRA== 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=QVd3O6Zkk//HwadyZfI+jqXQAQO9t1gkAAVKDMKlq8c=; b=McqO9+5R7/JHWpB3+6emk3NPgnaMqii1GTl629AY1knCCOMJSobwlOw6Z0wtQurLuZ6zmGNRFA7qRGYs7maUvnWSZUCvkXu4ynUQMW/vHh+xWJdTIUiMkzeSSBHMrVw36JiOYEIfciLFlp+ri/nKvOfvGNYoGbx+iEClhg1nUgdOs4JW3WhFmtP+nsBJPq/h8pVtbRzHE/4XULFuC5FTC3c7zyOAH2D72qec706dhobhKretgF8omJlJZznhwme1iJayCXan3Ayp7ICIqRnv0+kudE9W4jiaSb2SEuypZ/Hkgik01EFlk04WD+zrLIDPq6n1ruho2Ch5YFzt8cSG2A== 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=QVd3O6Zkk//HwadyZfI+jqXQAQO9t1gkAAVKDMKlq8c=; b=Jbs8AxdxcMhTzfxoCXrFu5Ry4nzatnPvj9QTxQsQhY/tXOVbQOj83XDUjYYj/ohMKyqEdQI5y+Y2b1XQMLaZwtDJuvCGgUwz18+Sbml0S/vHhaf/0AlvWTVnPRkypntseRLazasjG2A986xL4K4cTvrOr9vjFTw/OGRH3hFdSaw= Received: from BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by PH0PR10MB5778.namprd10.prod.outlook.com (2603:10b6:510:12b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.33; Tue, 25 Jul 2023 22:14:54 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::d5ed:aedb:b99f:6f19]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::d5ed:aedb:b99f:6f19%3]) with mapi id 15.20.6609.032; Tue, 25 Jul 2023 22:14:54 +0000 From: "Jose E. Marchesi" To: David Faust Cc: gcc-patches@gcc.gnu.org Subject: Re: [PATCH 1/2] bpf: don't print () in bpf_print_operand_address In-Reply-To: <20230725220821.11431-1-david.faust@oracle.com> (David Faust's message of "Tue, 25 Jul 2023 15:08:20 -0700") References: <20230725220821.11431-1-david.faust@oracle.com> Date: Wed, 26 Jul 2023 00:14:49 +0200 Message-ID: <874jlrabae.fsf@oracle.com> User-Agent: Gnus/5.13 (Gnus v5.13) Content-Type: text/plain X-ClientProxiedBy: AM0PR03CA0081.eurprd03.prod.outlook.com (2603:10a6:208:69::22) To BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR10MB2888:EE_|PH0PR10MB5778:EE_ X-MS-Office365-Filtering-Correlation-Id: d1a0f559-3fb5-44ae-3cc6-08db8d5c92ba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dSgtWgkpcLmlzWd8Hj2jLxVcrLiz34yftU9dG7iDGuGoRIMCS+2Qvy+sASfec7/HYEuxT0/urIH84OR+5HhewJ4umKg3D/Vlfge6ZRk5TRa+0iVjaOqS1tOqiOMHXbmyyH3mQbqXCeBWtuSWUAE9+FjGya9dBAibIfQR6ueSRkC7soUNc9z/4fIoRReZd76IH8/JZNMZpt3kCT0DOTgXNJdGgJBwGE5prdYEljlk3eOwllO5oBDjoa1vauN4/8W7W2K8mlvSPDjQEAz75CNaU2UhCRECRJSB4s259RJCeq8XB615Vsn11a5Ku/r4kxdT2oZq97sLffTK5HlOz056IbZcEkJZpGwj8eN/LYUnuUxPbWqB6Qt+OfrYybrZWPBoEcKL4ad49pv1n7mbLedpxJLtxvAUD53G6XWBFY0G1o5xKuEBueaiTiEhnlFedcz1GWPzqQUZpqcpjYU/Oo0DHJ1rFxk5tTd1FvIvIxiX7+eotFsfG2TpDgYj7i7q9vikMfTBJVA4lWF2FciAM40tOMFIcttYAx501QzECR4U4XIUyHJJ7nRUE5XaR7U5vKbx 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)(396003)(376002)(346002)(136003)(366004)(451199021)(26005)(186003)(2906002)(6862004)(36756003)(8676002)(8936002)(478600001)(6666004)(37006003)(66476007)(6512007)(6486002)(6506007)(38100700002)(41300700001)(5660300002)(4326008)(66556008)(66946007)(83380400001)(6636002)(2616005)(86362001)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?A+vzNo76vhMcX71aNet4KWpFjIej0WKtxS9Ib8UNCZYNENJBpPBLJWssh80f?= =?us-ascii?Q?NKTjsVDwuNxCOTUj6dNKvDOid9Pok4DQSzDFZFiC9N1JxrpoapQyrDIxBYHJ?= =?us-ascii?Q?KEdQBOVwyvPfPX9xb13loEJshBKBHO6TT5oIs3dpCihYowDGy8DQZFv4zLa7?= =?us-ascii?Q?umZ54AV68jnJ0+86eOtWMni5S8YT4aAvBE7zbr1D0se23i2Gt5BUASt5H60i?= =?us-ascii?Q?R5Qa3KvyVvRuk8kloJl+1v1lxTjJg8kBwbRqLrd20HV9Q7q5m32DTFpUB7In?= =?us-ascii?Q?O3/Ymo0Iml/5H/xNGY0JCS09gQ6p99SOh4mc5so3jQ0JomMbQjIrJxYVO4oA?= =?us-ascii?Q?v4OVvwiMv++pGNVtDW5DF/zKoMKS9OIEI6sMqNprMf3+TlonDjD7zJOVnd44?= =?us-ascii?Q?FflMOIO45n4sVg/OgxSgjX9ZeM8v87Zu0Gkl/NHuCS5JD8MM7hmM67l/h9yJ?= =?us-ascii?Q?YdjwITYojwd9xe0twfdpa5J8xrJFEaBw+2k5zT6GwsD+kwClZhcj1YuAwLji?= =?us-ascii?Q?ZnkZ7wZno0hF0tziyCwhoIhOffnYd1V+5Pfkx1ze0tbhlW1IxLo65rWlcjob?= =?us-ascii?Q?9O9zWjazYC0Qx7jR30XZdk3o5arXkJj/oj3w9Isv9qK47WvRMnUJDOWlkHbr?= =?us-ascii?Q?fJCo8cyC3jCP2IOcCJTj1txYDyj0psI8v0+mwDMRcXIVniojEZemYLAYUm7B?= =?us-ascii?Q?Zv0Z27fTBXbNjJG1wUZWt3F/rU4p9mXiC/NpdCEEROFQkMzEk8y48iaq8Fb1?= =?us-ascii?Q?V25liwl78WrG8h7uXg98O87E3lqCwTN/j33ZzjYebdEmV5LvCiqeQ1ECXpyU?= =?us-ascii?Q?+O4dE6ISVsUr8290Sbldnc4he3rRjMFz7iNKrtvVyHS4GM/6J/Qgy8QBOW/f?= =?us-ascii?Q?DScdYPlkgnKKcBexnRZRS8YghTVhvSzyr/Laj5crJr23yAtzbUjuj2fEDDJQ?= =?us-ascii?Q?ynKIg4A430od6huKFeFPxNOsdlXMCKeJjHSgKko/Nxk3PUVbbCuoIdPsbUY4?= =?us-ascii?Q?BsMUY/QQHX3C6NITMCm3RxbOCzk/kTl9u9k4A0+oYqEhme8fHL/9Lg+YsdL3?= =?us-ascii?Q?deWHMt1twfFCEl4bvXNqN8/EmU+z+2fKGlJtghmxj5qzg32nD5ymra/pv3pm?= =?us-ascii?Q?AWZSywSBmUO3IGxnkfPaapEpW3YFYIX4r7t3cOCFt11czFm1TJ3kTDkBYlO4?= =?us-ascii?Q?l6DdSaNtLeojyr0PAWd68+fpOBiz3Az7HRu8EkQX+O1SquQOvQT48jv5KrAt?= =?us-ascii?Q?6x/gY5G14W5BuZvT/WnGejN1A+g+GlaNRlP1VFat1sTsCPqW4S6SJoBidK3F?= =?us-ascii?Q?MTtj9XVikxux25xq6FYMX0YZ2fYT1BkLB85V+lz2Q9Dxr3tMSmH7enXBI8B8?= =?us-ascii?Q?n+noF6j+jy+Y3amW+Ac5fxXL2Nco3TBKEOGA/HgDlJf7zInz6LJxIPUUIoKh?= =?us-ascii?Q?lDHLvS03L8Xeg4Pn7BIXCREGxq7pJ9iBDMiVfajKnKwT7uW3mamoob9EGlpg?= =?us-ascii?Q?ns40ZDitaShlpU6Xtv3sDaUlGLU08Q9C76gUSPsbR6dl6juwtZ1dwEDrHQwg?= =?us-ascii?Q?/9tNNqpYaY2FJQZcQdwHds3/bcspJyTz7qo/HB2aLcv7SrWWRj9/MAvWygQl?= =?us-ascii?Q?4g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5PORE+4GnVoh0qZENyKwhRCpyyOPaj3QXunCJHW36t+R382i26HbgZrkz96Q8kdcrkP6DJJZHpjMm13QdBXj+bJfJk7wl44kf6gFY+VOs1d9Uxdfc4Vbizyi4sVG79dXQXNx7tbL5BEst5O8SGqvxdREmKq7GAJXaUAZNZd4bsCHWC1fao+l/Udh0zPj0Ipwo1SAoWJ2xqLHz/oB7GPDzIctT/J7GwdzjmWf7FZZwZ1kMdaRC9Wag3NPbcraV1XbvmogjuCDFno/nAxwB5CODGp+sR1UPSLy1r6gpYQGOTuvpCaPmm89/YkQASsJqULKTcD7CqTLzflaqDVTLxWDftTFXXhKUCX+94EDqAGO/B6ggQ0itqPouMZlJHzgnFpc249yl1e5NKH9cZvHzKta+p+bGH97tJwUsgpthkrsF6xsloiF+6jMNu63fZBYcSz9Vx69+q1MwiIf2aqjbFPR+e0FZdrvhYoufre2tzMBbGxFuUKaSHZmLM+PtgwgSEn/Q/Ln8JPChr+aQ0CApP74+2YVP1OVdLikX0HhOmS4ZnUU1EXyh6AMOWWp8vMYNq5JcyjycHKJaLcwWQgRSbj+8moZwGoN2g5PCHtLuw6fgDNc2cYM2/RCOuXOQaozJYlwqIVgFeXjiLHvJP0T+3YOhURJaIv8nK5vThVwEKi1ov0gIf9fpemjpMpx/uYGjGgLqp7ss+Y6zjwishx1Rv8ss0jujO/KdPrJnUbwDqFwHe9Y4UpdhonK08FHz7l7JRXE X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d1a0f559-3fb5-44ae-3cc6-08db8d5c92ba X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2023 22:14:54.3901 (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: CH1IuTDYKxvF29UKu0y3S8OFz1oTSS7Q9dN7Q8PG4WI7YjJsrho/8HG7V5z1plni4OBuNyjA+GDA0bUuMR1cwHDGWqYW2QR3DSjtxgSH8qU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5778 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-25_12,2023-07-25_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 spamscore=0 adultscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307250190 X-Proofpoint-GUID: k-RBElZFYDj6v8qVRcdUl2XcVr9Ns1ad X-Proofpoint-ORIG-GUID: k-RBElZFYDj6v8qVRcdUl2XcVr9Ns1ad X-Spam-Status: No, score=-12.4 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_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi David. > Unfortunately, the pseudo-C dialect syntax used for some of the v3 > atomic instructions clashes with unconditionally printing the > surrounding parentheses in bpf_print_operand_address. > > Instead, place the parentheses in the output templates where needed. > > Tested in bpf-unknown-none. > OK? > > gcc/ > > * config/bpf/bpf.cc (bpf_print_operand_address): Don't print > enclosing parentheses for pseudo-C dialect. > * config/bpf/bpf.md (zero_exdendhidi2): Add parentheses around > operands of pseudo-C dialect output templates where needed. > (zero_extendqidi2): Likewise. > (zero_extendsidi2): Likewise. > (*mov): Likewise. > --- > gcc/config/bpf/bpf.cc | 8 ++++---- > gcc/config/bpf/bpf.md | 12 ++++++------ > 2 files changed, 10 insertions(+), 10 deletions(-) > > diff --git a/gcc/config/bpf/bpf.cc b/gcc/config/bpf/bpf.cc > index 55b6927a62f..2c077ea834e 100644 > --- a/gcc/config/bpf/bpf.cc > +++ b/gcc/config/bpf/bpf.cc > @@ -933,9 +933,9 @@ bpf_print_operand_address (FILE *file, rtx addr) > switch (GET_CODE (addr)) > { > case REG: > - fprintf (file, asm_dialect == ASM_NORMAL ? "[" : "("); > + fprintf (file, asm_dialect == ASM_NORMAL ? "[" : ""); We can save the call to fprintf there with a conditional. > bpf_print_register (file, addr, 0); > - fprintf (file, asm_dialect == ASM_NORMAL ? "+0]" : "+0)"); > + fprintf (file, asm_dialect == ASM_NORMAL ? "+0]" : "+0"); > break; > case PLUS: > { > @@ -944,11 +944,11 @@ bpf_print_operand_address (FILE *file, rtx addr) > > if (GET_CODE (op0) == REG && GET_CODE (op1) == CONST_INT) > { > - fprintf (file, asm_dialect == ASM_NORMAL ? "[" : "("); > + fprintf (file, asm_dialect == ASM_NORMAL ? "[" : ""); Likewise. > bpf_print_register (file, op0, 0); > fprintf (file, "+"); > output_addr_const (file, op1); > - fprintf (file, asm_dialect == ASM_NORMAL ? "]" : ")"); > + fprintf (file, asm_dialect == ASM_NORMAL ? "]" : ""); > } > else > fatal_insn ("invalid address in operand", addr); > diff --git a/gcc/config/bpf/bpf.md b/gcc/config/bpf/bpf.md > index 64342ea1de2..579a8213b09 100644 > --- a/gcc/config/bpf/bpf.md > +++ b/gcc/config/bpf/bpf.md > @@ -260,7 +260,7 @@ (define_insn "zero_extendhidi2" > "@ > {and\t%0,0xffff|%0 &= 0xffff} > {mov\t%0,%1\;and\t%0,0xffff|%0 = %1;%0 &= 0xffff} > - {ldxh\t%0,%1|%0 = *(u16 *) %1}" > + {ldxh\t%0,%1|%0 = *(u16 *) (%1)}" > [(set_attr "type" "alu,alu,ldx")]) > > (define_insn "zero_extendqidi2" > @@ -270,7 +270,7 @@ (define_insn "zero_extendqidi2" > "@ > {and\t%0,0xff|%0 &= 0xff} > {mov\t%0,%1\;and\t%0,0xff|%0 = %1;%0 &= 0xff} > - {ldxh\t%0,%1|%0 = *(u8 *) %1}" > + {ldxh\t%0,%1|%0 = *(u8 *) (%1)}" > [(set_attr "type" "alu,alu,ldx")]) > > (define_insn "zero_extendsidi2" > @@ -280,7 +280,7 @@ (define_insn "zero_extendsidi2" > "" > "@ > * return bpf_has_alu32 ? \"{mov32\t%0,%1|%0 = %1}\" : \"{mov\t%0,%1\;and\t%0,0xffffffff|%0 = %1;%0 &= 0xffffffff}\"; > - {ldxw\t%0,%1|%0 = *(u32 *) %1}" > + {ldxw\t%0,%1|%0 = *(u32 *) (%1)}" > [(set_attr "type" "alu,ldx")]) > > ;;; Sign-extension > @@ -319,11 +319,11 @@ (define_insn "*mov" > (match_operand:MM 1 "mov_src_operand" " q,rI,B,r,I"))] > "" > "@ > - {ldx\t%0,%1|%0 = *( *) %1} > + {ldx\t%0,%1|%0 = *( *) (%1)} > {mov\t%0,%1|%0 = %1} > {lddw\t%0,%1|%0 = %1 ll} > - {stx\t%0,%1|*( *) %0 = %1} > - {st\t%0,%1|*( *) %0 = %1}" > + {stx\t%0,%1|*( *) (%0) = %1} > + {st\t%0,%1|*( *) (%0) = %1}" > [(set_attr "type" "ldx,alu,alu,stx,st")]) > > ;;;; Shifts Otherwise, LGTM. OK. Thanks!