From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12olkn2024.outbound.protection.outlook.com [40.92.21.24]) by sourceware.org (Postfix) with ESMTPS id 977AC3858408 for ; Sat, 27 Jan 2024 19:18:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 977AC3858408 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=maskray.me Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=maskray.me ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 977AC3858408 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.92.21.24 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1706383115; cv=pass; b=kN7ma2EjR4hsRbeVTJLFCjFLrYy7dGfJw+mAR48rAD9GaKAYoWH6Uo4xHWuvlvEfQmWtLnvZx1lUNGiepBnOy7f53FqtiLZ3Z70v5aCI/lxIkaPYgeX9U+wlxJYdCEtX1X/OLRFtV387kapQenssXiIMyAUF6uTWJPbqGdYhoaA= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1706383115; c=relaxed/simple; bh=vive891vYMvAzVchcZHjXLNLTKzrpvUDRYPvc4V1qlw=; h=From:Date:Message-ID:Subject:To:MIME-Version; b=jcnBJ+YlkYxFONJgKaKT/OW4RVHrDifdro3MGDMqYrnFtvIB7zujVcTN23r3NuyXkqUBdMyuK0RGapSrYe4WkKlKW7rEMMxr7olVEoAxycKljC3DtLndcAsZHhUseko5//EUONPXM3jCO0VBeUnZ8LUQti8yaI/2ize5VbKZj5g= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XmnBaVltBQGEI8fdzHOrFxNBGr35ro0AxavlV8Snw3Yp1ksijlOmaTOknRhCbE4VWo7DJDiqO1f27sL1CFy6IfDSNzPNXHVBGHvnd8d9fl15wqPndnK7DchX/xLrckQl+nUZKW5wf5wl6Fw2R3JSV/4Kwz+pgAEsCoPPFyK36FOjX1bZhkwhVAX1qqhaijQ5PzPX+GP3QeTq7yvsfcZN9GajZx6ko46oMC11ZaVrBkccXxl60oNjg7eaVjrv+fZXT/JFcj7JWuzq4AFeLSeHVegVf3zVra00JYddHPN3U6Xpt18LKDrwdBGac1vAp+GkYsGkMdxh0O7en0p70rCWeg== 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=nMrfPvpcQhc5u4ibDloUwxY2CFChMLFaIo01Z0TZsVQ=; b=klBAUzMcXK16at3mtnSwpf7w6ggStep29nvbDqemA8WaoExwSjPrwTKU2iToXCO8KAlATIILTwt9m4fxBAJ8dxkR3Xm5yVhE11kLETDNwH0Rd6fyzTaak/f06Gm90zleNlyBzy9wb4gv18ysDAPU2fyl+BQGLUF8j56uJ+1jqxtuIfsYgnUTZa58GqInJ3N7woLuLroKV2BWQJW1sw4kJEZUG0SOl+bMJ8wSXyeYe3dcCIbDDuFDXGSV78PUSYvByFlkoZmY/zzDjNiuXGvCGSJZjoXvqKQD3iJ0YYjbTspbtq3GjtQahFklFzSG4jOsVyKcLEtQfLzRtxEv4h3UXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from DS7PR12MB5765.namprd12.prod.outlook.com (2603:10b6:8:74::19) by CH3PR12MB8533.namprd12.prod.outlook.com (2603:10b6:610:159::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.30; Sat, 27 Jan 2024 19:18:30 +0000 Received: from DS7PR12MB5765.namprd12.prod.outlook.com ([fe80::fa25:6d58:7ae9:9c0b]) by DS7PR12MB5765.namprd12.prod.outlook.com ([fe80::fa25:6d58:7ae9:9c0b%5]) with mapi id 15.20.7228.022; Sat, 27 Jan 2024 19:18:30 +0000 X-Gm-Message-State: AOJu0Yy/YC4J3UlG+PZaCwCQI4rGO827lVFh/m3Emoxl4Xbn308tXwnI VC6uZIRE5Fki7OB0/I4ah2qz+uYfg2eyCAMICp9a/UoeAUo7d2uVXsviHq4bWmHS77o9nLqeqrp 1zEqq4Aedlj9gyIiI2OhezrW/hCg= X-Google-Smtp-Source: AGHT+IEZvdMbKPQAX4QANQhhDDWIPDg9bM8q7Iqc+TSoqeXWNQocBMdKja5sdHqsFF/G0Ai+arltygnbp2yHfZ/rsCM= X-Received: by 2002:a1f:f289:0:b0:4bd:6486:16fc with SMTP id q131-20020a1ff289000000b004bd648616fcmr489840vkh.6.1706383107778; Sat, 27 Jan 2024 11:18:27 -0800 (PST) References: <20231222114243.1836112-1-cailulu@loongson.cn> <2f3cc40c-b7fb-c432-677d-d9719d8fe827@loongson.cn> In-Reply-To: <2f3cc40c-b7fb-c432-677d-d9719d8fe827@loongson.cn> From: Fangrui Song Date: Sat, 27 Jan 2024 11:18:17 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v5 0/5] Add support for TLS Descriptors (TLSDESC) To: Lulu Cai Cc: binutils@sourceware.org, xuchenghua@loongson.cn, chenglulu@loongson.cn, liuzhensong@loongson.cn, mengqinggang@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, luweining@loongson.cn, wanglei@loongson.cn, hejinyang@loongson.cn Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-TMN: [skca3J23q3N4GKtSpyhFSbDduowofYws] X-ClientProxiedBy: BY5PR13CA0019.namprd13.prod.outlook.com (2603:10b6:a03:180::32) To DS7PR12MB5765.namprd12.prod.outlook.com (2603:10b6:8:74::19) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5765:EE_|CH3PR12MB8533:EE_ X-MS-Office365-Filtering-Correlation-Id: e3add435-f9ea-42db-f80b-08dc1f6cbee0 X-MS-Exchange-SLBlob-MailProps: vuaKsetfIZnBhS1v2ylvC9antNCSZCeqMqMJO2ysIOoePWISjGy9vxV/DRdI25IVHBNnJj3QHbe8LbZR7yfpa0DaeEKMXGc8SDEv/SZdvEqxQKofCNm9BDI9BUL3AFIXqN6r1u/bKmR0m5KmNWfWoAvLvXFq4OO+xPv2CkYZE5cpWCzZ03tvXYGtZlo4l0cYCxY9h/mzid+++NtlMx1K1+87WvBDA0SUMvsTUd7JdEOhC+YEY/Y6VN3YKzB0iLKol4mXVt+aWhwvoYaxfMJuejEhedLqsZYnKSy69SbtxrF0yMAbhaDFy+qV/0iHxR62aTpeUcaTcVl5uBVktN9tOxdppxx8k9cST+6JVv6R+W8axDAjITx5cSqW09HtDMfxq/QxaDb06DREB6s6rq7qMp4NU3fupPjdNOn2iHQPr/cpa+rEdW6UV1DSHi6GgH4XNj0qhh+05MvR2VOf/2TgBpBEdHCuqpnnJEfHDzZneeSHJ9LmCqwvKdeimGSjhNzqzLLKF/4SrS6QHfs2+7oF6UrX+fP58imfYucRoGQSkknyEesp4fEjTlBdYCc8my4lh/fat/LxaC1LR3XC8d+NJiXEOHrOtgQ6xKh/hGWGLhy0UAAgPIrXNr2HGKTZMhLJY7544VbRlYXsIP2J8wItycKHHxDbmSQ6ZHjlPkb8fO08Gp5XcjXJ7YPzr4YtW449AqNc+f3UhmkmV9c2URj6moaivAfmSHJq0NpeUvp0swCtGrbfIGvCuAyWf5TokgfNjLd3UN5K04xjSf2YiIC4IoSzM9lneFGiMdLbWsNPZzNDJwUgmFkvZL0GNP3F9FtO X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: s8C5h3G9Zb+UCc6/vfrLJSarstpHzC1NrqBnMKYcwiqq0Jqzzo5RnHIj9lZdmEihiY1Xs/C58gyj59+TO/2QjfEzVpQabCUUGiy0zeTplI5EeFbwkdpOwjwH+1M+1G6WnrDRpSIxjoV60SJfbfA+TD4cEVbLJxqsMEV8G6ia9wptcmtaG5wPWCLCg5k4Xw8lzeFV5tUaTx0qsvSZe+mHjVgUDLxg/kZ5cghy3IV2Fku41nhHsg+4g20OovAUY3iLv4La5kloQC0BOJnxk6RC9eh5AJOQsK5bb+TK5twRf/gkaqO1rfjShxHpjv4YKS5IJ44ecGmq+PnkYgHgfrT7lRKg4BSD2Sl8ImYFzStvRkq2Cv+f5fyGHjEL0zWLZS6NxB6CWQIuBOgsh5d//q5mgQWl3NL2R8YFs+zHMsKEhpSEElRnXzppRsc5FLU/C0tKRMV9O43NIWdc0k9oEj0XJlB1W+LOMXTnV4S/ytGm1yXITJxYbspk6jl46+dYLr3Q0sEATfLOoBaXfWgdZlS0H2c6gJXp1xeKu6VdVASPNlrUWDCE1SUR00hLhUbnEEKPe9YLuYTr+9y2A6HZZWkYnx/LH6RnslGwYhNqlorREuQ= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UW1jRHRoMURKdzVNVzE3Y2I5Q1h3Z2ZHMzhUZE9MWVFtMzNmK2NjYUFoUG50?= =?utf-8?B?Q0FmNUlQMmVuQ3VvZ3h0WS9LQ3c2YytXZk82c3gwYmZxQ0lMQ0M4QVpTTEl0?= =?utf-8?B?dDJYbnBmQ2ptNHRHM3A0SDUyVkYxSk9Sa2NKWDVGd1dzOE9GUllrN2pWS21t?= =?utf-8?B?TnhQdnRpNUpuRUlJZVJjeGZxa094MWI0Ty90UFpPRWVmcDhHa1F0SGh2U2JJ?= =?utf-8?B?Qm8ySG56U3JFS0tpUnNZWVZnZHdFbHN3eVU1RjY1ZmprY0hUS1g4NU0xMU1j?= =?utf-8?B?ZEprbG1FNDNoUzhFaGZZeFF4YVZ0cnYvQ1FxUVBYOHI5YkhYQmYrUlEvYk9Z?= =?utf-8?B?bTlpV2FMZkFGTk9RVlRDRVZuWWpsbnNmZFhxS1V0UGM4SkZ4Z2pvNU5Ka1JL?= =?utf-8?B?ZzBBNkFmYlc2dmJwSzF1ekMrNmplQVVJQ2haYkFUZ2NyM3gwNEV5UmZNMVFU?= =?utf-8?B?amsrTVlveXRZMlNacWorRURIeUtCT0dwOEJWcU1IRmhpMjNtcHF4aVdud3g0?= =?utf-8?B?WXJSemlLb0tITnZibWlMaXcxVVhkdnhvWjVQQ2VoNkhqajhiS0tYZ2E2UlUr?= =?utf-8?B?VHVGNSsvZmlvNVN2eFgzajI3dGt2d0prRDBLT3Nma2hiaFQxVEh4SHB2N1kr?= =?utf-8?B?VU5OKzkwdW9uSmpPVk9FaXpidXd3dkZjYjFGenRxWi9Jc1dRNEw4RUxMckVh?= =?utf-8?B?eThYRjhtOWlOK1N1U1pjUkRTak5HRU5xYThncWJSd3czem5Jci9wVzVLMXkr?= =?utf-8?B?UE5tQmdaczJQWEdmSkwvL3VVTzBBWndTTlN1VjJRc2hWMGxrSlhqKzFNTGlu?= =?utf-8?B?dm5sYUtoNEtKYzRvY3R2akdqNDNOWWE4WnBoNFRrdTczeWs0dm55SWJsUHJy?= =?utf-8?B?UXhEczltakNwQmdiRGx0dlBvTW1kbkFCV08wRzZXNWk0WlpHV0R4SEM4d3Rn?= =?utf-8?B?ckFNNTJRK3VNbExhV0haYXNlZXRHWm9uaWtqRlNNcGZUb3lVKzRnS1VQRVlw?= =?utf-8?B?Szh5eEM0d2ErWExYMkQxZ3BCd1czZVZZUzVKR1JUbXorWVR0M1lEZHJZT2s4?= =?utf-8?B?WlFUZkZoeTVKclRYZmlLTDJLaE9rQVpSK1ROUDh2WUVJakRJcW05UGg0akdF?= =?utf-8?B?cWlSWFEvTFo0SHBOWUY3cHlTU1RDMmxnNXl5MGc2bzN4WUZrSWJwS3Rkei9S?= =?utf-8?B?elFlb2ZULzN3R2wvd293eXhKNDVDdkhXRFJFMVVCRDNiWHJBNGMzOURqL2lH?= =?utf-8?B?eFcwWjlSeVFnajZSRVVuVkJKWlZXYXhZSGdhTGJpWW5BQUY5NnhnOVZ6cmQy?= =?utf-8?B?RGpOTjBuTzdvSEp1VjdHK0pmNXNqVkVBSFM5RnhFUUVqRlBzNnN3TkpmSWpk?= =?utf-8?B?YXVJekNLWFZmRjJjUEdGb3BLZVpMblJCQ29lMS9abktudDVWdms2OFdEbkpR?= =?utf-8?B?K1BiLzY1NGF4MGJrN0V2VmpsN05kOWxpRU0zZVZvS3JhL0ExeXdmb3ZRSElw?= =?utf-8?B?VTFmZzJIb24vd1RucE1pU0MyalRDRXVGYUlscy9iaUZZSTl2eExQQk0zV1Y2?= =?utf-8?Q?rHwobG8a/Dur5/G/FWJk4NAPomeCbTx4HTJ65yQt8W2zTW?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-71ea3.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: e3add435-f9ea-42db-f80b-08dc1f6cbee0 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5765.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2024 19:18:30.1607 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8533 X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,KAM_INFOUSMEBIZ,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no 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 Fri, Jan 26, 2024 at 11:26=E2=80=AFPM Lulu Cai wro= te: > > On 1/27/24 10:54 AM, Fangrui Song wrote: > > On Fri, Dec 22, 2023 at 3:42=E2=80=AFAM Lulu Cai = wrote: > >> v5 mainly changes the relocation name and adds relocation > >> for immediate value field of ld.w/d. > >> > >> 1. R_LARCH_TLS_DESC_ADD_PC_LO12 -> R_LARCH_TLS_DESC_PC_LO12. > >> R_LARCH_TLS_DESC_LD(113) -> R_LARCH_TLS_DESC_LD(119) > >> > >> 2. Added 32 abs test case. > >> > >> 3. Added R_LARCH_TLS_DESC_LD relocation to the immediate field of > >> the ld.w/d instruction. > >> > >> Such as: > >> pcalau12i $r4,%desc_pc_hi20(var) > >> addi.d $r4,$r4,%desc_pc_lo12(var) > >> ld.d $r1,$r4,0 -> ld.d $r1,$r4,%desc_ld(var) > >> jirl $r1,$r1,%desc_call(var) > >> addi.d $a0,$a0,$tp > >> > >> Lulu Cai (4): > >> LoongArch: Add new relocs and macro for TLSDESC. > >> LoongArch: Add support for TLSDESC in ld. > >> LoongArch: Add tls transition support. > >> LoongArch: Add testsuit for DESC and tls transition and tls > >> relaxation. > >> > >> mengqinggang (1): > >> LoongArch: Add support for TLS LD/GD/DESC relaxation > >> > >> bfd/bfd-in2.h | 15 + > >> bfd/elfnn-loongarch.c | 552 ++++++++++++++++= +- > >> bfd/elfxx-loongarch.c | 270 ++++++++- > >> bfd/libbfd.h | 15 + > >> bfd/reloc.c | 36 ++ > >> gas/config/tc-loongarch.c | 20 +- > >> gas/testsuite/gas/loongarch/macro_op.d | 128 ++-- > >> gas/testsuite/gas/loongarch/macro_op_32.d | 120 ++-- > >> .../gas/loongarch/macro_op_large_abs.d | 160 ++--- > >> .../gas/loongarch/macro_op_large_pc.d | 160 ++--- > >> gas/testsuite/gas/loongarch/tlsdesc_32.d | 28 + > >> gas/testsuite/gas/loongarch/tlsdesc_32.s | 12 + > >> gas/testsuite/gas/loongarch/tlsdesc_32_abs.d | 26 + > >> gas/testsuite/gas/loongarch/tlsdesc_32_abs.s | 8 + > >> gas/testsuite/gas/loongarch/tlsdesc_64.d | 28 + > >> gas/testsuite/gas/loongarch/tlsdesc_64.s | 12 + > >> .../gas/loongarch/tlsdesc_large_abs.d | 34 ++ > >> .../gas/loongarch/tlsdesc_large_abs.s | 12 + > >> .../gas/loongarch/tlsdesc_large_pc.d | 38 ++ > >> .../gas/loongarch/tlsdesc_large_pc.s | 17 + > >> include/elf/loongarch.h | 26 +- > >> include/opcode/loongarch.h | 6 + > >> ld/testsuite/ld-loongarch-elf/desc-ie.d | 16 + > >> ld/testsuite/ld-loongarch-elf/desc-ie.s | 18 + > >> ld/testsuite/ld-loongarch-elf/desc-le.d | 15 + > >> ld/testsuite/ld-loongarch-elf/desc-le.s | 14 + > >> ld/testsuite/ld-loongarch-elf/desc-norelax.d | 16 + > >> ld/testsuite/ld-loongarch-elf/desc-norelax.s | 5 + > >> ld/testsuite/ld-loongarch-elf/desc-relax.d | 15 + > >> ld/testsuite/ld-loongarch-elf/desc-relax.s | 5 + > >> ld/testsuite/ld-loongarch-elf/ie-le.d | 13 + > >> ld/testsuite/ld-loongarch-elf/ie-le.s | 11 + > >> .../ld-loongarch-elf/ld-loongarch-elf.exp | 9 + > >> ld/testsuite/ld-loongarch-elf/macro_op.d | 391 +++++++------ > >> ld/testsuite/ld-loongarch-elf/macro_op_32.d | 120 ++-- > >> ld/testsuite/ld-loongarch-elf/tlsdesc-dso.d | 56 ++ > >> ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s | 65 +++ > >> opcodes/loongarch-opc.c | 54 ++ > >> 38 files changed, 1980 insertions(+), 566 deletions(-) > >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_32.d > >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_32.s > >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_32_abs.d > >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_32_abs.s > >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_64.d > >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_64.s > >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_abs.d > >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_abs.s > >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_pc.d > >> create mode 100644 gas/testsuite/gas/loongarch/tlsdesc_large_pc.s > >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-ie.d > >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-ie.s > >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-le.d > >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-le.s > >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-norelax.d > >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-norelax.s > >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-relax.d > >> create mode 100644 ld/testsuite/ld-loongarch-elf/desc-relax.s > >> create mode 100644 ld/testsuite/ld-loongarch-elf/ie-le.d > >> create mode 100644 ld/testsuite/ld-loongarch-elf/ie-le.s > >> create mode 100644 ld/testsuite/ld-loongarch-elf/tlsdesc-dso.d > >> create mode 100644 ld/testsuite/ld-loongarch-elf/tlsdesc-dso.s > >> > >> -- > >> 2.43.0 > >> > > Technically you could define R_LARCH_TLS_DESC to be shared by 32-bit > > and 64-bit arches, like RELATIVE/IRELATIVE/JUMP_SLOT. > > That said, I see that the change has been made. > > > Yes that's totally fine. The main reason here is because other TLS types = of > > dynamic relocation have 32-bit and 64-bit, so DESC is distinguished. > > > > It seems that la.tls.desc expands to 4 instructions with 2 > > R_LARCH_RELAX relocations? > > I think one R_LARCH_RELAX is sufficient to implement relaxation. > > > > RISC-V has a similar problem and I have suggested > > https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/421 > > > This is done because the current psABI stipulates that the instruction > > to be deleted must be followed by an R_LARCH_RELAX relocation. > > In the future, we will try to implement la.tls.desc with four instruction= s > > using only one R_LARCH_RELAX implementation. Thanks for the answer. I am looking forward to one fewer R_LARCH_RELAX.