From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by sourceware.org (Postfix) with ESMTPS id 5E9C13858D1E for ; Mon, 11 Apr 2022 16:16:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5E9C13858D1E Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2175.outbound.protection.outlook.com [104.47.17.175]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-30-OKkF5Hh7MVWFS0zVKK8GTg-1; Mon, 11 Apr 2022 18:16:22 +0200 X-MC-Unique: OKkF5Hh7MVWFS0zVKK8GTg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=filDI9It2l5nyMnHaSuDnH7OQvlO42oSx9R6W2t5h2n4i7MNK6PHU5AOSUAf8xGC4u3Dg4xEonuI52qo/+PY73QzH9zD38J8hv1KmuYkVqUlWFivDRlPYTLoY7vbLAs/OttcNQQeMGAWOAdN/AtGSaM6/JFqKTzlzet+vPfbHrZtZSjdZz0LJrwY2U/hcbyME/qMZumLlIHa0ZcuP+mAHRfo5oFh6VSsihoq8vN21WgmNgG7emwJXmv5tuVmWKO3rGxxPDXUfHs9VkooktdMli29s4iGnEUE8K7X9u2Bibngo4DkFQLNaO0PYM3ZP85JfJoAOnjGKumOsOIcPHoJbQ== 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=cLMyk2OPbcd8Xh6QLTxx5gedsZ9wvttxSXa/hXB8jnY=; b=VSevAih0NoUfd7+Crr8X2c/ADQowPUe7zQ8ktDIAmLW/GJoKg03kC2p3miM0hHbUxKKAqNbqF1Syr9DnffbxWtmuMxPdMM+sTHONtke9YS0u2BHPHc4ZUElXdNCac/RmrhEAOZKomBp9sFhmlbxD4WYy9d0xwgRbv0NIrITBXTmqFnSdDUIyMbo9hd/vTbZsha1oiWWxvJCuRS+w1pcDsDfKQgfRNGAz6M3xQXPA6a+5PciuMHi+K22hkoLlwizOhMe+C2HYRWpkcz0bFqDwRMQ2m9PuuJChcdX7NTbnxPcmS/2WV1XMdZoEHlmKDnNCkpVKa5joh6TNrDqvNQiOKg== 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 DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by VI1PR0402MB3853.eurprd04.prod.outlook.com (2603:10a6:803:16::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Mon, 11 Apr 2022 16:16:21 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1%6]) with mapi id 15.20.5144.029; Mon, 11 Apr 2022 16:16:20 +0000 Message-ID: Date: Mon, 11 Apr 2022 18:16:19 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Content-Language: en-US To: Binutils From: Jan Beulich Subject: [PATCH] x86: correct and simplify NOP disassembly Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AS9PR04CA0113.eurprd04.prod.outlook.com (2603:10a6:20b:531::18) To DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1716a3ac-e297-43b3-3a80-08da1bd69da5 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3853:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cX2rYCqUk7/RZHgVFJQHDe66BNfpXWTrBWZpoBRHYVQX9DRLwr8LuWXpzJO2QDkzGU0WE+4kevMbYdc1j4beMOfbWfcWW/Aqd6qzLN9IpIez7ReqzmhWR37pfzRy8J6MiXgRek6P2I6I7rZLYg2Ab1az1jq6kT6khcXPk4JqND4dtFbzS0G3C41YOqyiAPvgcui1UVhgvypSNcJW/kuT0Z8pEfLlKpE6q1r5BqgqspOQdowwzfPemazGWySrAiT5GkopJ+cTFeY3Fopptu922zFemy/UnOQD4+nKQ1CwpGgMwJbVLDhBa78D/NqfcMeiY7Pv3tn8G5r9WEW32HdkZZNee+IETXmUB3Jg4EcHwB0vxMu8uhC9nYwl+6ILns7hRXC6ZxB6hq6a6VnZUYCH6IFyFP19j7YyxfA46PeKA5gAiStaDJ+81sYJBzCUFB4G6uODUu3FylH55Nu9Q1xCaHkQzif7mEeT/ss/3MwpSDef/6xKMqgbTxxWYQsEa/B5NyNx1gLDvdQdPORBVV2z/DVTPvkM+3YH4T0ISrAK9DZwSKeFdAU0xY1ffeQHXc4coMs/0QCjKhUnXtVSGVEM6sNyhbcJ26ft9Ogd83UsFmHtzurNoqayqbN8qqbWoo7tpaHAJicTzLzVELVW7uDvXu5Lyn5daMUOtKCSsXkISI04I3ePkoMy3nIbrTk8oLVjSeYiGqDBQDh/vETsxobjNVtFim/ZLzBg345q0HTsoa0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8616.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(38100700002)(2616005)(4326008)(6486002)(8676002)(86362001)(66946007)(508600001)(8936002)(66476007)(66556008)(6916009)(316002)(2906002)(6506007)(6512007)(186003)(26005)(31696002)(5660300002)(36756003)(31686004)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dUtJTWRRcG13SkZRVWJIL2lzQzVUdFZYU1FNSTFqS000OFZZVVpaZ0VIbmx5?= =?utf-8?B?YXVCS0hvQnB3VG5rYWlqbTlsZE04QnBVeksvSU1QemlneTIxRjlwT0dERFlJ?= =?utf-8?B?c29CVGtWZ3Rhd2ptTGtpNzBucFZDZnVpdkVGR0VuNkJFT21RODhoWTJyM2J1?= =?utf-8?B?S0JLV2pFTHYvand2ZEY2RS9OdUgxb3BkVDRiUVhQVEFhNFdTdVJUeTlSR0xR?= =?utf-8?B?bFp6aWRSOWk5c1lXa1p2SUprWjYxRDJ2b2ZDWDFxREMzdkJmSGYrV1c4Q0NY?= =?utf-8?B?MlB5MWFHTTluN3Y1VldYR2RIbFZQb0FjLzEzUmtWUlQ0TDRUS1pvMXVQNVE0?= =?utf-8?B?YWY3V1B5T25pZmVZUVdQbTJGNUpXVjhoREdydVA5bXkvMEJTRXoyU0xVUk5B?= =?utf-8?B?d2trMVJkTU1VSkx1TFgyeHI2cWx6Vko5dTFWZjNzTFFvL093U1pYWTUzSHox?= =?utf-8?B?VWlPOXEya0hvTTUrVnZsVFpBMSttcXAzMWZzR1dvYjNXNmJHV1JSZSsySnZO?= =?utf-8?B?TzNrK0pmQ2pDdUR2eGV1aklvMm55ODl5T2Y3cWhGZmd1Ulk5UUp1ZExNV1o4?= =?utf-8?B?dWpGWW5BeDdkdmxRRENGRUJWTDVjNi9jd1pzYng3RHdPREJJbGRyd3NmbEZy?= =?utf-8?B?QVRuSWo4aXZMZDZrUmRnUkh3eDlVUGxIblBVOHk4dkt3elpYS1NlVWw5Mzda?= =?utf-8?B?dENMemsrVTRaa1hTY0pDTG9pTVBpY1RDeHdwb3RHL1U5L3luaXVZVEVTbFda?= =?utf-8?B?amc2QjlNQnZRUktOUkZHdnVUQ0l2N0Y5RlN2MnhjUEVMbStlT2l3QkhMY0lG?= =?utf-8?B?OWFrbXRFTnNEWTdEaFJRUVM1RlJFRERpVGpTekpTV1plNStWcDRoU3RCNFVS?= =?utf-8?B?ZUVJY2xKUHNyYjE5SmlQeEY4UEJUV1plb1dZSEI1RXZnRFFsTWtoMUFhZmpo?= =?utf-8?B?eStnbzhKNkQvdURvTzB1UEZhaWpuMVU5aHdmTDQyZmJCUWZwbS91YTdtbzhT?= =?utf-8?B?V0NNTmJ0V2ZYdlFkcnI0eVhONHNBMFdwMXRBUGM3ZXhJNlRPR2xiSXp0V0NF?= =?utf-8?B?ZkVwdnU2OE1abGJ3VFloMjdOZ1BnaXplbEtvTmwzY21JZmJaSlE0V2pMUm5M?= =?utf-8?B?WDhXUENVYjVBTDkwNWgxVDVsWDlVVDIrZU0zdDUydjNzUDRBdDBBMklmbGtp?= =?utf-8?B?L013Q3lNU3dQMGFUbFQrK0UwU2VwZDRzdUt5ZlFRdDQyRi9uYmRKQmlIb0pk?= =?utf-8?B?YmF1eS90MWpIdU9Ib3BjR2piN0lXcjJiOEExQVQ4Z3BtVWovOFo0TWFRcnk3?= =?utf-8?B?QTM0WHFRcXVRVTJxOXpWRXFMOGRNaHpxVTUwT05HaU5KcHRTRGdBMStmQzlX?= =?utf-8?B?cGljbjRDc3NSQ3ZDQTdHV2Y4TGIxNzNGbU9xeFd1QTRMaTRXTFFPOXRpUTJa?= =?utf-8?B?YjFoRHZhYzJwMjlwa1lOcFdjYUZKTW8rOXZlRUpQbzk3c3g1RzFmY1dIWHRX?= =?utf-8?B?UjYvMlJFT3YyZnVUZ05Mc0F0VGFseFJjbTNGRzg0U2l0SGxTUWVRbUFnSWhJ?= =?utf-8?B?ajlpMTFpR285d3REcEZ0UER1RVdpNXVodzJBSlVNcG11bEpFcXNpZElpUlc0?= =?utf-8?B?a3o5Vjh6eTdKQ25WWlF1bUkrQ2NnWEdraHdnWVk0N1JtdURTdFM2d0Z6U211?= =?utf-8?B?aFczOGk1ZEF4NG4vV04yRTNOR1E2dXl1TGFTREhPUWllOUFDaE9jWFVtN0FC?= =?utf-8?B?RUxVTWFwbDJzYTBkWXNUMWp2WjJuRDhxY1A5RU5iQVdtcFhrV0pHbTVPb2lS?= =?utf-8?B?RElHSm5WMUJNRlFOK2JUNWUweUhFcUpxb2dSejVGMFBacUhBSFRFcTljNmRn?= =?utf-8?B?bG5ZbWRFQ3BkRzcwdFpRaVRGOEtvTVFCQlVGZkJJM2VvUVZtUkNWRlAxRkhr?= =?utf-8?B?UUJJMUQ0SVd6S0pKVDNuVHBhbStGRnJwOURRZWVwZTZyMnVXd0lsVVgxdGJE?= =?utf-8?B?OW5WMllhTUxaL29NNXhBZTBqRW5pdDJTM085clRwN01rUENCV21DNGtNclgv?= =?utf-8?B?YWEycHJXSjJEdnc0ZmltaTZ2TkVIOWRzNmc3Nk1aSVhlSWE5L3lScFFYeGN3?= =?utf-8?B?SlVGdlcydGt0aVpaV1lSSHNFeVY1UW5nUkdFV3dWaEFvUGlWSGV4ajFUWHVQ?= =?utf-8?B?QnhmSjQ3b3duVU9tR0ZBUUw0dXVtUzlxRkd6bGRISWJDT0lFZkJveXl2Y09v?= =?utf-8?B?bm9vUkVJNFhkRmJ1dTBRSC9PanVyZzhUcmtmQklxY0ZBN2YvVWh5UUVDcVpa?= =?utf-8?B?bXQvRnU3aVE4SkZDUnJhNzJMQXhJdXRkajBrYVVPNmRlc3RXVG5qUT09?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1716a3ac-e297-43b3-3a80-08da1bd69da5 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2022 16:16:20.9398 (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: dvuplFyzmSkXsM9bHUq2ukRr8ga0au8OwxmdZLdWWDqUZgzHAwqq7+J+a8Io5Q0wR/54ac1fF66iBMK5Ccjzmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3853 X-Spam-Status: No, score=-3031.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-List-Received-Date: Mon, 11 Apr 2022 16:16:26 -0000 It's not just REX.W which is ignored with opcode 0x90. The same goes for REX.R and REX.X as well as empty REX. None of these are forms of "xchg %eax,%eax" (which would mean zero-extending %eax to %rax), so they also shouldn't be disassembled this way. While there simplify things: A single hook function suffices, thus making it unnecessary to keep two expressions in sync. And checking ins->address_mode for mode_64bit also is unnecessary, as "rex" can be non-zero only in that case anyway. --- a/gas/testsuite/gas/i386/ilp32/rex.d +++ b/gas/testsuite/gas/i386/ilp32/rex.d @@ -2,46 +2,4 @@ #objdump: -dw #name: x86-64 (ILP32) manual rex prefix use #notarget: x86_64-*-elf* - -.*: +file format .* - -Disassembly of section .text: - -0+ <_start>: -[ ]*[0-9a-f]+:[ ]+40 0f ae 00[ ]+rex fxsave[ ]+\(%rax\) -[ ]*[0-9a-f]+:[ ]+48 0f ae 00[ ]+fxsave64[ ]+\(%rax\) -[ ]*[0-9a-f]+:[ ]+41 0f ae 00[ ]+fxsave[ ]+\(%r8\) -[ ]*[0-9a-f]+:[ ]+49 0f ae 00[ ]+fxsave64[ ]+\(%r8\) -[ ]*[0-9a-f]+:[ ]+42 0f ae 04 05 00 00 00 00[ ]+fxsave[ ]+(0x0)?\(,%r8(,1)?\) -[ ]*[0-9a-f]+:[ ]+4a 0f ae 04 05 00 00 00 00[ ]+fxsave64[ ]+(0x0)?\(,%r8(,1)?\) -[ ]*[0-9a-f]+:[ ]+43 0f ae 04 00[ ]+fxsave[ ]+\(%r8,%r8(,1)?\) -[ ]*[0-9a-f]+:[ ]+4b 0f ae 04 00[ ]+fxsave64[ ]+\(%r8,%r8(,1)?\) -[ ]*[0-9a-f]+:[ ]+48 03 04 00[ ]+add[ ]+\(%rax,%rax(,1)?\),%rax -[ ]*[0-9a-f]+:[ ]+44 03 04 00[ ]+add[ ]+\(%rax,%rax(,1)?\),%r8d -[ ]*[0-9a-f]+:[ ]+41 03 04 00[ ]+add[ ]+\(%r8,%rax(,1)?\),%eax -[ ]*[0-9a-f]+:[ ]+42 03 04 00[ ]+add[ ]+\(%rax,%r8(,1)?\),%eax -[ ]*[0-9a-f]+:[ ]+49 03 04 00[ ]+add[ ]+\(%r8,%rax(,1)?\),%rax -[ ]*[0-9a-f]+:[ ]+46 03 04 00[ ]+add[ ]+\(%rax,%r8(,1)?\),%r8d -[ ]*[0-9a-f]+:[ ]+45 03 04 00[ ]+add[ ]+\(%r8,%rax(,1)?\),%r8d -[ ]*[0-9a-f]+:[ ]+4a 03 04 00[ ]+add[ ]+\(%rax,%r8(,1)?\),%rax -[ ]*[0-9a-f]+:[ ]+41\s+rex\.B -[ ]*[0-9a-f]+:[ ]+9b dd 30\s+fsave\s+\(%rax\) -[ ]*[0-9a-f]+:[ ]+9b 41 dd 30\s+fsave\s+\(%r8\) -[ ]*[0-9a-f]+:[ ]+40 c5 f9 28 00[ ]+rex vmovapd \(%rax\),%xmm0 -[ ]*[0-9a-f]+:[ ]+40[ ]+rex -[ ]*[0-9a-f]+:[ ]+41[ ]+rex.B -[ ]*[0-9a-f]+:[ ]+42[ ]+rex.X -[ ]*[0-9a-f]+:[ ]+43[ ]+rex.XB -[ ]*[0-9a-f]+:[ ]+44[ ]+rex.R -[ ]*[0-9a-f]+:[ ]+45[ ]+rex.RB -[ ]*[0-9a-f]+:[ ]+46[ ]+rex.RX -[ ]*[0-9a-f]+:[ ]+47[ ]+rex.RXB -[ ]*[0-9a-f]+:[ ]+48[ ]+rex.W -[ ]*[0-9a-f]+:[ ]+49[ ]+rex.WB -[ ]*[0-9a-f]+:[ ]+4a[ ]+rex.WX -[ ]*[0-9a-f]+:[ ]+4b[ ]+rex.WXB -[ ]*[0-9a-f]+:[ ]+4c[ ]+rex.WR -[ ]*[0-9a-f]+:[ ]+4d[ ]+rex.WRB -[ ]*[0-9a-f]+:[ ]+4e[ ]+rex.WRX -[ ]*[0-9a-f]+:[ ]+4f[ ]+rex.WRXB -#pass +#dump: ../rex.d --- a/gas/testsuite/gas/i386/rex.d +++ b/gas/testsuite/gas/i386/rex.d @@ -23,6 +23,11 @@ Disassembly of section .text: [ ]*[0-9a-f]+:[ ]+46 03 04 00[ ]+add[ ]+\(%rax,%r8(,1)?\),%r8d [ ]*[0-9a-f]+:[ ]+45 03 04 00[ ]+add[ ]+\(%r8,%rax(,1)?\),%r8d [ ]*[0-9a-f]+:[ ]+4a 03 04 00[ ]+add[ ]+\(%rax,%r8(,1)?\),%rax +[ ]*[0-9a-f]+:[ ]+40 90[ ]+rex nop +[ ]*[0-9a-f]+:[ ]+48 90[ ]+rex\.W nop +[ ]*[0-9a-f]+:[ ]+44 90[ ]+rex\.R nop +[ ]*[0-9a-f]+:[ ]+42 90[ ]+rex\.X nop +[ ]*[0-9a-f]+:[ ]+41 90[ ]+xchg[ ]+%eax,%r8d [ ]*[0-9a-f]+:[ ]+41\s+rex\.B [ ]*[0-9a-f]+:[ ]+9b dd 30\s+fsave\s+\(%rax\) [ ]*[0-9a-f]+:[ ]+9b 41 dd 30\s+fsave\s+\(%r8\) --- a/gas/testsuite/gas/i386/rex.s +++ b/gas/testsuite/gas/i386/rex.s @@ -20,6 +20,12 @@ _start: rex.b add (%rax,%rax), %r8d rex.x add (%rax,%rax), %rax + rex nop + rex.w nop + rex.r nop + rex.x nop + rex.b nop + .byte 0x41,0x9b,0xdd,0x30 fsave (%r8) --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -98,8 +98,7 @@ static void VPCOM_Fixup (instr_info *, i static void OP_0f07 (instr_info *, int, int); static void OP_Monitor (instr_info *, int, int); static void OP_Mwait (instr_info *, int, int); -static void NOP_Fixup1 (instr_info *, int, int); -static void NOP_Fixup2 (instr_info *, int, int); +static void NOP_Fixup (instr_info *, int, int); static void OP_3DNowSuffix (instr_info *, int, int); static void CMP_Fixup (instr_info *, int, int); static void BadOp (instr_info *); @@ -2913,9 +2912,9 @@ static const struct dis386 reg_table[][8 static const struct dis386 prefix_table[][4] = { /* PREFIX_90 */ { - { "xchgS", { { NOP_Fixup1, eAX_reg }, { NOP_Fixup2, eAX_reg } }, 0 }, + { "xchgS", { { NOP_Fixup, 0 }, { NOP_Fixup, 1 } }, 0 }, { "pause", { XX }, 0 }, - { "xchgS", { { NOP_Fixup1, eAX_reg }, { NOP_Fixup2, eAX_reg } }, 0 }, + { "xchgS", { { NOP_Fixup, 0 }, { NOP_Fixup, 1 } }, 0 }, { NULL, { { NULL, 0 } }, PREFIX_IGNORED } }, @@ -12724,25 +12723,14 @@ OP_0f07 (instr_info *ins, int bytemode, 32bit mode and "xchg %rax,%rax" in 64bit mode. */ static void -NOP_Fixup1 (instr_info *ins, int bytemode, int sizeflag) +NOP_Fixup (instr_info *ins, int opnd, int sizeflag) { - if ((ins->prefixes & PREFIX_DATA) != 0 - || (ins->rex != 0 - && ins->rex != 0x48 - && ins->address_mode == mode_64bit)) - OP_REG (ins, bytemode, sizeflag); - else + if ((ins->prefixes & PREFIX_DATA) == 0 && (ins->rex & REX_B) == 0) strcpy (ins->obuf, "nop"); -} - -static void -NOP_Fixup2 (instr_info *ins, int bytemode, int sizeflag) -{ - if ((ins->prefixes & PREFIX_DATA) != 0 - || (ins->rex != 0 - && ins->rex != 0x48 - && ins->address_mode == mode_64bit)) - OP_IMREG (ins, bytemode, sizeflag); + else if (opnd == 0) + OP_REG (ins, eAX_reg, sizeflag); + else + OP_IMREG (ins, eAX_reg, sizeflag); } static const char *const Suffix3DNow[] = {