This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
>The question is if it should be __tls_get_addr and not say __tls_get_offset >on s390*... __tls_get_offset would be a better name for it. >Would you be passing %r12 to that routine as another argument >or would it have some assembly wrapper which would do that? We get the best code if __tls_get_offset would just take one parameter. The assembler wrapper would load the got pointer of the calling object from %r12 before going to C code. This requires that a caller of __tls_get_offset needs to setup the got register first. A straightforward implementation of __tls_get_offset would be to add the got pointer to the offset in the first parameter register (add %r12 to %r2), call __tls_get_addr and then substract the TCB pointer from the result (substract %a0 from %r2). If this is too ugly we could add a second argument to __tls_get_offset but that results in slightly worse code in the caller. blue skies, Martin
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |