From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id C1DE73858D35 for ; Mon, 22 Apr 2024 23:58:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C1DE73858D35 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C1DE73858D35 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1713830291; cv=pass; b=QoILWk5TCnKfLte2paTcLJhqq3IwyQiocKyZHIQHSfYwfRxcfVjuWbCvFLhZJVradRxTS53rKo73KiQEqx43onz8gzpen2zQscaLpjuykqZN8r/1xzTpJfVbmHNjrzt1dPREicBDol5w2qQ+sFyEqBShtgaiO74oxGi6tNw9rUU= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1713830291; c=relaxed/simple; bh=rkNtwM7VWpTcnX5oR70sckQOD173Gjq0u0zSQfOw5Jc=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=NIAaT4UQxxoU8+Rte/YANy/picOyf/KhtdOo72Ecz4FP7NRHXRm1QX6tiNjdT9JgCYN7Rdmy0cA8optLgB0ncDAI/RJhEcBXKu7nrGZjPKTPJvddU4DqU2cPOct5L5EdLBxF1UTbweX4mmb0G1qdEbn0r2ZUVKy+d0WP9UVsxnQ= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 43MHnXJV026934; Mon, 22 Apr 2024 23:58:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2023-11-20; bh=WH3hIKemFenecZjV53A1u/vgOTskY0d1EI76l1PJl6M=; b=AdgaQ8TND6YkVk0ZYoZQoTLuny728vhyVM7cgIycRt7uVRt5XGg/4Z0IxbRGWX3Yb1Nw 8qeEOtuTcEpzSWI+0oesKy7C88vXsw1lRHe9CjWoGcVPfLeY6N/UWdjP5AMO5NpwZjNX 8nMXNiV5kSVl+XUsvjwUMTkRAFM1ZUDe4AD5focM4z8CiYu+Ud1KdP+TeVr7ThkjLGPN I9DC3+1Dyznoo4620sW65d7rfE/c3q9HyrDumOHXcShn2oTbhEKv5WVsUp1O9ptVq2FM gjJ5JJxopBTpmdi5zt2cuNp2FYeh7zhjJZ4zqF6Z6un7ll56GEXTm9+hae/02BD3npiK tA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3xm5kbkvgh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Apr 2024 23:58:07 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 43MM4uQ7010249; Mon, 22 Apr 2024 23:58:06 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3xm456tgva-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Apr 2024 23:58:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bD6t9jdX/aBze2D9lnkvRQYnwyCrda5jASifJLc0S0dNNpTXmb3W7UqbDm+Oo53c3mQFVpSzUgnTVObogVxST84N2GkESAjpxifB6mMdv1+DVlzrLmzZIzSC3RcwQP1Y1W4JkfD1aG5M7v3JUYL3luhWbgOmTnEALQZ9OLEK/YE8QPgM/ie22TkDwzNXTtkf+gpjJ9xSdevx2dS39sH3bnd+Gc6hcVZ/0mQ0Bxdsragid9afivLYMnRu8qTNu9zS3nOPuAYg5AF3/tMnVEoLkGVKNJiZMpStKtwKK8mrBnjpSaANJfha7VxGI2vQsRX53DR3fI+nIOT0q5aSylhL5g== 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=WH3hIKemFenecZjV53A1u/vgOTskY0d1EI76l1PJl6M=; b=NgvhCy/Sw30KcYXxZmxXzIZwkVdDs8wUeEr5cvSi1oUUCpfQNVqO5g0+kuuBwl7gMV5zmA09GcXvZoI3oX8x5RCgKmYyx8sROoRuUn6bOgcyJv05gBKsoDIiDtr7MnNRB6/LlSNhjDSvxdnDWGhgobCbQyalpe1fPb2C0yQNP4SQiRegyeQUI+QfYFHUcFcbcy6RbeoDoUzbGm7IrDk7/ilJqb46y7XiQjZx4XpXafjVsOT8oyEI6bK0l4YiTvQ8/aBmuj//QXxW2Y1oF5jSA40WQV2ZZ5nxSARBKllqgoTacMjLk/xjrL0sKxsCA0KHgTqQnyPIpH8XYLnIi+fmuw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WH3hIKemFenecZjV53A1u/vgOTskY0d1EI76l1PJl6M=; b=f8IcXsncWwM1AcpBP7JUDkBWQFc8LnSphObNSipBKoKn6Nv5pnDicbLWYC3xuqqmGF/c38I78aqtNSGRJvb5Qn8AZxsA2bxSmNpafcHa+2eZuxHkkyiqwTAdrc7IZtDCUl50cIpaHAfGv52uIw2qi2nMfyOatOzyJHAYohi8+6g= Received: from BN6PR1001MB2147.namprd10.prod.outlook.com (2603:10b6:405:2e::26) by CO1PR10MB4596.namprd10.prod.outlook.com (2603:10b6:303:6f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.44; Mon, 22 Apr 2024 23:58:03 +0000 Received: from BN6PR1001MB2147.namprd10.prod.outlook.com ([fe80::dcff:9a4b:28d6:99f8]) by BN6PR1001MB2147.namprd10.prod.outlook.com ([fe80::dcff:9a4b:28d6:99f8%4]) with mapi id 15.20.7472.044; Mon, 22 Apr 2024 23:58:03 +0000 Message-ID: <23e2d1d2-0637-46fa-ba5c-002f292e62c7@oracle.com> Date: Mon, 22 Apr 2024 16:58:00 -0700 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH 1/1] sframe: Represent FP without RA on stack Content-Language: en-US To: Jens Remus , binutils@sourceware.org Cc: Andreas Krebbel References: <20240422155857.2497684-1-jremus@linux.ibm.com> <20240422155857.2497684-2-jremus@linux.ibm.com> From: Indu Bhagat In-Reply-To: <20240422155857.2497684-2-jremus@linux.ibm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: MW4PR03CA0312.namprd03.prod.outlook.com (2603:10b6:303:dd::17) To BN6PR1001MB2147.namprd10.prod.outlook.com (2603:10b6:405:2e::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN6PR1001MB2147:EE_|CO1PR10MB4596:EE_ X-MS-Office365-Filtering-Correlation-Id: f0fd18c4-3849-44b2-c20b-08dc63280c06 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Z1hMN3JWL3VOYUN0UU42TEhTTGVVQTFPb3pXQk12dDRHZWdmKzRLbjNBTDMx?= =?utf-8?B?Q3JCTStha0ZtazRzaG9JbUhNMVJnS3JXYnhKMHV6YU1Rc0tsY2Z3cEVTazZ6?= =?utf-8?B?Z0FXQlZObW4vc1R4OGI2enZZRmg4eEw2eVJYYW5kUXVwSEk1L2FqOFlBNUVq?= =?utf-8?B?cTlWaWM1VzVyN1VmWXNaNFk3aVFZamhwbGROK255c2tnaHF4bTNxM1o5TGxo?= =?utf-8?B?MEJHVEFoUC9NNkdXTmgxSVA2Y0M5cXA4NFg0M2VXMm9PdUFYcFNvTzc5NUw0?= =?utf-8?B?Qk82bnR6ckwyR1dTMHBoMTVDQWdUYkwyYlFRL0c0U1dRZVdnWVZzRWlOSU44?= =?utf-8?B?QmFQT1RTNEJZbm5VUE5qOEVEdnhTUzAwT280MkVUMm1Jd2FscEZEZzN6d01s?= =?utf-8?B?b0lWeE5DUXF5c1IrZlNyc2RlSmJBVFdpT1hpSFZLdnpKNGFrSnR4UWVoNGhO?= =?utf-8?B?RWxpY0E3aWlHMnk0SlIzTjFCZVFqWE53RndDbTduNW9oTDRQdGN2d1dLZTRO?= =?utf-8?B?T1NjU1ZpYlgydkQ5MjhKUEhiaU9xVmxZbFhBVU5JT2Q0bmhIUnVoMVdwRE9r?= =?utf-8?B?YXJPVCtyVnc5VE83OUI0cENvU01XK0VLOGlMUm5kRGttWmFta1ErdFlwbEVT?= =?utf-8?B?MUpPTjh5T1JCQk9uODZESXdIR2JRZmUvanRVWlU2YWNDZVBFSEhvUXhqRUsv?= =?utf-8?B?cFFuMjBITmZhOUJ3NjczeVpnNVVZRW92NTBJN3NiN1lwMk1oaWR4VnNLT2pr?= =?utf-8?B?TWsyckMxbmNiQWRUeDhLa25MRUNJZ0dkRDJMS0RJSGFwaVhBbDNYK1pETWVL?= =?utf-8?B?SG41WVVUd3R1QjVoamFTU1FjaHh2TERpSk54R3dhYlE5MUt4S3EzL2hiM2xV?= =?utf-8?B?di95Q3diN3Y0TVFSdHYxcjQwbmw1em44NXVFVGRtQjIwWXZxd0Z6N3ZvT0o0?= =?utf-8?B?NHJ2QUgzeXZaOFU1RmhzS2lrYkxCWFJMRVRkMW9ERHoveXVkMUVkWDNjeGhs?= =?utf-8?B?QXFmUitVUUZacWdYU3k0WWd6ZDhqeVViUUlyVkpkYTUySTRMMkszSHJHZTBF?= =?utf-8?B?L0Z5UXhRdlFlNzBPQW92UkUrRHNua0RrenMzcmhDWkNvUEljNDBHdnkrUGVm?= =?utf-8?B?b25PV1EwMHJ4YURQVTFQK0h4QUcybTNxZkRKN3VsekxETytZQXprMVliU0Ux?= =?utf-8?B?ekhQaW9BNDlYOUc0ZVRkd0NNSUdRYUJGN0JrNDJmOEZtS2pucFlpT3IwUE1l?= =?utf-8?B?Z0owcTVrYlgzUFkrVTNxYjU1eGp0a1RWcGM4cEUreUxsSXlYSlBZZ2ZnMEJq?= =?utf-8?B?YmV6SEt1cWJOdkZvVENjQ2d2QnNRTkJzRytCalhpOWRVNmttK0ZGa3V6ajFq?= =?utf-8?B?d0NBc1Y1NlU3L2hRaG9uK2VmWmNaSjU5NTluRFVzSCtXQlN1cExnd2pLYzl6?= =?utf-8?B?aHZCYkVOb01iWDhwSkVSeWZUdytuSXVid0c4UEptWUNEbTdtTUFyRm5BZTJC?= =?utf-8?B?ZGQxZ3FiQjlmRkVCdXdra0xPaXFNbk5LOG9jaERnMkFIV0xOUENlOUVaV0Vn?= =?utf-8?B?bzBZaDNlL1pvZUtHR1h0NkdSSnhMWVQrQkp3TXcvZDkzVi9OVXQ4R0lIbjN4?= =?utf-8?B?ZEZPbU5uenNrRTVYUDlVYkNRaUY3Q0NraVY5YmQ0alc1WFdUbVhkVHVzcWRI?= =?utf-8?B?bnN2TlFNSmZLZGdpbXNNZEhTMXVGZ2h2a2tzS3hpNjVVRmVpQlRJM25nPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR1001MB2147.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(376005)(1800799015);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?U3pVVzVKemU3SUVkSWRzczZrQjFETW9xTUtHTnllSGdhbWVkK3hTYVh4alh5?= =?utf-8?B?NWo3WGFBbkQrS3lNb3N4Y3R4RjVua3JxN3hCVVFDb2FJMkRIZTU4S0E0aTZV?= =?utf-8?B?VE0xUHZoTVJKL2cvbzRKZ0NmTERibXdsSFE2SkR6ZVY0WEZLT01zWW1YdVZL?= =?utf-8?B?ZHp5U3VWd1BJMXV5S0IrOXVvR1FQUnZkczB4b216R3RIblpHcTkwcmZlblpK?= =?utf-8?B?TWVNVzlYQXRqNUw2NlZudllqRDN5eURWN2R5U0ZpdlVXQ2l3bVRrWjZNY2JK?= =?utf-8?B?L0xITHVVc1hETVZmZVdCbFFvQzdYODJqK2NIZ3RhOFd3Q2JrNDV5V21LNXZa?= =?utf-8?B?dnFzK0EySXRuY3hTVkFrcU52dG8yaEVoZVNvOHRRK1lvbTY4SHBEYmVubmpM?= =?utf-8?B?NGVMV3F4ajU4a0ttWnpIUGxsR0RxVDRBUzNtTTZKTFJOV3FrNDNhNnFLeDg5?= =?utf-8?B?cy9Bb2x2bDRlekFYR3QvNEpBUWYzRElKSk9WTTNEUmtnSmduQWxkQ3lSUUdu?= =?utf-8?B?dFZDMnRqeDBtS2JZMVVFN01SOFlNQm5RM0RPT0JFelFwL3lzZTMyVEpQdFM2?= =?utf-8?B?UXNEaFhhUzdENkozcUZVbjZYSk5ZTUIyQ3ljYlJ5NUd6NmE0YUdJakozZ0ti?= =?utf-8?B?SEI2dk5SbkhzVG93bFpRNlZEdGpUSFZJT3REUzc4QXd6T05pdHlOMHlLVTRZ?= =?utf-8?B?ZERPNXUzOVJhdVYzQmcwTjFwczJ2SXVkeUxQeWFXWDIrd3BLSStZTWVxUTQ5?= =?utf-8?B?RWxPZTc0TjNGcjBNV0xUT2J5OXV3elF6Y3F3U1hTOUtIYVErV1RuMkZzWS9E?= =?utf-8?B?dmVyd2grV3A3WHVwSWVoaUFqaldiV25kSnZuRm5NRG0vZUF3R1M5eFA5VXZs?= =?utf-8?B?ajFFWWdtdmJ1U2xpY2t2UzJVbVVwc09leU9DazI5L0YzUUpJVlVHUnM3R0J6?= =?utf-8?B?QlVJV21jd1h4VE5NVzBwVFlFL1VnclZkSUo5aEtBaFNZZzJzS2RNVnBJL3Uz?= =?utf-8?B?OFBMUFVDQW9CbTZUR0ZSMXJQd0gwWGlLZ0dyUjBrLy95UDMvZjJWb2dtSEM4?= =?utf-8?B?SDh2NWF6WFhOUXNZNWNIdVdUNWNiaW5Jb2ltRG1ibktJTG1pRmlIekc5K21Y?= =?utf-8?B?bmtwUXZIS2RabDBhQXJyVi9BRHZlUjZ5UEhlME5JVmJPaFZ4UVAwUWlmT1NJ?= =?utf-8?B?OWdiWG5EejhxNXdsQm10OUJEeUN2MjhSWTlKRmtOWXF0OUpXQ1lVaXNzb0JR?= =?utf-8?B?MVBRQkNyK1NYSkxXK2xJem81VGJHbkF4ZVFLcEpRa0o5RWdkWmJaVWZtWjFq?= =?utf-8?B?dGd3ZC85MHF2dmdIdjhNYkhKS0JGOFhUVndwczBiRWkvdWxCRWFnTXl4VmZu?= =?utf-8?B?NnVoNUdSVHcrc2lzVW41bmkva096NUxrVFlFZ2g5NVlRWHRGS2JkSFhhWkZZ?= =?utf-8?B?T1dyYlEyM1R0cWxyTkdlcnlQeWJ6aHdnZW9PRnY3eURxbHd3MXpsNVZsblpr?= =?utf-8?B?dXcrV3dFTHNldnl0VzVPNUxJWXZqVWxRamE4MndlTnRZU2IyS3Z2QnNRdm90?= =?utf-8?B?aTNhK2hTSU9BN1JjMi9VVFh5NkUyZzlPTFhVSTNja3ZJR094MmFMdC9aUUxJ?= =?utf-8?B?UzJqanBVTmxpU2ljWGpNQURlREZmQmZINE9xelJmOG5rSFR4VC91Y0N1UzZy?= =?utf-8?B?OEdxWlRDZGlwTHdENWV6Ni83OGFtSE0yODVHWUtlczVCNm56SlluQmw4SDBM?= =?utf-8?B?VmdQaVVsOUQxYWUxZ1oxQmtsRDhsK1ZRb0VodlVZb3RQa09aRndiUm4zL0N3?= =?utf-8?B?a2NmcnAzcTJKSTdWZlVuNUc4Mlk4TWdvZllUUm9RbVN1VktCYUhzMEFwa05v?= =?utf-8?B?cGlSK2tRcllYdkJlR3hua3AvK1ZSb0lQb3FKdTZuQkE3WUVzS2NQc1l1Z21M?= =?utf-8?B?RFdPSWpUak9DQTh3aWhmTXA2S1BrSE4zWU8rUWpEZVVHdWJ5MGc0ZUIrSDZu?= =?utf-8?B?N1VRRUpDbWFDcGFKR3RWTGF1Sm00cVdJV2w4TUJIZGxmY2F6YkNFWkgwUFVl?= =?utf-8?B?WCtXLzBMMVhBS2xnRy9LTlBWTGFJS1BWd3VobUh1bVhIK0ZKdkJYcWY4c1d2?= =?utf-8?B?Qk5yK0ZIdXRkZEt0aFdIN09Zcy90Z2pCYUYxeDcyR1E1NUFvQ3hxL0xSWVNu?= =?utf-8?Q?MU3xW205G8Dy7IFAMhcCtvQ=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 8WprhUknf0VddzYJtpoLDlvvp8E5ttmzu0BtD+rY6ODKaFzDu9foxAFsVzZvIneswmpCRndlvk7OwB4tqXRyCFtq3FIw/OMcxItAAyBxSMi/yGX7hVrS11Br30NMiaSsjMZHVV6KGw27EhpMNI7GZ/vqiU4vgDXqt1g+QafQq0g5HRsAU3sTTIEdZWjKCGTkc59g+5jayfZoBlzmT2ka7S6O6IUEyAdoRj8hu4Pcy+bD4VnDsy3i3kwCImMsIQDwDir0LzeCv1LWR4duORGrmeriYfnUCGdY2xLr9+AuFG6sNlhwrbZkAOqDn9VmqEP0YdSBVkznhj2mP51KVNyzDmPg/Q7fmk18mhzNdbPlt9Fi92YSIpDiyHYZDGqoxBBHb27TUQJWtiRl0NvcKWVTB+pre7fP5CO5SFJbrxrybvUOgwvlCoPIUf31qZ8t6Wnjf4OBr+ERS8OvFVulGWWDK6YBARtNkIj+cDB4qrxDkkLFKoCJNksuIMUywCTuOu4T8Ad/4gD9DYH6A8cwFrFCNx20DRw7nPBv/zByfCDnk5GrvvrpKA64zO5MSBncXh9pddA/G6fdztieWCerDdZ0zcselqqSiakcMqujemyXCRU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0fd18c4-3849-44b2-c20b-08dc63280c06 X-MS-Exchange-CrossTenant-AuthSource: BN6PR1001MB2147.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2024 23:58:03.2985 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tZZ1BXen1TdypU0M4pVnYpHlWJFqcjGz9f/iIr2I2jElWJv9rIiTcxp4+ybh6cA9JN6q6ZV64tRKOHthbDA6ig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4596 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-04-22_16,2024-04-22_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 suspectscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2404010000 definitions=main-2404220100 X-Proofpoint-GUID: BT5HlLYwVy575Vb4XHUE-TZSWIDlqnb- X-Proofpoint-ORIG-GUID: BT5HlLYwVy575Vb4XHUE-TZSWIDlqnb- X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,URIBL_BLACK 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: On 4/22/24 08:58, Jens Remus wrote: > If an architecture uses both SFrame RA and FP tracking SFrame assumes > that the RA offset is the 2nd offset and the FP offset is the 3rd offset > following the SFrame FRE. An architecture does not need to store both on > the stack. SFrame cannot represent a FP without RA on stack, since it > cannot distinguish whether the 2nd offset is the RA or FP offset. > > Use an invalid SFrame FRE RA offset value of zero as dummy padding to > represent the FP being saved on the stack when the RA is not saved on > the stack. > > include/ > * sframe.h (SFRAME_FRE_RA_OFFSET_INVALID): New macro defining > the invalid RA offset value used to represent a dummy padding > offset. > > gas/ > * gen-sframe.c (get_fre_num_offsets): Accommodate for dummy > padding RA offset if FP without RA on stack. > (sframe_get_fre_offset_size): Likewise. > (output_sframe_row_entry): Write a dummy padding RA offset > if FP without RA needs to be represented. > > libsframe/ > * sframe-dump.c (dump_sframe_func_with_fres): Treat invalid RA > offsets as if they were undefined. Display them as "u*" to > distinguish them. > > Signed-off-by: Jens Remus > --- > > Notes (jremus): > This patch eliminates 497 occurrences of the warning "skipping SFrame > FDE due to FP without RA on stack" for a build of glibc on s390x. For > libc.so this increases the number of FDEs by 166 and the number of > FREs by 861, while adding 337 dummy padding RA offsets. With a total > of 28157 offsets the dummy padding offsets account for ~1.20 % of the > offsets. While this increase seems small, it does look wasteful. An orthogonal question below... > > SFrame statistics without patch: > > VALUE TOTAL MIN MAX AVG > FDEs: 3478 - - - > FREs/FDE: 14441 1 15 4 > Offsets/FDE: 28157 1 31 8 > 8-bit: 0 0 0 0 > 16-bit: 28157 1 31 8 > 32-bit: 0 0 0 0 > Offsets/FRE: 28157 1 3 1 > 8-bit: - 0 0 0 > 16-bit: - 1 3 1 > 32-bit: - 0 0 0 > > SFrame statistics with patch applied: > > VALUE TOTAL MIN MAX AVG > FDEs: 3644 - - - > FREs/FDE: 15302 1 20 4 > Offsets/FDE: 29944 1 38 8 > 8-bit: 0 0 0 0 > 16-bit: 29944 1 38 8 > 32-bit: 0 0 0 0 > Offsets/FRE: 29944 1 3 1 > 8-bit: - 0 0 0 > 16-bit: - 1 3 1 > 32-bit: - 0 0 0 > O_Padd/FDE: 337 - - 0 > 8-bit: 0 > 16-bit: 337 > 32-bit: 0 > > Note that on s390x the offsets are at minimum 16-bits in size, due to > the mandatory CFA offset being at least 160. > IIUC, all stack layouts supported in the ABI use the offset 160. Is that right ? I am wondering if adjusting the stored offsets in the SFrame section (by decrementing 160 from it) will work ? If yes, we could encode this constant in SFrame aux hdr bytes for s390x. > gas/gen-sframe.c | 50 +++++++++++++++++++---------------------- > include/sframe.h | 9 ++++++-- > libsframe/sframe-dump.c | 4 ++++ > 3 files changed, 34 insertions(+), 29 deletions(-) > > diff --git a/gas/gen-sframe.c b/gas/gen-sframe.c > index 4cc86eb6c815..990b08d87953 100644 > --- a/gas/gen-sframe.c > +++ b/gas/gen-sframe.c > @@ -347,7 +347,9 @@ get_fre_num_offsets (struct sframe_row_entry *sframe_fre) > fre_num_offsets++; > #ifdef SFRAME_FRE_RA_TRACKING > if (sframe_ra_tracking_p () > - && sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK) > + && (sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK > + /* Accommodate for padding RA offset if FP without RA on stack. */ > + || sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK)) > fre_num_offsets++; > #endif > return fre_num_offsets; > @@ -371,9 +373,14 @@ sframe_get_fre_offset_size (struct sframe_row_entry *sframe_fre) > if (sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK) > bp_offset_size = get_offset_size_in_bytes (sframe_fre->bp_offset); > #ifdef SFRAME_FRE_RA_TRACKING > - if (sframe_ra_tracking_p () > - && sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK) > - ra_offset_size = get_offset_size_in_bytes (sframe_fre->ra_offset); > + if (sframe_ra_tracking_p ()) > + { > + if (sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK) > + ra_offset_size = get_offset_size_in_bytes (sframe_fre->ra_offset); > + /* Accommodate for padding RA offset if FP without RA on stack. */ > + else if (sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK) > + ra_offset_size = get_offset_size_in_bytes (SFRAME_FRE_RA_OFFSET_INVALID); > + } > #endif > > /* Get the maximum size needed to represent the offsets. */ > @@ -537,11 +544,19 @@ output_sframe_row_entry (symbolS *fde_start_addr, > fre_write_offsets++; > > #ifdef SFRAME_FRE_RA_TRACKING > - if (sframe_ra_tracking_p () > - && sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK) > + if (sframe_ra_tracking_p ()) > { > - fre_offset_func_map[idx].out_func (sframe_fre->ra_offset); > - fre_write_offsets++; > + if (sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK) > + { > + fre_offset_func_map[idx].out_func (sframe_fre->ra_offset); > + fre_write_offsets++; > + } > + /* Write padding RA offset if FP without RA on stack. */ > + else if (sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK) > + { > + fre_offset_func_map[idx].out_func (SFRAME_FRE_RA_OFFSET_INVALID); > + fre_write_offsets++; > + } > } > #endif > if (sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK) > @@ -1497,25 +1512,6 @@ sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx, > = get_dw_fde_end_addrS (xlate_ctx->dw_fde); > } > > -#ifdef SFRAME_FRE_RA_TRACKING > - if (sframe_ra_tracking_p ()) > - { > - struct sframe_row_entry *fre; > - > - /* Iterate over the scratchpad FREs and validate them. */ > - for (fre = xlate_ctx->first_fre; fre; fre = fre->next) > - { > - /* SFrame format cannot represent FP on stack without RA on stack. */ > - if (fre->ra_loc != SFRAME_FRE_ELEM_LOC_STACK > - && fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK) > - { > - as_warn (_("skipping SFrame FDE due to FP without RA on stack")); > - return SFRAME_XLATE_ERR_NOTREPRESENTED; > - } > - } > - } > -#endif /* SFRAME_FRE_RA_TRACKING */ > - > return SFRAME_XLATE_OK; > } > > diff --git a/include/sframe.h b/include/sframe.h > index 90bc92a32f84..d1a26875b3e2 100644 > --- a/include/sframe.h > +++ b/include/sframe.h > @@ -237,6 +237,9 @@ typedef struct sframe_func_desc_entry > may or may not be tracked. */ > #define SFRAME_FRE_FP_OFFSET_IDX 2 > > +/* Invalid RA offset. Used as padding to represent FP without RA on stack. */ > +#define SFRAME_FRE_RA_OFFSET_INVALID 0 > + > typedef struct sframe_fre_info > { > /* Information about > @@ -288,9 +291,11 @@ typedef struct sframe_fre_info > offset1 (interpreted as CFA = BASE_REG + offset1) > > if RA is being tracked > - offset2 (interpreted as RA = CFA + offset2) > + offset2 (interpreted as RA = CFA + offset2; an offset value of > + SFRAME_FRE_RA_OFFSET_INVALID indicates a dummy padding RA offset > + to represent FP without RA saved on stack) > if FP is being tracked > - offset3 (intrepreted as FP = CFA + offset2) > + offset3 (intrepreted as FP = CFA + offset3) I too noticed this typo recently and have a patch fixing this. > fi > else > if FP is being tracked > diff --git a/libsframe/sframe-dump.c b/libsframe/sframe-dump.c > index 40ea531314ba..3ea4bc327efd 100644 > --- a/libsframe/sframe-dump.c > +++ b/libsframe/sframe-dump.c > @@ -199,6 +199,10 @@ dump_sframe_func_with_fres (sframe_decoder_ctx *sfd_ctx, > if (sframe_decoder_get_fixed_ra_offset (sfd_ctx) > != SFRAME_CFA_FIXED_RA_INVALID) > strcpy (temp, "f"); > + /* If an ABI does track RA offset, e.g. AArch64 and S390, it can be a > + dummy as padding to represent FP without RA being saved on stack. */ > + else if (err[2] == 0 && ra_offset == SFRAME_FRE_RA_OFFSET_INVALID) > + sprintf (temp, "u*"); > else if (err[2] == 0) > { > if (is_sframe_abi_arch_s390 (sfd_ctx) && (ra_offset & 1))