From patchwork Fri Jun 1 17:53:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Hayward X-Patchwork-Id: 27601 Received: (qmail 31885 invoked by alias); 1 Jun 2018 17:53:45 -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 31863 invoked by uid 89); 1 Jun 2018 17:53:44 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.0 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=scale, *tdesc, *regcache, 64bits X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Received: from mail-ve1eur01on0044.outbound.protection.outlook.com (HELO EUR01-VE1-obe.outbound.protection.outlook.com) (104.47.1.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 01 Jun 2018 17:53:42 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; Received: from C02TF0U7HF1T.arm.com (217.140.96.140) by VI1PR0802MB2141.eurprd08.prod.outlook.com (2603:10a6:800:9b::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.12; Fri, 1 Jun 2018 17:53:38 +0000 From: Alan Hayward To: gdb-patches@sourceware.org Cc: nd@arm.com, Alan Hayward Subject: [PATCH] Use uint64_t for SVE VQ Date: Fri, 1 Jun 2018 18:53:31 +0100 Message-Id: <20180601175331.53523-1-alan.hayward@arm.com> MIME-Version: 1.0 X-ClientProxiedBy: CWLP265CA0001.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:10::13) To VI1PR0802MB2141.eurprd08.prod.outlook.com (2603:10a6:800:9b::10) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:VI1PR0802MB2141; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2141; 3:zNNfI8oxe878wENNzTrsenJrFHCBky0ymR2pGF1cV21ihAFO2C+LzSrb4FH1U5NHC2w5/vTuZic3AvNS6xj9yRsvwLul7JJs0st4silOZ7yf9TlPU9hfkpBu6t7JFyiZixNkLAYjRbapqrUfWi1oyOUw8RsAO3uy1qEIQrwq1kkjRx3moEgsIIhhhrNTsKEwg7uCyBamMhNEEPOByZuXHMyLcCWPEnX25cOuThY57SQZgPKYzW9ZUbyxE8JCAu68; 25:bxq6RrhK/MBBQARJQ20AeyXbtzEzqS5TvVStpi2sMnYhcwJxsF8+55fq1me6LKE5WE4lWM68S1piL+X+Fgj7+Tmvots07HXyDg57BM+y8DwvVK3zo3oX7hOvYcNLPhSkRXlarDYiFt5uq6orcb6YmE9ZDdYPCTln47EStAItN8sQAJlULFRq3hs9PrceCm8ot2WmpT7LTjP7BR7TVmyrrFmWnea4aIaff2fML9GqQ6ZpXwlAZ+2ug1f8mWhah9X2XqfC7jY5LpTLOyfupHX6VW0lACJg0EG0i6nvKrtb7TOJiqLk0y+osBTdBIkQLNHlUI58CINrru+RmpNt3Yq+Aw==; 31:yMHfDcI/2Pj40f/3UapOCf0U8eGPnxhBrM8gxdim0dFv7f/blt55EXABLLTC5TaPl4u+D9X2K5+Gha/xi4xtSVdOMcFtzehDDFJtryw5vb4OqU6oeCeKHoS9kaf2fEqedcZacHYrGA9Zv90l4XTDYsXgbi7oEdQYWXpLCQG7a3PUdfCYbf8MM6hWtsoE9aYuPRaZnK5T+3e8PCeeSpJsRlm0AlmMKw+W9DFcR+qZZDA= X-MS-TrafficTypeDiagnostic: VI1PR0802MB2141: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2141; 20:YMu3ZstA1a7dELAFEXlUhyWRTR41VhuhBqpDs4/iC7CzGYsITH2VJnkDizu5KOPEauRkKVvKCaQdkwtfj3X/89E0cwXQKHM270XGvRsRbi24XUiHEHnhDq7qKufJWuTjE6nHM0wWUeL9/ciWWsKA27oAQk5bO2WPQJtRtVCoIjDTp+NaOcH9tpawA7AHLYIYQEddzU8ohYFuASYKeuRCYcoMTJlrhmszX/hvUXI/Cagwe6DxLrnyEmiWbCrNIunX; 4:pXEz3axtlRUr3odELfPDF8Y/bq1TwZ2K2f/g0gg3O0v7rOH+P1W0sHPQeXLsL25846iVJDANtCPUkrdAntv0PwQmk5wT/XUgngbQvs8NA/cfulLXq+8LUIjxn8vNFlqXwYwrS0KWr2cHeqe6xgn20jRTCQYqt2vpshrVluPfZP92NexoseW7ZxIHk0nZoJu9Dzg0W7h4DJDcM6GNwXoocBJxmIwOKKpNFn68F0iwPTCoe4PmMDm83Zplk3lLTATLWeqQRmvf0DGPxPaJ4K5DkPak/IebtP8hGUwLgUYK4Qk/dBWkgBPXe+e1sF9YQj4W X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3231254)(944501410)(52105095)(3002001)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011)(7699016); SRVR:VI1PR0802MB2141; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0802MB2141; X-Forefront-PRVS: 0690E5FF22 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(376002)(396003)(366004)(39380400002)(39860400002)(346002)(189003)(199004)(68736007)(36756003)(1076002)(6116002)(3846002)(105586002)(50466002)(66066001)(2361001)(48376002)(2351001)(5660300001)(6916009)(6666003)(106356001)(47776003)(6486002)(53416004)(1857600001)(97736004)(966005)(6306002)(72206003)(4326008)(2906002)(44832011)(25786009)(478600001)(51416003)(386003)(52116002)(7696005)(8676002)(81156014)(59450400001)(7736002)(53936002)(476003)(16586007)(956004)(81166006)(486006)(305945005)(8936002)(26005)(2616005)(316002)(50226002)(86362001)(575784001)(186003)(16526019)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0802MB2141; H:C02TF0U7HF1T.arm.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0802MB2141; 23:oBUxS+VDNmONnVjr+NbdhCen3En12a48biGQ5st?= =?us-ascii?Q?yhqDXUy9+8WPV1RBvMVYg1ws1uaac2YzP3oCDQpci1jLxY12jANnXoRxUAmB?= =?us-ascii?Q?TwtI2FAodsMVUd4aah99nr5ws/mJ+sMrWOkPcfzEyiuAW3wlyOEzTod5RyAZ?= =?us-ascii?Q?7A8HhdYx7W3Udu9kk3CQCdDCjBSSM+t2uI8nMGPZynb9fd4ux8SYUXoO8ESQ?= =?us-ascii?Q?TemxhM9xMNwSSWzpveQE+tcxXIrhp8sz1NdpV5XDcEW1+VrmOMrcmYJECt4Q?= =?us-ascii?Q?bp2RvvgRI1CEvRd8A2vOmsnIbyYJpwrFsCe64jIwlxpmNsTQQi0FM/VWmfRG?= =?us-ascii?Q?4aIw4nONp2HRryXoQT8rgrsK0P0+ag65hPSWyKfFcyuJclaf4sq++ZEA8YJR?= =?us-ascii?Q?G4WNrXKya2X+FnzqKjhR2s66987y4QkSKfQBbI1QFL10uSiQYaxQNplC9Hqh?= =?us-ascii?Q?5TLn83bMJjdQlYztDLxdGr7TAUiqCHwsmd05e7nL1C+tCyeDGzIEmaX7P012?= =?us-ascii?Q?9ruhBn+4edDNjCkgiokkaNjW78hFaCioeZONX07kDhf3NRMCIZD1amkO2fIf?= =?us-ascii?Q?DCPazcVD1POlxPZCDjDqAbt6aOjH5GSSnysb9bwZh03vtwLXbUSe4uDRan5C?= =?us-ascii?Q?CJhUR9bixoxMDdK1uCcbw/GjLL0NszPG/xqcMQd2kr0ywQur2YinxhfqCl4E?= =?us-ascii?Q?DQ8Noy9keVDO3B9GA0hYTf9l0aE4l1dRff347MBJC8hUgD37FS+c4wbk6hOd?= =?us-ascii?Q?kmkp+7AeLKRkUF5F0szWeOx4PMD679EYC+3WsWqKU4IJrc1vzn7QhJU/VypG?= =?us-ascii?Q?RD1y9tsP44DD4ri2HBsY+qA19zQsy/zulK/WUn3NshD+u1zkdvg7Ua+bP7AV?= =?us-ascii?Q?/cA9Ts8BVdc4sLM3dm5dmbz3/jR3y4LfJJ2s2DDgAv9ITvnsJsXaGTrhi2wn?= =?us-ascii?Q?ILWbFulErm8TJk4ksG1HiDblBdhKQGGFDa7NA48jtOaHHnbUqn2/Fzm1VEwG?= =?us-ascii?Q?Lcyp/qpLnEmfB/c74Ry7ellv3B88/SaNgB39/Zs8E38VTcniBwrwzBQz+n32?= =?us-ascii?Q?eGNLpykABORV9392hOmbi8v7nrwS7ChAyH67ejVZIO9BY6Rno2XehpJOZg8z?= =?us-ascii?Q?+2+tle7jidVjtqK5TdL9NllBxc2/10YpYPgvbtUuKxmdZcTOl2ww9Af/Vd/N?= =?us-ascii?Q?So/5tmdtEBvVLod9vkWC9obq7Fi4DHm2+twZdLDSREDzZE+Dl74s+sWwrptG?= =?us-ascii?Q?ONEM3Kf8hnBGNPTX3zwJaLH4b2XBHFoutcfC5giRzrzGL6p0o2xVr2qeeqtf?= =?us-ascii?Q?qQFjR4Pl3cCwqfX8uSm3v9gj/QtWMOaJhxy9OxHBJp/uU7ADbL3IxYEW5Wbo?= =?us-ascii?Q?1AIAW8g79ftLjT/hjOiJmqyX4etcxWAvN4YpPVNee+IrOTSaXTA8xa+lMGr8?= =?us-ascii?Q?DbCVJHOk5Lw=3D=3D?= X-Microsoft-Antispam-Message-Info: UcmkElC1D9IQpy/6cuHvjloGC2HyoTkRFANDBa6twLoK3l64oJ2EtbybJ2Ds/JprCmD6Ns/gADDHECGxEHriphni9iROcTKDJ1rbrVK9GH48VQp4uaLMVbkxEfcgP0+NG1cMPGCsU6Li28n51aPhbJmYfKMaWecfCdOs71xoWBmYAQ0R+2CHeFmcTpta/TPe X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2141; 6:8n2pZP7KgwNa5Xy2kXMPdyjjZRLKeEwZNpHzz0q8Nc+qhhakSrpoaMiKTMxLmPuZF3fDyXE5qSOP6d9YiojBVbWgZ0PF7wst+8np1mjjDBhQXc9nxHORQ0Krv2IK4dakFt7O/QF4JqhTAGVDIU7KmX9iZK9+ZY8hxiFJ1d6Tr+D1Zty8o69101DZS3LyXUdO7j6mHOCyEYs4YQ/bTSG2txR3IbYIr0Tu7EUMoV5sFSnnjp5y8eTHsZJ2pZCIf50F6vYf+kLaadvT73A8rfbZ2FKuvZni2FE1HItGXnVOeOPCEhnvxv8mGe9EP9btA5GFuCrvUuLdczvUr25vCUdrT/FoWZvNnJGHQvHVZw5Bmkj3QoSAQVNeC5WSlY1FR7cVMo5XEeF+d5s6D7BzWbevUAMsAlsmLGB5Ven0vwtJVSkvJkzqX+yGp/63SwYlMx8xM+28jQgbvD7u4lvDzLPhbQ==; 5:1usnyiTVWWRy/nJ2AYxZi+GYA/mv9sOxWTkZl/dARwKfaCh4lbdAxN3Npet9poZ4AEUG0+wQWoFvtTLVegU45XdWeuUudOgV2gXB9wimTTwgepl0DavlBJ+ge/ifF8lPyqiZagb2WxN7GMC2Fd70NxvK367iQ8EZhgJXa8qBdtk=; 24:SpkfJd1NV5vpJcmAYVx2JNXJoK6S1BCSwdBlPU4eDoiaCHPqcLGb4GADH1tfFtQa47PA4Qob6CZIYj+YK9KqzsMXLm4OBxfH5PpEEPKnp3c= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2141; 7:Jw4HRbKsQ0heh1oaZDHvZyHg/0EaTzmW/VcQ7UORa04C3C6tHlwcKC1gQI/jo9zD7Ap8zgSx2OAILQ2agkdZ0rMQY9Yi7EjgnWjmTsJ8hliUzhn6U/QSMxFyY8au0YqJ59lHbZqs9TEkonS1PKYxqH8chYnH1dbVb7sgLJJIiXF0a6wYSwsE9/MQOF9slpr6t2lkZQbQedXGLDpO35VuBDKHRrs2e9DENzeeo8xMih52fzdjkilPUUyy64EYZDE8 X-MS-Office365-Filtering-Correlation-Id: 34596441-304a-4b0e-cc9b-08d5c7e89ae1 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2018 17:53:38.4497 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 34596441-304a-4b0e-cc9b-08d5c7e89ae1 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2141 X-IsSubscribed: yes Previously VQ was of type long. Using uint64_t ensures it always matches the same type as the VG register. Note that in the Linux kernel, VQ is 16bits. We cast it up to 64bits immediately after reading to ensure we always use the same type throughout the code. This spatch was spun off Pedro's review here: https://sourceware.org/ml/gdb-patches/2018-05/msg00862.html Tested with other SVE patches under aarch64 SVE emulation. 2018-06-01 Alan Hayward * aarch64-tdep.c (aarch64_read_description): Use long for VQ. * aarch64-tdep.h (aarch64_read_description): Likewise. * arch/aarch64.c (aarch64_create_target_description): Likewise. * arch/aarch64.h (aarch64_create_target_description): Likewise. * features/aarch64-sve.c (create_feature_aarch64_sve): Likewise. * nat/aarch64-sve-linux-ptrace.c(aarch64_sve_get_vq): Likewise. * nat/aarch64-sve-linux-ptrace.h (aarch64_sve_get_vq): Likewise. --- gdb/aarch64-tdep.c | 2 +- gdb/aarch64-tdep.h | 2 +- gdb/arch/aarch64.c | 2 +- gdb/arch/aarch64.h | 2 +- gdb/features/aarch64-sve.c | 2 +- gdb/nat/aarch64-sve-linux-ptrace.c | 2 +- gdb/nat/aarch64-sve-linux-ptrace.h | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index 1cd2015e08..218a7ea0cf 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -2856,7 +2856,7 @@ aarch64_displaced_step_hw_singlestep (struct gdbarch *gdbarch, (It is not possible to set VQ to zero on an SVE system). */ const target_desc * -aarch64_read_description (long vq) +aarch64_read_description (uint64_t vq) { if (vq > AARCH64_MAX_SVE_VQ) error (_("VQ is %ld, maximum supported value is %d"), vq, diff --git a/gdb/aarch64-tdep.h b/gdb/aarch64-tdep.h index c9fd7b3578..e41a5972d2 100644 --- a/gdb/aarch64-tdep.h +++ b/gdb/aarch64-tdep.h @@ -75,7 +75,7 @@ struct gdbarch_tdep int (*aarch64_syscall_record) (struct regcache *regcache, unsigned long svc_number); }; -const target_desc *aarch64_read_description (long vq); +const target_desc *aarch64_read_description (uint64_t vq); extern int aarch64_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr); diff --git a/gdb/arch/aarch64.c b/gdb/arch/aarch64.c index 495057488d..9b191315bc 100644 --- a/gdb/arch/aarch64.c +++ b/gdb/arch/aarch64.c @@ -26,7 +26,7 @@ /* See arch/aarch64.h. */ target_desc * -aarch64_create_target_description (long vq) +aarch64_create_target_description (uint64_t vq) { target_desc *tdesc = allocate_target_description (); diff --git a/gdb/arch/aarch64.h b/gdb/arch/aarch64.h index 30f5360380..9040d8d4c8 100644 --- a/gdb/arch/aarch64.h +++ b/gdb/arch/aarch64.h @@ -26,7 +26,7 @@ the presence of SVE and the Vector Quotient - the number of 128bit chunks in an SVE Z register. */ -target_desc *aarch64_create_target_description (long vq); +target_desc *aarch64_create_target_description (uint64_t vq); /* Register numbers of various important registers. Note that on SVE, the Z registers reuse the V register numbers and the V diff --git a/gdb/features/aarch64-sve.c b/gdb/features/aarch64-sve.c index a020e4d393..71be67c3fb 100644 --- a/gdb/features/aarch64-sve.c +++ b/gdb/features/aarch64-sve.c @@ -23,7 +23,7 @@ static int create_feature_aarch64_sve (struct target_desc *result, long regnum, - int scale) + uint64_t scale) { struct tdesc_feature *feature; tdesc_type *element_type, *field_type; diff --git a/gdb/nat/aarch64-sve-linux-ptrace.c b/gdb/nat/aarch64-sve-linux-ptrace.c index 3a1dbae709..119656b886 100644 --- a/gdb/nat/aarch64-sve-linux-ptrace.c +++ b/gdb/nat/aarch64-sve-linux-ptrace.c @@ -27,7 +27,7 @@ /* See nat/aarch64-sve-linux-ptrace.h. */ -unsigned long +uint64_t aarch64_sve_get_vq (int tid) { struct iovec iovec; diff --git a/gdb/nat/aarch64-sve-linux-ptrace.h b/gdb/nat/aarch64-sve-linux-ptrace.h index a32ddf1676..61f841466c 100644 --- a/gdb/nat/aarch64-sve-linux-ptrace.h +++ b/gdb/nat/aarch64-sve-linux-ptrace.h @@ -32,7 +32,7 @@ /* Read VQ for the given tid using ptrace. If SVE is not supported then zero is returned (on a system that supports SVE, then VQ cannot be zero). */ -extern unsigned long aarch64_sve_get_vq (int tid); +uint64_t aarch64_sve_get_vq (int tid); /* Structures and defines taken from sigcontext.h. */