|
Message-ID: <036c01d63d36$73c42110$5b4c6330$@codeaurora.org>
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.