From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2044.outbound.protection.outlook.com [40.107.104.44]) by sourceware.org (Postfix) with ESMTPS id A232E3858415 for ; Fri, 19 May 2023 14:06:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A232E3858415 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=cpT0ZsUl27qfBWjRy6wcG74se1RyNRggBKi2JTTFeTvPzulBGiCujSKacS0pvF38TO0VHflKxhBoMay66Bf0DX50rdIuxYzpKZF5rwQi0MlTU9hoSoxRdAQDEojPVcOk+ZbpJ1++VdLUmbpt2vhXwlVA+fkgmeonplwg4JyfWf/E18SQhQFQ0BJQEXJopcNLapsGsFuLrrqDYWakOQGhxrcYG1wZP/vTuEOv0QkvS4lV+x9c31jXsR5ugmWvLOmaViZfNnlm2uEgE+wL96bDzlt34qK77kBzXHjaT0h1NN31+kC0Td8Dfi8RfnP24W789yB/Q1R6Qa9tmUx7vkCaow== 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=JvZym1MDXjENnLInpTpk7OXEwO0gswYndJstfwY5Sak=; b=HXI5lKDrChlLepKW2E9ouCPIqxB8JLWiZoEwbzXyQiHyT32MptJw9/rrIZ0szMvcfb1vEeD9oV3/kG/XsBhOc0qvEaWyQ/NBg60N1fYXubl6PeOHQGD0SZyBkNekHYotR/pbCPC/5GwRNj8SEjLXbE6oqIlWCukRFDd+7HJN+rE0I5VnBy8Jb57ycaO3H3gJ5VM3He0aCc+VluyFJDHhEe+B4hKnM2UVmopODtrfGN/YqUAocSX/+axc1xxaISskIDny+NGwClVbhDADsm4v4ZTOaPrtNtVjCbgqZfzqLBZTadiaqUgerbriAekvGJzYMdKtvNI6ivcESoYObfhWqg== 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=JvZym1MDXjENnLInpTpk7OXEwO0gswYndJstfwY5Sak=; b=0h7q5aRIbPN9hpTto3sITYr1Avnkzf+xV6xpG2noOJrJmriaVz3DSOamTt/PUB+f1ij0Qxf9Q/xEdWoSTkFrN+M8bp2RXcsj1Jb0y+OGorDqi/fpk/5WXLM3K+uuDXeVHvNX9hT3HL3RlRehYBU5adXfYFJ/vfOymfAvJ/fnvNb1PmLZD6jmP9BCu4XWsBsw85YDgUFeC28H8VCh00MlhesW/7uJRhJ5taZpm2xsXqXidjLm8v/34rK+CVOqGwcWPL/8NGTSEvPFIWY2Vu54NGI98KD2SG+cSn9DjjJkfrpWmfBCbO+3m7ZaD27WgCUQopzJpKjlCkHXLfRHQGEFFg== 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 AM7PR04MB6823.eurprd04.prod.outlook.com (2603:10a6:20b:102::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.21; Fri, 19 May 2023 14:06:33 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%5]) with mapi id 15.20.6411.021; Fri, 19 May 2023 14:06:33 +0000 Message-ID: <2274d914-c77f-37e7-5589-870a647e24a0@suse.com> Date: Fri, 19 May 2023 16:06:31 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH 1/3] x86: use fixed-width type for codep and friends Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0097.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::15) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM7PR04MB6823:EE_ X-MS-Office365-Filtering-Correlation-Id: 032342ca-1725-4117-8758-08db58724074 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: O1BnfM5JvkuTK9lwbFP0y93hwVRqwwo8OpKI/WXZ17+vLZ3Q8iIwgNEse+toC1X+pOsHbWs5ze7/tbH8OcCE7Ldbz0DU9rHlkU1KIWWEeaU/ZWJMVWw8L3HCmAt4P8h0mCNaS9QK5CtLOSnWPTYsrG+h1Zqki4AK4cd/qUwhobA9no2u1yFnMyxy9SEZhHVPgVJxQ0itkmoRx/p5kG/pt+cG8rmQCpt9zIzcayfsjxM16geO8olst/BSYjiKfILYbbR7+iyqKD126sGPCwE2OpFXKapuRaHOM3KV4n9qy2hvhVds6AeAs803rPfi+yb/idXntjl90Yd/8PreDZAVOe8wiyMz61dudmuU4rfDqXfi/pAwootVazVJLxXv/luNuYB7ZDhmTdj8LPo60tg6SYfCNv/lCFZuG9DRUJXpFi6cME3FkWly2oCClyEnAEBaJdU+zrC4Wq6CZt++iWkm1ch3wzW7SjEXg4o+4yAgaNvYrOmY7kwkHwoXTuYXjjhJoLe7t2r6W8ozvutiVk1ZpA0rG60XbFuCnbi9tfhuLVcTFItmD3W/6B+BNO7GtIM47WLEnL4kM86PQmv8jY3cv7JJfpEcyQlKe4nopmwICg4rDwq8YD63pHC24ZZwjOndri6iKR4EPMuj+I9/zJEEOw== 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:(13230028)(39850400004)(136003)(346002)(376002)(366004)(396003)(451199021)(478600001)(6486002)(83380400001)(2616005)(6512007)(6506007)(26005)(186003)(2906002)(30864003)(5660300002)(8676002)(8936002)(36756003)(6916009)(4326008)(38100700002)(66476007)(66556008)(316002)(31696002)(66946007)(86362001)(41300700001)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bkF5VFBPV01tZXlVZnhOenFndm16UUpHL1FxRlcxcDkzWktQTTZra0pQQmlZ?= =?utf-8?B?cGR4ZTZDeUpkUDNSYTMzSlZkSVRaKzFXVnUxMHdZeDN2ZG9rRDFvWVo3M0tU?= =?utf-8?B?Q2NFZ2xIKzFtdDc5VTdHZUpXSFl0WUtKMGx2VHVmMm1uK2k0L253TmFmaFMz?= =?utf-8?B?TFBZd0RqSVVkK1ZnYUxvL08zRXI3UkFkVUdMRUlabWpzZVIveHFkMVRVbGF6?= =?utf-8?B?YUJDYm5VdFFwdkxKMGRBTnNFZksxanJKWFVzNUVhRVNkLzFOUUx6ZCtURUxu?= =?utf-8?B?cm9LcnFBUStTL1F0Q1FkRmRxdlNSNm5oem5OYi85M1lxWklzVDBXaVVkdE9V?= =?utf-8?B?QUNzenZrd3ZmMzNtaVdvd0ROcy9Uc09HL2Z5cmF6LzNxSEl5S1B1WkNDbC9X?= =?utf-8?B?NEc0QjNiMUNFU210LzBLanVYTWliVXJYL2lNV1FSYVVTU2s0Y3o2TnYvZjBx?= =?utf-8?B?bWNWUlBLd0J1OTZBRHVhYTAvUkk4dytWMlAvM3R5U25aWTFsUmprMEhkbTdK?= =?utf-8?B?bnhLNzgvRzJZYjBuYjlZWTdXNVpYblhsTm10QmdKelQ4ZGd1cGxwOXJPdEgv?= =?utf-8?B?VnpUdlZFTDhUQ0I1bHdoZHpKMVNJVGgyQmtQUmR3cUZTRVR2U2pPZExENjg2?= =?utf-8?B?WHYrMzNLNlcrUzZZVm9CbFhsM0U0WEdwWG1mZDFhSVNOOWJUK2QwdWxFWEJy?= =?utf-8?B?b0tjaTZNN0tPVTY5UWtGaE82aHpMYzUxN3lHUzBpRlZBY2xjVnRJR0xKOE96?= =?utf-8?B?TTV3UTlUSHJzSms0NXlncElNc1VDeXZ4ZFhMRThkVG43YlVlVC9jWGZxZVpV?= =?utf-8?B?cm9FQnhpNTJYQkcwSzd1YkFjTTNGaGRZYzlOVnhMckc0ZU5mSDNCcmlrTXRR?= =?utf-8?B?a0lmSjQ1cE1oYXJqUm1qZWNEMStjTmlnTS9DWGpMVGZpSnliSEpKOUp5UXJP?= =?utf-8?B?RFJHMFYzK1BGRUhqYnVwaE5EdzJyb01qVFU4SmVQamVyNk5SUXFKZmY4ZVNv?= =?utf-8?B?WVFLUjJWY0JDK2JQWmF3b0dHWVBPVXVrbSt6cWVCT2loc1VJTzNjeTBVejda?= =?utf-8?B?TzhJV1lFeTZvMnpZZ1h3SmxvRUkrdktzVjRTaFc1SUhNRllvNzAxbEs5TUwv?= =?utf-8?B?OEQ3d0N6TzAvTS9uL004KzJHdTVnVExROXA0YXA1MCszR2pxWUhmODdmRzZ1?= =?utf-8?B?QVVTcFRUVE50QkhvYlltbU1iVVFhZytwWXljRFVzNlVDSjM0amMzaXVGR1hQ?= =?utf-8?B?WUpEdjB2Y2RVelpJeHY4QlFic2pQN0lTamVWM3pyYnZYZ0NKR2JYWDdkaGhQ?= =?utf-8?B?VFYvczZiZjg4bVF3M3ZpUjhob29ORlF1RFRQRzRIc203NnF1UjBJcWk4cVgy?= =?utf-8?B?VjZkaDVPQmVFeWNZK0JWMWNZVmV2a3lUYTZvM1MwUExhcmZxQjF6TFZkK0FN?= =?utf-8?B?bUlOdExrNlJJSjFEUTB6MTZXU2Y2QXk4RzM2cjlZcWprSTVucVZiZFlmaDlL?= =?utf-8?B?ZzRmbzl3TUp4S0VLQjYzVGI1elRzS29CYUJ1MGM4NkR6Z2kyenBwVUN4QWRS?= =?utf-8?B?dXlweW00L3pGYzJuM2srRUtpMDBYM0hKM1N5MUZGRVdRbTNqZlNST0hyL0xt?= =?utf-8?B?ZG1DZ2QvU1RZUE95WnM0N0RjTk9GZVl2bk9RTzZxcm9OdVZPRVRyM3hBKzBs?= =?utf-8?B?YnNwaVpqSFdhdUFqM0JmTGVQclkzMzJaWU4rSUxqUFdqSEY0ZnJFQjhrNm1D?= =?utf-8?B?VzRwMnNSbGhRS3pLQVMrNGliclhkSHFUYWFJNFpEZ1VIWFQ1MDBFZjBIVkFD?= =?utf-8?B?N3Q4VEVaaUZkckt6ZFg2K2NSUGc1RnBBWG1rQ0J0NFh4b2FRQUJIK1h6Y3Jv?= =?utf-8?B?S3VkK2RyV1hEV0tJcFVPTkZ5RlJqcVBxVXEzUDRvUmlNTitxMGp0SSsrQVF2?= =?utf-8?B?ZVU5RUNBR3RidXg5WC9LZkR1TlB2TVp1SDBycFN2M2NWa3VLck9SL1BpVzJi?= =?utf-8?B?UlpUN2pOQWNkdnJoVzYrS0F5Qjc3MDcreENibWlGcWJEUkhTNTA3N25xQ3d0?= =?utf-8?B?KzNmMmxTaCtJQXpXeVppU2l0bHNKZnVyUS9TSHVZZElpMDAyalVmY3BxK0tM?= =?utf-8?Q?nQ+Cuhgz+lTFOcSEHaRV68Vxw?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 032342ca-1725-4117-8758-08db58724074 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2023 14:06:33.5312 (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: Z80+3GpbW9jbLgGGSSFqCUlVwpBWhZUQQSOfyf1iDLAAHRZ9XkIgShIp/J6qJxjkwrnSyUyycWEhVg0cXZBRrA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6823 X-Spam-Status: No, score=-3027.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,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 first of all removes a dependency on bfd_byte and unsigned char being the same types. It further eliminates the need to mask by 0xff when fetching values (which wasn't done fully consistently anyway), improving code legibility. While there, where possible add const. --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -120,8 +120,8 @@ static void ATTRIBUTE_PRINTF_3 i386_dis_ struct dis_private { /* Points to first byte not fetched. */ - bfd_byte *max_fetched; - bfd_byte the_buffer[MAX_MNEM_SIZE]; + uint8_t *max_fetched; + uint8_t the_buffer[MAX_MNEM_SIZE]; bfd_vma insn_start; int orig_sizeflag; }; @@ -133,7 +133,7 @@ enum address_mode mode_64bit }; -static const char *prefix_name (enum address_mode, int, int); +static const char *prefix_name (enum address_mode, uint8_t, int); enum x86_64_isa { @@ -149,9 +149,9 @@ struct instr_info int prefixes; /* REX prefix the current instruction. See below. */ - unsigned char rex; + uint8_t rex; /* Bits of REX we've already used. */ - unsigned char rex_used; + uint8_t rex_used; bool need_modrm; bool need_vex; @@ -168,10 +168,10 @@ struct instr_info char obuf[MAX_OPERAND_BUFFER_SIZE]; char *obufp; char *mnemonicendp; - unsigned char *start_codep; - unsigned char *insn_codep; - unsigned char *codep; - unsigned char *end_codep; + const uint8_t *start_codep; + uint8_t *insn_codep; + uint8_t *codep; + const uint8_t *end_codep; signed char last_lock_prefix; signed char last_repz_prefix; signed char last_repnz_prefix; @@ -186,7 +186,7 @@ struct instr_info #define MAX_CODE_LENGTH 15 /* We can up to 14 ins->prefixes since the maximum instruction length is 15bytes. */ - unsigned char all_prefixes[MAX_CODE_LENGTH - 1]; + uint8_t all_prefixes[MAX_CODE_LENGTH - 1]; disassemble_info *info; struct @@ -288,7 +288,7 @@ struct instr_info to ADDR (exclusive) are valid. Returns true for success, false on error. */ static bool -fetch_code (struct disassemble_info *info, bfd_byte *until) +fetch_code (struct disassemble_info *info, uint8_t *until) { int status = -1; struct dis_private *priv = info->private_data; @@ -8794,7 +8794,8 @@ static enum { } ckprefix (instr_info *ins) { - int newrex, i, length; + int i, length; + uint8_t newrex; i = 0; length = 0; @@ -8804,7 +8805,7 @@ ckprefix (instr_info *ins) if (!fetch_code (ins->info, ins->codep + 1)) return ckp_fetch_error; newrex = 0; - switch (*ins->codep & 0xff) + switch (*ins->codep) { /* REX prefixes family. */ case 0x40: @@ -8824,7 +8825,7 @@ ckprefix (instr_info *ins) case 0x4e: case 0x4f: if (ins->address_mode == mode_64bit) - newrex = *ins->codep & 0xff; + newrex = *ins->codep; else return ckp_okay; ins->last_rex_prefix = i; @@ -8904,8 +8905,8 @@ ckprefix (instr_info *ins) /* Rex is ignored when followed by another prefix. */ if (ins->rex) return ckp_bogus; - if ((*ins->codep & 0xff) != FWAIT_OPCODE) - ins->all_prefixes[i++] = *ins->codep & 0xff; + if (*ins->codep != FWAIT_OPCODE) + ins->all_prefixes[i++] = *ins->codep; ins->rex = newrex; ins->codep++; length++; @@ -8917,7 +8918,7 @@ ckprefix (instr_info *ins) prefix byte. */ static const char * -prefix_name (enum address_mode mode, int pref, int sizeflag) +prefix_name (enum address_mode mode, uint8_t pref, int sizeflag) { static const char *rexes [16] = { @@ -9136,7 +9137,7 @@ get_valid_dis386 (const struct dis386 *d case USE_3BYTE_TABLE: if (!fetch_code (ins->info, ins->codep + 2)) return &err_opcode; - vindex = *ins->codep++ & 0xff; + vindex = *ins->codep++; dp = &three_byte_table[dp->op[1].bytemode][vindex]; ins->end_codep = ins->codep; if (!fetch_modrm (ins)) @@ -9243,7 +9244,7 @@ get_valid_dis386 (const struct dis386 *d } ins->need_vex = true; ins->codep++; - vindex = *ins->codep++ & 0xff; + vindex = *ins->codep++; dp = &xop_table[vex_table_index][vindex]; ins->end_codep = ins->codep; @@ -9308,7 +9309,7 @@ get_valid_dis386 (const struct dis386 *d } ins->need_vex = true; ins->codep++; - vindex = *ins->codep++ & 0xff; + vindex = *ins->codep++; dp = &vex_table[vex_table_index][vindex]; ins->end_codep = ins->codep; /* There is no MODRM byte for VEX0F 77. */ @@ -9343,7 +9344,7 @@ get_valid_dis386 (const struct dis386 *d } ins->need_vex = true; ins->codep++; - vindex = *ins->codep++ & 0xff; + vindex = *ins->codep++; dp = &vex_table[dp->op[1].bytemode][vindex]; ins->end_codep = ins->codep; /* There is no MODRM byte for VEX 77. */ @@ -9435,7 +9436,7 @@ get_valid_dis386 (const struct dis386 *d ins->need_vex = true; ins->codep++; - vindex = *ins->codep++ & 0xff; + vindex = *ins->codep++; dp = &evex_table[vex_table_index][vindex]; ins->end_codep = ins->codep; if (!fetch_modrm (ins)) @@ -9782,11 +9783,10 @@ print_insn (bfd_vma pc, disassemble_info goto out; } - ins.two_source_ops = ((*ins.codep & 0xff) == 0x62 - || (*ins.codep & 0xff) == 0xc8); + ins.two_source_ops = (*ins.codep == 0x62 || *ins.codep == 0xc8); if ((ins.prefixes & PREFIX_FWAIT) - && ((*ins.codep & 0xff) < 0xd8 || (*ins.codep & 0xff) > 0xdf)) + && (*ins.codep < 0xd8 || *ins.codep > 0xdf)) { /* Handle ins.prefixes before fwait. */ for (i = 0; i < ins.fwait_prefix && ins.all_prefixes[i]; @@ -9799,22 +9799,22 @@ print_insn (bfd_vma pc, disassemble_info goto out; } - if ((*ins.codep & 0xff) == 0x0f) + if (*ins.codep == 0x0f) { unsigned char threebyte; ins.codep++; if (!fetch_code (info, ins.codep + 1)) goto fetch_error_out; - threebyte = *ins.codep & 0xff; + threebyte = *ins.codep; dp = &dis386_twobyte[threebyte]; ins.need_modrm = twobyte_has_modrm[threebyte]; ins.codep++; } else { - dp = &dis386[*ins.codep & 0xff]; - ins.need_modrm = onebyte_has_modrm[*ins.codep & 0xff]; + dp = &dis386[*ins.codep]; + ins.need_modrm = onebyte_has_modrm[*ins.codep]; ins.codep++; } @@ -10514,9 +10514,7 @@ static bool dofloat (instr_info *ins, int sizeflag) { const struct dis386 *dp; - unsigned char floatop; - - floatop = ins->codep[-1] & 0xff; + unsigned char floatop = ins->codep[-1]; if (ins->modrm.mod != 3) { @@ -10537,7 +10535,7 @@ dofloat (instr_info *ins, int sizeflag) putop (ins, fgrps[dp->op[0].bytemode][ins->modrm.rm], sizeflag); /* Instruction fnstsw is only one with strange arg. */ - if (floatop == 0xdf && (ins->codep[-1] & 0xff) == 0xe0) + if (floatop == 0xdf && ins->codep[-1] == 0xe0) strcpy (ins->op_out[0], att_names16[0] + ins->intel_syntax); } else @@ -11710,7 +11708,7 @@ get8s (instr_info *ins, bfd_vma *res) { if (!fetch_code (ins->info, ins->codep + 1)) return false; - *res = (((bfd_vma) *ins->codep++ & 0xff) ^ 0x80) - 0x80; + *res = ((bfd_vma) *ins->codep++ ^ 0x80) - 0x80; return true; } @@ -11719,8 +11717,8 @@ get16 (instr_info *ins, bfd_vma *res) { if (!fetch_code (ins->info, ins->codep + 2)) return false; - *res = (bfd_vma) *ins->codep++ & 0xff; - *res |= ((bfd_vma) *ins->codep++ & 0xff) << 8; + *res = *ins->codep++; + *res |= (bfd_vma) *ins->codep++ << 8; return true; } @@ -11738,10 +11736,10 @@ get32 (instr_info *ins, bfd_vma *res) { if (!fetch_code (ins->info, ins->codep + 4)) return false; - *res = *ins->codep++ & (bfd_vma) 0xff; - *res |= (*ins->codep++ & (bfd_vma) 0xff) << 8; - *res |= (*ins->codep++ & (bfd_vma) 0xff) << 16; - *res |= (*ins->codep++ & (bfd_vma) 0xff) << 24; + *res = *ins->codep++; + *res |= (bfd_vma) *ins->codep++ << 8; + *res |= (bfd_vma) *ins->codep++ << 16; + *res |= (bfd_vma) *ins->codep++ << 24; return true; } @@ -11764,14 +11762,14 @@ get64 (instr_info *ins, uint64_t *res) if (!fetch_code (ins->info, ins->codep + 8)) return false; - a = *ins->codep++ & 0xff; - a |= (*ins->codep++ & 0xff) << 8; - a |= (*ins->codep++ & 0xff) << 16; - a |= (*ins->codep++ & 0xffu) << 24; - b = *ins->codep++ & 0xff; - b |= (*ins->codep++ & 0xff) << 8; - b |= (*ins->codep++ & 0xff) << 16; - b |= (*ins->codep++ & 0xffu) << 24; + a = *ins->codep++; + a |= (unsigned int) *ins->codep++ << 8; + a |= (unsigned int) *ins->codep++ << 16; + a |= (unsigned int) *ins->codep++ << 24; + b = *ins->codep++; + b |= (unsigned int) *ins->codep++ << 8; + b |= (unsigned int) *ins->codep++ << 16; + b |= (unsigned int) *ins->codep++ << 24; *res = a + ((uint64_t) b << 32); return true; } @@ -12450,7 +12448,7 @@ OP_I (instr_info *ins, int bytemode, int case b_mode: if (!fetch_code (ins->info, ins->codep + 1)) return false; - op = *ins->codep++ & 0xff; + op = *ins->codep++; break; case v_mode: USED_REX (REX_W); @@ -12737,7 +12735,7 @@ OP_ESreg (instr_info *ins, int code, int { if (ins->intel_syntax) { - switch (ins->codep[-1] & 0xff) + switch (ins->codep[-1]) { case 0x6d: /* insw/insl */ intel_operand_size (ins, z_mode, sizeflag); @@ -12763,7 +12761,7 @@ OP_DSreg (instr_info *ins, int code, int { if (ins->intel_syntax) { - switch (ins->codep[-1] & 0xff) + switch (ins->codep[-1]) { case 0x6f: /* outsw/outsl */ intel_operand_size (ins, z_mode, sizeflag); @@ -13209,7 +13207,7 @@ OP_3DNowSuffix (instr_info *ins, int byt place where an 8-bit immediate would normally go. ie. the last byte of the instruction. */ ins->obufp = ins->mnemonicendp; - mnemonic = Suffix3DNow[*ins->codep++ & 0xff]; + mnemonic = Suffix3DNow[*ins->codep++]; if (mnemonic) ins->obufp = stpcpy (ins->obufp, mnemonic); else @@ -13274,7 +13272,7 @@ CMP_Fixup (instr_info *ins, int bytemode if (!fetch_code (ins->info, ins->codep + 1)) return false; - cmp_type = *ins->codep++ & 0xff; + cmp_type = *ins->codep++; if (cmp_type < ARRAY_SIZE (simd_cmp_op)) { char suffix[3]; @@ -13724,7 +13722,7 @@ OP_REG_VexI4 (instr_info *ins, int bytem if (!fetch_code (ins->info, ins->codep + 1)) return false; - reg = *ins->codep++ & 0xff; + reg = *ins->codep++; if (bytemode != x_mode && bytemode != scalar_mode) abort (); @@ -13768,7 +13766,7 @@ VPCMP_Fixup (instr_info *ins, int bytemo if (!fetch_code (ins->info, ins->codep + 1)) return false; - cmp_type = *ins->codep++ & 0xff; + cmp_type = *ins->codep++; /* There are aliases for immediates 0, 1, 2, 4, 5, 6. If it's the case, print suffix, otherwise - print the immediate. */ if (cmp_type < ARRAY_SIZE (simd_cmp_op) @@ -13823,7 +13821,7 @@ VPCOM_Fixup (instr_info *ins, int bytemo if (!fetch_code (ins->info, ins->codep + 1)) return false; - cmp_type = *ins->codep++ & 0xff; + cmp_type = *ins->codep++; if (cmp_type < ARRAY_SIZE (xop_cmp_op)) { char suffix[3]; @@ -13870,7 +13868,7 @@ PCLMUL_Fixup (instr_info *ins, int bytem if (!fetch_code (ins->info, ins->codep + 1)) return false; - pclmul_type = *ins->codep++ & 0xff; + pclmul_type = *ins->codep++; switch (pclmul_type) { case 0x10: