Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Sun, 7 Jun 2020 20:45:11 -0500
From: <sidneym@...eaurora.org>
To: <musl@...ts.openwall.com>
Subject: sigsetjmp

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


Content of type "text/html" skipped

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.