mailing list of musl libc
 help / color / mirror / code / Atom feed
* [musl] sigsetjmp
@ 2020-06-08  1:45 sidneym
  2020-06-08 17:10 ` Rich Felker
  0 siblings, 1 reply; 5+ messages in thread
From: sidneym @ 2020-06-08  1:45 UTC (permalink / raw)
  To: musl

[-- Attachment #1: Type: text/plain, Size: 990 bytes --]

Wanting to make sure I'm reading the requirements correctly.

 

Looks like this routine only needs to save the link register and env, call
setjmp then restore the link register and env followed by the tail call.

 

Hexagon was out of date so I did this:

 

.balign 4

.type sigsetjmp,@function

sigsetjmp:

        // if savemask is 0 sigsetjmp behaves like setjmp

        {

                p0 = cmp.eq(r1, #0)

                if (p0.new) jump:t ##setjmp

        }

        {   

                memw(r0+#64+4) = r16  // save r16 in __ss[0]

                memw(r0+#64)   = r31  // save linkregister in __fl

                r16 = r0

        }   

                call ##setjmp

        {   

                r0  = r16             // restore r0

                r31 = memw(r16+#64)   // restore linkregister

                r16 = memw(r16+#64+4) // restore r16 from __ss[0]

        }

.hidden __sigsetjmp_tail

        jump ##__sigsetjmp_tail

 

.size   sigsetjmp, .-sigsetjmp


[-- Attachment #2: Type: text/html, Size: 4422 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-06-10 17:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-08  1:45 [musl] sigsetjmp sidneym
2020-06-08 17:10 ` Rich Felker
2020-06-09  1:01   ` sidneym
2020-06-09  1:12     ` Rich Felker
2020-06-10 17:44       ` sidneym

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).