From patchwork Mon Jan 30 14:40:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 50324 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp2215658wrn; Mon, 30 Jan 2023 06:40:58 -0800 (PST) X-Google-Smtp-Source: AK7set9CNNDbq1jXCAo92viBC/k20BnUozhPJSjEHFtwqcU8jSEPcoHSVyufyOijaJWnFBDGnxkP X-Received: by 2002:a17:906:eca1:b0:87e:a34b:9e2b with SMTP id qh1-20020a170906eca100b0087ea34b9e2bmr12471111ejb.28.1675089658035; Mon, 30 Jan 2023 06:40:58 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id 1-20020a17090600c100b0088b28ea5bd7si678407eji.556.2023.01.30.06.40.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jan 2023 06:40:58 -0800 (PST) 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=n4ZTS6so; 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 74EE4385840E for ; Mon, 30 Jan 2023 14:40:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 74EE4385840E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1675089655; bh=9ZbQxr21hV5JdvMPtkXiIt3pm1ojDieByCV6T7W3OvA=; h=Date:Subject:To:Cc:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=n4ZTS6soYLybpWg8e4UwhgodFwE9ySy47I0SnkKaxtgdASxZMHKxrVszGcxPV4e7T tLtlPVSP0qgaRBP7iEJU/hOPABfXYq3dWnwiarv7M57XV9y5Ol8VXJD7fnz20fG8Rr wZeFpS6GYOkcL/LprlkFUf4AxNKwkOPVa35m0Egw= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2059.outbound.protection.outlook.com [40.107.22.59]) by sourceware.org (Postfix) with ESMTPS id 8E48E3858D1E for ; Mon, 30 Jan 2023 14:40:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8E48E3858D1E ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lDDM+CnJRtmFW95+jHSD2kSJ9h1DfIP3VAITq5yvunAzFhYr6oRIU8vuDfrSp6esX7Gmd7ZjDXa6dSHAC1L0vRPxEBrak6HmR0YasE2A4k/JJXJm4Ivm0rWFROUZRiMsJvEcsADm2QfH+roS5zyyoFHhVTF7mbUX5PZFbEAVcOFZ0PKmi88oUIxCER5jSQEZSoadDJB9NPY8F/23dygwPrLMaut2i+x3GsTnS22zhWyewA9UzpyfxyL/l101uvuv3Yuem+vHb/KmhkTllixhetRmIh8kb0z4fRxEwGqlxtEi3jgcjKqvPiJtoNjGtrOBKqAGSB4myOIQ/33cbIGq4w== 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=9ZbQxr21hV5JdvMPtkXiIt3pm1ojDieByCV6T7W3OvA=; b=lZwyZKoqlM2WCuMk5qgUvxJ1Od/0jyyXmWTYP/6XOnD+fHkHyhtdED5qU68DpMAxmXPYNiIBj157caSlAheEU9EJz8hT55ZuNIvyvQU5T5tJsismifzCnfaNkwyXVqlxCscnK26K2pdX6p6YEKsYBCGx/CQKAkxhHdamJ929WZ72nDmMeMOUrOtrML8oeawBbJsAx7JDfzGCAWcp9cEcxU3dnPuzKscmx5LqXWqcLM7zZ03wnGWoSuvktaaYY91HnQnnE0Bz0Px2wb4ErVWvD0UTMnScq2th1CRcSzQSEwq9R0o2esxcJUOB73vfCbwXPVNYHd1P1p0RplzZkNY2Fw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PAXPR04MB8286.eurprd04.prod.outlook.com (2603:10a6:102:1cd::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.33; Mon, 30 Jan 2023 14:40:42 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.6043.036; Mon, 30 Jan 2023 14:40:42 +0000 Message-ID: Date: Mon, 30 Jan 2023 15:40:38 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH v2] RISC-V: don't disassemble unrecognized insns as .byte To: Binutils Cc: Palmer Dabbelt , Andrew Waterman , Jim Wilson , Nelson Chu , Kito Cheng Content-Language: en-US X-ClientProxiedBy: AM0PR03CA0108.eurprd03.prod.outlook.com (2603:10a6:208:69::49) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PAXPR04MB8286:EE_ X-MS-Office365-Filtering-Correlation-Id: f96328bb-a34c-4aaa-e407-08db02cff65b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LoRV+xFGSgcvU3vBRxwP8NA59WzDHqSMGxDN79N8kgGiel8ZLbrLFMC+KDOXLYo4/s3AShrCHqlmOm1QYqFf4HmqRLoF1QolwoaDT9Q4h5pFwp0eoCQxCQWZpCPHJSpgNHkbV5KqqVKOtmeuZuYBHDKZduv8JvSoHp+zR8L0h84NWyjRVAwUm6bWYl1ySH6MP6qCH2UazH0grToguJwPTFzecI71fTwNZ5UmzsThnT8Y7mEK3f+1BWtQd6tkaYwy+1ZzzdkZRXeLvVd8WQ3GhbNExiJdVzpEyBLzOTBhG1kQjRp1JLBcO+WGIfB21VD+pvDoD+WFMWlEWa9oILgLOq1zMPwuvKg2pDDmxCpIt09BAUYPJjsBJ7hQdfz6CAeOMH0Y3wPsC6ws+huBoCXh4q8vicClzuBh9CC45cC25glshEPCduSO6qMbPipqVvdn68Rv+Ygl1LdFlD/LcDgG8vxFPgeg3snWvhTYjl6l6kg3YjSWvYqY1B/Ii4NuyTPNFFK522sJOXBGT62yU5VoTTlBgwHrmU979IK/hBtm8RlTA3KbyLp1yO3yIpx3b+TIhIQyny9BlZkqfvLxPaQcF7ljnLDAPr41L5OIagw1JhxAUn5RsYJBQPYUe0cyT87uzNqNd8XmqFXfFwQfJ2a12KoHx7mFD5UH34lgaMrzVtWgyf6TVYBr1ommK70LI++PMeHjwfrS4eIW5qQh3XZfEXLnsh/BuyYFAU3lNAAECBBZJC56U/dcb67sRVIu7Kh+vy8ynHwz9WEpLfQdh48F2A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6560.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(39860400002)(376002)(396003)(366004)(346002)(136003)(451199018)(5660300002)(31696002)(36756003)(38100700002)(2906002)(31686004)(86362001)(2616005)(478600001)(6486002)(26005)(186003)(6512007)(54906003)(6666004)(66476007)(66946007)(66556008)(6506007)(8676002)(6916009)(4326008)(316002)(41300700001)(8936002)(142923001)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?+4oP+WdLCKUM3D5xbnPPQ3SZ1K5P?= =?utf-8?q?XbWWomh5MdHcPNyMIK6NEx62W6ZB8OR2yvcUtSNbE4K5sj7xz3yoaHv9/zJBaDR2D?= =?utf-8?q?t2/QcHRCV7IRXRs6tb3i0IcikjPEFEQ8fRN4ClPUO2UrvGCIrIZii8KsQEDEUGPds?= =?utf-8?q?jwPJZQjHy++dw3komnk0rddJyMWJzRYCxVlpzZuUTX93z3yftsdpJpJD+jxLKnbZV?= =?utf-8?q?NvDa2VhGMNCU0Gkj4WgVjlwnLQzLFWSpkpDjVKJBmiM29qnzrqDnHIzIkT5cNZE8v?= =?utf-8?q?maudKYD7RyGBDJ1hLiHQM/z5UXvCVYxsG1B7JFLD2VvvyVw7PoXooZziivocWjUV9?= =?utf-8?q?PjN5yy7tv/o9fUT/vAd64/qjaZ/d52owmu84QCWpoKbAhcRJTI30ENFJcJsB4+G1y?= =?utf-8?q?NV7Usbdlngh31gpda8Z6QMs8Qm40Uh66yHBouzpVuQ5Y0QGPSCEP6SAIyKFMop/mR?= =?utf-8?q?CVIm9xvtBMyeVYj0h+OpwyZh5WhER1vjUhajdsh9Ehj5cgsa+1Heq96PG5J0KNjJf?= =?utf-8?q?TwDoLcCn0HPkTlNjDZdyuRBLVS0Y21cMyVbPUSCA4HEMfIe8SWIV7lsVLzeZf/0es?= =?utf-8?q?9jz+1ujPPsVDch4kx0KegiU5sDhPex+2w/pcjfhhSGvHLE59c9v5/eEshIhba64ET?= =?utf-8?q?YzxFP/QpjfHv685yl6tpoP+qd7Oiz0BQzDOo8UZvNCRB/o6JWF4wxavW5QS26w50O?= =?utf-8?q?x2wfuHRQJQfQ/N+W9GvBKBYrfBQKKF0ZEMnKENWPIvaceJVLylDDUt3LfUZ92gTgW?= =?utf-8?q?KNe4SMnTpZFay4k2aMhLMVHk/kV5tm3zcKWqDi5w/IE7de87GEaSrK3QOZ/g36nas?= =?utf-8?q?Jg5BURDQ5IDNMPlm2vaWFd/6FftiQScbFOX7VzMYfsQi/Y5WzkkwfE7jnBmgCSDY2?= =?utf-8?q?BJ6zfnIRqnq6w+CVkc0jW0jdMNWJFOs1/L97b/muGD6gHjcW+s99GMfJhe6ZUZo2W?= =?utf-8?q?BIwSGi7VBodruruNALPVYdkCQ95+BpMjZYeu5Szwl8QG2b/umT2u5n/bwAPDFhsMF?= =?utf-8?q?jH41emfVkUwlFI8OfKovhlUBw9B0qcE39NxJf+pINE9f3i5r7aW3/4yEWwsDz9R3r?= =?utf-8?q?WmkMLKRn9IxWV6BMF0bCENs+o2Zf4IniXyGxg0RmkJiGc/Lev95vOiFTmVUH0vN8Y?= =?utf-8?q?6ofJkRSHrHfeF9aj6oPTCJLY6DHIcLXtOQoLIWHWvaLu3cC0vyJem5cGY166zON92?= =?utf-8?q?PFGEIg4Zv6aSxV6XxibBnjnq4+N2gr3VFapuTtV6eY45sCgAhi9QSN+8PQ3RoHMGg?= =?utf-8?q?xXNgZqi6q0hAye9Yjdfu+tVvlRDacPzGCCyfG/Jk0VkXuVN/z5mcDAWsKxc1aonzT?= =?utf-8?q?sIgB1C9KOhAiAnMrouX+KB4wFB+QTvc8RSvBIpDvbEzakbDBGShPLwVhEyUO2ckXi?= =?utf-8?q?ZU+hrRGWOrlCvRpgBUzazAyeaMam+fdnmFn1nIrYtZ07+nAiLwNAkjhxAfEnojsot?= =?utf-8?q?KSHnOhSXt9y7O7b4qa0FeuIHh7KsmpVEroq3SEJl5E44/s1joJH1i5XbHm/wqd9km?= =?utf-8?q?PFvgNxj0NKHw?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f96328bb-a34c-4aaa-e407-08db02cff65b X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2023 14:40:41.9322 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IccP48FvARgrHx3GFD1/oS/ac/GLfryGvCW6dt5D0NpS0R1lP54dPK31/Fv71DtsihaikkpsltzfVOllcsESQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8286 X-Spam-Status: No, score=-3028.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP 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: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich 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?1756181617736472380?= X-GMAIL-MSGID: =?utf-8?q?1756458813190361469?= Insn width granularity being 16 bits, producing byte granular output isn't very useful. With there being a way to specific otherwise unknown insns to the assembler, use that same representation (to be precise: its , flavor) for disassembly. --- v2: Switch to using .insn. --- a/binutils/testsuite/binutils-all/riscv/unknown.d +++ b/binutils/testsuite/binutils-all/riscv/unknown.d @@ -1,11 +1,11 @@ #as: -march=rv32ic #objdump: -d # Test the disassembly of unknown instruction encodings, specifically, -# ensure that we generate a .?byte opcode. +# ensure that we generate a .insn directive. #... Disassembly of section \.text: [0-9a-f]+ <\.text>: - [0-9a-f]+: 0052018b \.4byte 0x52018b - [0-9a-f]+: 9c45 \.2byte 0x9c45 + [0-9a-f]+: 0052018b \.insn 4, 0x0052018b + [0-9a-f]+: 9c45 \.insn 2, 0x9c45 --- a/gas/testsuite/gas/riscv/insn.d +++ b/gas/testsuite/gas/riscv/insn.d @@ -92,25 +92,25 @@ Disassembly of section .text: [^:]+:[ ]+607f 0000 0000 0000[ ]+[._a-z].* [^:]+:[ ]+0000 0000 0000 0000 ? [^:]+:[ ]+0000 0000 0000 ? -[^:]+:[ ]+007f 0000 0000 0000[ ]+\.byte[ ]+0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 +[^:]+:[ ]+007f 0000 0000 0000[ ]+\.insn[ ]+10, +0x8000000000000000007f [^:]+:[ ]+8000 ? -[^:]+:[ ]+007f 0000 0000 0000[ ]+\.byte[ ]+0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 +[^:]+:[ ]+007f 0000 0000 0000[ ]+\.insn[ ]+10, +0x8000000000000000007f [^:]+:[ ]+8000 ? -[^:]+:[ ]+607f 89ab 4567 0123[ ]+\.byte[ ]+0x7f, 0x60, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +[^:]+:[ ]+607f 89ab 4567 0123[ ]+\.insn[ ]+22, 0xfedcba98765432100123456789ab607f [^:]+:[ ]+3210 7654 ba98 fedc ? [^:]+:[ ]+0000 0000 0000 ? -[^:]+:[ ]+607f 89ab 4567 0123[ ]+\.byte[ ]+0x7f, 0x60, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +[^:]+:[ ]+607f 89ab 4567 0123[ ]+\.insn[ ]+22, 0xfedcba98765432100123456789ab607f [^:]+:[ ]+3210 7654 ba98 fedc ? [^:]+:[ ]+0000 0000 0000 ? -[^:]+:[ ]+607f 33cc 55aa cdef[ ]+\.byte[ ]+0x7f, 0x60, 0xcc, 0x33, 0xaa, 0x55, 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0x00 +[^:]+:[ ]+607f 33cc 55aa cdef[ ]+\.insn[ ]+22, 0x00dcba98765432100123456789abcdef55aa33cc607f [^:]+:[ ]+89ab 4567 0123 3210 ? [^:]+:[ ]+7654 ba98 00dc ? -[^:]+:[ ]+607f 33cc 55aa cdef[ ]+\.byte[ ]+0x7f, 0x60, 0xcc, 0x33, 0xaa, 0x55, 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0x00 +[^:]+:[ ]+607f 33cc 55aa cdef[ ]+\.insn[ ]+22, 0x00dcba98765432100123456789abcdef55aa33cc607f [^:]+:[ ]+89ab 4567 0123 3210 ? [^:]+:[ ]+7654 ba98 00dc ? -[^:]+:[ ]+607f 33cc 55aa cdef[ ]+\.byte[ ]+0x7f, 0x60, 0xcc, 0x33, 0xaa, 0x55, 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe +[^:]+:[ ]+607f 33cc 55aa cdef[ ]+\.insn[ ]+22, 0xfedcba98765432100123456789abcdef55aa33cc607f [^:]+:[ ]+89ab 4567 0123 3210 ? [^:]+:[ ]+7654 ba98 fedc ? -[^:]+:[ ]+607f 33cc 55aa cdef[ ]+\.byte[ ]+0x7f, 0x60, 0xcc, 0x33, 0xaa, 0x55, 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe +[^:]+:[ ]+607f 33cc 55aa cdef[ ]+\.insn[ ]+22, 0xfedcba98765432100123456789abcdef55aa33cc607f [^:]+:[ ]+89ab 4567 0123 3210 ? [^:]+:[ ]+7654 ba98 fedc ? --- a/gas/testsuite/gas/riscv/insn-na.d +++ b/gas/testsuite/gas/riscv/insn-na.d @@ -73,11 +73,11 @@ Disassembly of section .text: [^:]+:[ ]+007f 0000 0000 0000 0000[ ]+[._a-z].* [^:]+:[ ]+0000107f 00000000 00000000[ ]+[._a-z].* [^:]+:[ ]+607f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000[ ]+[._a-z].* -[^:]+:[ ]+007f 0000 0000 0000 8000[ ]+\.byte[ ]+0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 -[^:]+:[ ]+007f 0000 0000 0000 8000[ ]+\.byte[ ]+0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 -[^:]+:[ ]+607f 89ab 4567 0123 3210 7654 ba98 fedc 0000 0000 0000[ ]+\.byte[ ]+0x7f, 0x60, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -[^:]+:[ ]+607f 89ab 4567 0123 3210 7654 ba98 fedc 0000 0000 0000[ ]+\.byte[ ]+0x7f, 0x60, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -[^:]+:[ ]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 00dc[ ]+\.byte[ ]+0x7f, 0x60, 0xcc, 0x33, 0xaa, 0x55, 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0x00 -[^:]+:[ ]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 00dc[ ]+\.byte[ ]+0x7f, 0x60, 0xcc, 0x33, 0xaa, 0x55, 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0x00 -[^:]+:[ ]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 fedc[ ]+\.byte[ ]+0x7f, 0x60, 0xcc, 0x33, 0xaa, 0x55, 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe -[^:]+:[ ]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 fedc[ ]+\.byte[ ]+0x7f, 0x60, 0xcc, 0x33, 0xaa, 0x55, 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe +[^:]+:[ ]+007f 0000 0000 0000 8000[ ]+\.insn[ ]+10, +0x8000000000000000007f +[^:]+:[ ]+007f 0000 0000 0000 8000[ ]+\.insn[ ]+10, +0x8000000000000000007f +[^:]+:[ ]+607f 89ab 4567 0123 3210 7654 ba98 fedc 0000 0000 0000[ ]+\.insn[ ]+22, 0xfedcba98765432100123456789ab607f +[^:]+:[ ]+607f 89ab 4567 0123 3210 7654 ba98 fedc 0000 0000 0000[ ]+\.insn[ ]+22, 0xfedcba98765432100123456789ab607f +[^:]+:[ ]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 00dc[ ]+\.insn[ ]+22, 0x00dcba98765432100123456789abcdef55aa33cc607f +[^:]+:[ ]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 00dc[ ]+\.insn[ ]+22, 0x00dcba98765432100123456789abcdef55aa33cc607f +[^:]+:[ ]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 fedc[ ]+\.insn[ ]+22, 0xfedcba98765432100123456789abcdef55aa33cc607f +[^:]+:[ ]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 fedc[ ]+\.insn[ ]+22, 0xfedcba98765432100123456789abcdef55aa33cc607f --- a/opcodes/riscv-dis.c +++ b/opcodes/riscv-dis.c @@ -650,7 +650,8 @@ riscv_disassemble_insn (bfd_vma memaddr, static bool init = false; static const struct riscv_opcode *riscv_hash[OP_MASK_OP + 1]; struct riscv_private_data *pd; - int insnlen; + int insnlen, i; + bool printed; #define OP_HASH_IDX(i) ((i) & (riscv_insn_length (i) == 2 ? 0x3 : OP_MASK_OP)) @@ -666,8 +667,6 @@ riscv_disassemble_insn (bfd_vma memaddr, if (info->private_data == NULL) { - int i; - pd = info->private_data = xcalloc (1, sizeof (struct riscv_private_data)); pd->gp = 0; pd->print_addr = 0; @@ -783,37 +782,28 @@ riscv_disassemble_insn (bfd_vma memaddr, } } - /* We did not find a match, so just print the instruction bits. */ + /* We did not find a match, so just print the instruction bits in + the shape of an assembler .insn directive. */ info->insn_type = dis_noninsn; - switch (insnlen) + (*info->fprintf_styled_func) + (info->stream, dis_style_assembler_directive, ".insn"); + (*info->fprintf_styled_func) (info->stream, dis_style_text, "\t"); + (*info->fprintf_styled_func) (info->stream, dis_style_immediate, + "%d", insnlen); + (*info->fprintf_styled_func) (info->stream, dis_style_text, ", "); + (*info->fprintf_styled_func) (info->stream, dis_style_immediate, "0x"); + for (i = insnlen, printed = false; i >= 2; ) { - case 2: - case 4: - case 8: - (*info->fprintf_styled_func) - (info->stream, dis_style_assembler_directive, ".%dbyte", insnlen); - (*info->fprintf_styled_func) (info->stream, dis_style_text, "\t"); + i -= 2; + word = bfd_get_bits (packet + i, 16, false); + if (!word && !printed) + continue; + (*info->fprintf_styled_func) (info->stream, dis_style_immediate, - "0x%llx", (unsigned long long) word); - break; - default: - { - int i; - (*info->fprintf_styled_func) - (info->stream, dis_style_assembler_directive, ".byte"); - (*info->fprintf_styled_func) (info->stream, dis_style_text, "\t"); - for (i = 0; i < insnlen; ++i) - { - if (i > 0) - (*info->fprintf_styled_func) (info->stream, dis_style_text, - ", "); - (*info->fprintf_styled_func) (info->stream, dis_style_immediate, - "0x%02x", - (unsigned int) (*packet++)); - } - } - break; + "%04x", (unsigned int) word); + printed = true; } + return insnlen; }