![]() |
|
Message-Id: <71700e1e-8265-41da-bc03-6dbaf16e553d@app.fastmail.com> Date: Sun, 17 Aug 2025 06:12:05 +0200 From: Alex Rønne Petersen <alex@...xrp.com> To: "Rich Felker" <dalias@...c.org> Cc: musl@...ts.openwall.com Subject: Re: Re: [PATCH] s390x: manually inline __tls_get_addr in __tls_get_offset On Sun, Aug 17, 2025, at 05:11, Rich Felker wrote: > On Sat, Aug 16, 2025 at 07:37:58PM +0200, Alex Rønne Petersen wrote: >> On Fri, Jan 24, 2025, at 06:12, Alex Rønne Petersen wrote: >> > Calling __tls_get_addr with brasl is not valid since it's a global symbol; doing >> > so results in an R_390_PC32DBL relocation error from lld. We could fix this by >> > marking __tls_get_addr hidden since it is not part of the s390x ABI, or by using >> > a different instruction. However, given its simplicity, it makes more sense to >> > just manually inline it into __tls_get_offset for performance. >> > >> > The patch has been tested by applying to Zig's bundled musl copy and running the >> > full Zig test suite under qemu-s390x. >> > --- >> > src/thread/s390x/__tls_get_offset.s | 20 ++++++++++---------- >> > 1 file changed, 10 insertions(+), 10 deletions(-) >> > >> > diff --git a/src/thread/s390x/__tls_get_offset.s >> > b/src/thread/s390x/__tls_get_offset.s >> > index 8ee92de8..405f118b 100644 >> > --- a/src/thread/s390x/__tls_get_offset.s >> > +++ b/src/thread/s390x/__tls_get_offset.s >> > @@ -1,17 +1,17 @@ >> > .global __tls_get_offset >> > .type __tls_get_offset,%function >> > __tls_get_offset: >> > - stmg %r14, %r15, 112(%r15) >> > - aghi %r15, -160 >> > + ear %r0, %a0 >> > + sllg %r0, %r0, 32 >> > + ear %r0, %a1 >> > >> > - la %r2, 0(%r2, %r12) >> > - brasl %r14, __tls_get_addr >> > + la %r1, 0(%r2, %r12) >> > >> > - ear %r1, %a0 >> > - sllg %r1, %r1, 32 >> > - ear %r1, %a1 >> > + lg %r3, 0(%r1) >> > + sllg %r4, %r3, 3 >> > + lg %r5, 8(%r0) >> > + lg %r2, 0(%r4, %r5) >> > + ag %r2, 8(%r1) >> > + sgr %r2, %r0 >> > >> > - sgr %r2, %r1 >> > - >> > - lmg %r14, %r15, 272(%r15) >> > br %r14 >> > -- >> > 2.43.0 >> >> Friendly ping. > > This was already merged as commit 6af4f25b899e89e4b91f8c197ae5a6ce04bcce7b. Ah, completely missed that somehow. Thanks!
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.