From patchwork Thu Apr 27 10:48:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Hayward X-Patchwork-Id: 20182 Received: (qmail 37912 invoked by alias); 27 Apr 2017 10:48:41 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 13515 invoked by uid 89); 27 Apr 2017 10:48:22 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=Big X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Received: from mail-he1eur01on0043.outbound.protection.outlook.com (HELO EUR01-HE1-obe.outbound.protection.outlook.com) (104.47.0.43) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 27 Apr 2017 10:48:20 +0000 Received: from AM3PR08MB0101.eurprd08.prod.outlook.com (10.160.211.19) by AM3PR08MB0102.eurprd08.prod.outlook.com (10.160.211.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.12; Thu, 27 Apr 2017 10:48:07 +0000 Received: from AM3PR08MB0101.eurprd08.prod.outlook.com ([fe80::c065:778f:9924:8660]) by AM3PR08MB0101.eurprd08.prod.outlook.com ([fe80::c065:778f:9924:8660%14]) with mapi id 15.01.1047.019; Thu, 27 Apr 2017 10:48:07 +0000 From: Alan Hayward To: Yao Qi CC: "gdb-patches@sourceware.org" , nd Subject: Re: [PATCH 2/11] Add IA64_MAX_REGISTER_SIZE Date: Thu, 27 Apr 2017 10:48:07 +0000 Message-ID: References: <8637dnqils.fsf@gmail.com> <90F5717F-8685-4C74-B2E4-7317AF228034@arm.com> <86pogivp7m.fsf@gmail.com> <0CAAE3E4-1860-40FF-895E-6C6A54A4EAB6@arm.com> <86vapsqxld.fsf@gmail.com> <498D342A-2994-4664-968D-F97A80C66059@arm.com> <86mvb2p32v.fsf@gmail.com> In-Reply-To: <86mvb2p32v.fsf@gmail.com> authentication-results: gmail.com; dkim=none (message not signed) header.d=none; gmail.com; dmarc=none action=none header.from=arm.com; x-microsoft-exchange-diagnostics: 1; AM3PR08MB0102; 7:avxjoahwtmTBO5A0LUMjXTTiHlfRO+5iAYIiRlMaR5yaseIXl677YysFMtaAc03YfmAuOS37cYORfatzWZ6PPaSnQV5ECW1c50cdPnhmR8aVpq/+hw2uyWWuz1ovL6aE4vt6E4ZM+LTu9SbXzXfOyZbZlm7CNhEbFu9MmIzSUxmPyF6P9WHiltx1st862AblSC0joibOrmiC10w6yvpYygHNUwS9WKk95fqnb1NM0/VwF8AjmJgDVLoLNSfwbxR1aut5uE7EY+KypviXJZ0TFxqhOG0PwuScI7X0knVImb1cXdesZ/+2/1k3SiLgacA5K2Re3RinG1/ajdPCMHX3Uw== x-ms-office365-filtering-correlation-id: 7a716fff-289f-4aef-ca59-08d48d5ae3d1 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(48565401081)(201703131423075)(201703031133081); SRVR:AM3PR08MB0102; nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(20161123555025)(6072148); SRVR:AM3PR08MB0102; BCL:0; PCL:0; RULEID:; SRVR:AM3PR08MB0102; x-forefront-prvs: 029097202E x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39400400002)(39410400002)(39850400002)(39450400003)(39840400002)(39860400002)(377424004)(24454002)(305945005)(39060400002)(93886004)(110136004)(229853002)(25786009)(38730400002)(3660700001)(53546009)(6916009)(6486002)(3280700002)(6506006)(1411001)(7736002)(2950100002)(76176999)(6246003)(66066001)(2906002)(189998001)(8676002)(53936002)(2900100001)(8936002)(54356999)(50986999)(4326008)(81166006)(6436002)(33656002)(575784001)(86362001)(36756003)(54906002)(5250100002)(106356001)(99286003)(5660300001)(6116002)(83716003)(6512007)(102836003)(82746002)(3846002)(15760500002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM3PR08MB0102; H:AM3PR08MB0101.eurprd08.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2017 10:48:07.0398 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR08MB0102 > On 27 Apr 2017, at 11:17, Yao Qi wrote: > > Alan Hayward writes: > > Hi Alan, > As I keep saying, please split your patch. You have two complete > different approaches in this patch to remove MAX_FP_REGISTER_SIZE, and > each of them is independent of the other. One looks very correct to me > but I am not sure the other one. This leads to that part of the patch > can go in. > >> 2017-04-26 Alan Hayward >> >> * ia64-tdep.c (IA64_MAX_FP_REGISTER_SIZE) Add. >> (ia64_register_to_value): Use IA64_MAX_FP_REGISTER_SIZE. >> (ia64_value_to_register): Likewise. >> (examine_prologue): Use get_frame_register_unsigned. >> (ia64_sigtramp_frame_prev_register): Use extract_unsigned_integer. > > Use read_memory_unsigned_integer. > >> (ia64_access_reg): Likewise. > > Use get_frame_register_unsigned. > >> (ia64_access_rse_reg): Likewise. >> (ia64_libunwind_frame_prev_register): Likewise. >> (ia64_extract_return_value): Use IA64_MAX_FP_REGISTER_SIZE. >> (ia64_store_return_value): Likewise. >> (ia64_push_dummy_call): Likewise. >> >> >> diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c >> index 22e158866bbbf0d9457737ac973027521e2c1655..4f19e15acdcf34816c10bcab6884659c6688f6bf 100644 > > This part of the patch (not using IA64_MAX_FP_REGISTER_SIZE) is good > to me. > Above patch pushed. That leaves this patch to be reviewed: 2017-04-27 Alan Hayward * ia64-tdep.c (IA64_MAX_FP_REGISTER_SIZE) Add. (ia64_register_to_value): Use IA64_MAX_FP_REGISTER_SIZE. (ia64_value_to_register): Likewise. (ia64_extract_return_value): Likewise. (ia64_store_return_value): Likewise. (ia64_push_dummy_call): Likewise. diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index 8583450fee89e4f0cb6a779efde95c692e097199..4f19e15acdcf34816c10bcab6884659c6688f6bf 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -125,6 +125,9 @@ static CORE_ADDR ia64_find_global_pointer (struct gdbarch *gdbarch, #define NUM_IA64_RAW_REGS 462 +/* Big enough to hold a FP register in bytes. */ +#define IA64_FP_REGISTER_SIZE 16 + static int sp_regnum = IA64_GR12_REGNUM; /* NOTE: we treat the register stack registers r32-r127 as @@ -1227,7 +1230,7 @@ ia64_register_to_value (struct frame_info *frame, int regnum, int *optimizedp, int *unavailablep) { struct gdbarch *gdbarch = get_frame_arch (frame); - gdb_byte in[MAX_REGISTER_SIZE]; + gdb_byte in[IA64_FP_REGISTER_SIZE]; /* Convert to TYPE. */ if (!get_frame_register_bytes (frame, regnum, 0, @@ -1245,7 +1248,7 @@ ia64_value_to_register (struct frame_info *frame, int regnum, struct type *valtype, const gdb_byte *in) { struct gdbarch *gdbarch = get_frame_arch (frame); - gdb_byte out[MAX_REGISTER_SIZE]; + gdb_byte out[IA64_FP_REGISTER_SIZE]; convert_typed_floating (in, valtype, out, ia64_ext_type (gdbarch)); put_frame_register (frame, regnum, out); } @@ -3208,7 +3211,7 @@ ia64_extract_return_value (struct type *type, struct regcache *regcache, float_elt_type = is_float_or_hfa_type (type); if (float_elt_type != NULL) { - gdb_byte from[MAX_REGISTER_SIZE]; + gdb_byte from[IA64_FP_REGISTER_SIZE]; int offset = 0; int regnum = IA64_FR8_REGNUM; int n = TYPE_LENGTH (type) / TYPE_LENGTH (float_elt_type); @@ -3273,7 +3276,7 @@ ia64_store_return_value (struct type *type, struct regcache *regcache, float_elt_type = is_float_or_hfa_type (type); if (float_elt_type != NULL) { - gdb_byte to[MAX_REGISTER_SIZE]; + gdb_byte to[IA64_FP_REGISTER_SIZE]; int offset = 0; int regnum = IA64_FR8_REGNUM; int n = TYPE_LENGTH (type) / TYPE_LENGTH (float_elt_type); @@ -3835,7 +3838,7 @@ ia64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, len = TYPE_LENGTH (type); while (len > 0 && floatreg < IA64_FR16_REGNUM) { - gdb_byte to[MAX_REGISTER_SIZE]; + gdb_byte to[IA64_FP_REGISTER_SIZE]; convert_typed_floating (value_contents (arg) + argoffset, float_elt_type, to, ia64_ext_type (gdbarch));