From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9ZbQxr21hV5JdvMPtkXiIt3pm1ojDieByCV6T7W3OvA=; b=DdyNT4nh3eZs/hkZsgX7Y+x2PZ82FH6krubmPNPW4ZAjYGVsXj1hSSbrNakzX/EQhvbWBzdPWU7eGhqwnSd0u+gjclKh71orSWgUNfI16mhBEWAAkaa/RPZTlDvSwgusfCBdT2pUtkOKd08TcgjKYdql2OKBVE9UTLvnOtR203KVL4TYvsLdzx9bBpCV8ZSWTDHwyAhgD5hBbydsqmfPjuoYVdROPoz/6ivrtypzlN7BCVuX5O6OPQGQaEFCjEjli9AHt9xHGS3x4lpnGjpo43mOOCVUo0NjxXxgtrf9xVFB0NWvhcqGW6zrGvoz3eWmypXcvzK+xKjhDBhgb+dxRg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; 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 From: Jan Beulich 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 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit 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?B?KzRvUCtXZExDS1VNM0Q1eGJuUFBRM1NaMUs1UFhiV1dvbWg1TWRIY1BOeU1J?= =?utf-8?B?SzZORXg2Mlc2WkI4T1IyeXZjVXRTTmJFNEs1c2o3eHozeW9hSHY5L3pKQmFE?= =?utf-8?B?UjJEdDIvUWNIUkNWN0lSWFJzNnRiM2kwSWNpa2pQRUZFUThmUk40Q2xQVU8y?= =?utf-8?B?VXJ2R0NJcklaaWk4S3NRRURFVUdQZHNqd1BKWlFqSHkrK2R3M2tvbW5rMHJk?= =?utf-8?B?ZEp5TVdKelJZQ3hWbHB6WnVVVFg5M3ozeWZ0c2RwSnBKRCtqeExLbmJaVk52?= =?utf-8?B?RGEyVmhHTU5DVTBHa2o0V2dWamx3bkxRekxGV1Nwa3BEalZLSkJtaU0yOXFu?= =?utf-8?B?enJxRG5ISXpJa1Q1Y05aRTh2bWF1ZEtZRDdSeUdCREoxaExpSFFNL3o1VVh2?= =?utf-8?B?Q1ZZeHNHMUI3SkZMRDJWdnZ5Vnc3UG9Yb29aemlpdm9jV2pVVjlQak41eXk3?= =?utf-8?B?dHYvbzlmVVQvdkFkNjQvcWphWi9kNTJvd211ODRRQ1dwb0tiQWhjUkpUSTMw?= =?utf-8?B?RU5GSmNKc0I0K0cxeU5WN1VzYmRsbmdoMzFncGRhOFo2UU1zOFFtNDBVaDY2?= =?utf-8?B?eUhCb3V6cFZ1UTVZMFFHUFNDRVA2U0FJeUtGTW9wL21SQ1ZJbTl4dnRCTXll?= =?utf-8?B?VllqMGgrT3B3eVpoNVdoRVIxdmpVaGFqZHNoOUVoajVjZ3NhKzFIZXE5NlBH?= =?utf-8?B?NUowS05qSmZUd0RvTGNDbjBIUGtUbE5qRFpkeXVSQkxWUzBZMjFjTXlWYlBV?= =?utf-8?B?U0NBNEhFTWZJZThTV0lWN2xzVkx6ZVpmLzBlczlqeisxdWpQUHNWRGNoNGt4?= =?utf-8?B?MEtlZ2lVNXNEaFBleCsydy9wY2pmaGhTR3ZITEU1OWM5djUvZUVzaEloYmE2?= =?utf-8?B?NEVUWXp4RlAvUXBqZkh2Njg1eWw2dHBvUCtxZDdPaXowQlF6RE9vOFVadk5D?= =?utf-8?B?UkIvbzZKV0Y0d3hhdlc1UVMyNnc1ME94MndmdUhSUUpRZlEvTitXOUd2QktC?= =?utf-8?B?WXJmQlFLS0YwWkVNbktFTldQSXZhY2VKVkx5bEREVXQzTGZVWjkyZ1RnV0tO?= =?utf-8?B?ZTRTTW5UcFpGYXk0azJhTWhMTVZIay9rVjV0bTN6Y0tXcURpNXcvSUU3ZGU4?= =?utf-8?B?N0dFYVNySzNRT1ovZzM2bmFzSmc1QlVSRFE1SUROTVBsbTJ2YVdGZC82RmZ0?= =?utf-8?B?aVFTY2JGT1g3VnpNWWZzUWkvWTVXemtrd2ZFN2puQm1nQ1NEWTJCSjZ6Zm5J?= =?utf-8?B?UnFucTZ3K0NWa2MwalcwamRNTldKRk9zMS9MOTdiL211R0Q2Z0hqY1crczk5?= =?utf-8?B?R01mSmhlNlpVWm8yV0JJd1NHaTdWQm9kcnVydU5BTFBWWWRrQ1E5NStCcE1q?= =?utf-8?B?WllldTVTendsOFFHMmIvdW1UMnU1bi9id0FQREZoc01Gakg0MWVtZlZrVXds?= =?utf-8?B?Rkk4T2ZLb3ZobFVCdzlCMHFjRTM5TnhKZitwSU5FOWYzaTVyN2FXMy80eUVX?= =?utf-8?B?d3NEejlSM3JXbWtNTEtSbjlJeFdWNkJNRjBiQ0VOcytvMlpmNEluaVh5R3hn?= =?utf-8?B?MFJta0ppR2MvTGV2OTV2T2lGVG1WVUgwdk44WTZvZkprUlNIckhmZUY5YWo2?= =?utf-8?B?b1BUQ0pMWTZESEljTFh0T1FvTElXSFd2YUx1M2NDMHZ5SmVtNWNHWTE2NnpP?= =?utf-8?B?TjkyUEZHRUlnNFp2NmFTeFY2WHhpYkJuam5xNCtOMmdyM1ZGYXB1VHRWNmVZ?= =?utf-8?B?NDVzQ2dBaGk5UVNOKzhQUTNSb0hNR2d4WE5nWnFpNnEwaEF5ZTlZamRmdSt0?= =?utf-8?B?VnZsUkRhY1B6R0NDeWZHL0prMFZrWHVWTi96NW1jREFXc0t4YzFhb256VHNJ?= =?utf-8?B?Z0IxQzlLT2hBaUFuTXJvdVgrS0I0d0ZCK1FUdmM4UlN2QklwRHZiRXpha2JE?= =?utf-8?B?QkdTaFBMd1ZoRXlVTzJja1hpWlUraHJSR1dPcmxDdlJwZ0JVemF6QXllYU1h?= =?utf-8?B?bStmZG5tRm4xbklyWXRaMDcrbkFpTHdOQWtqaHhBZkVub2pzb3RLU0huT2hT?= =?utf-8?B?WHQ5eTdPN2I0cWEwRmV1SUhoN0tzbXBWRXJvcTNTRUpsNUU0NC9zMWpvSkgx?= =?utf-8?Q?i5XbHm/wqd9kmPFvgNxj0NKHw?= 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 List-Id: 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; }