From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HTML_MESSAGE,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 22349 invoked from network); 8 Jun 2020 01:45:55 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 8 Jun 2020 01:45:55 -0000 Received: (qmail 10186 invoked by uid 550); 8 Jun 2020 01:45:48 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 10137 invoked from network); 8 Jun 2020 01:45:45 -0000 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1591580747; h=Content-Type: MIME-Version: Message-ID: Date: Subject: To: From: Sender; bh=Ye1Mot1SZv1srzxOg93pxHGleOewHFdYBB73a7jhbjE=; b=j70uvjbPCB72PQiqkMo1o9EyVO5IEq7vuIlae1oSKbYs3rtdyULzQ+IAAfyIlI22NPYJSsQ7 MxPuRnVxgJsbmcjZI/Q1WVWm/SBuiA/2cp3VLBzO+9aSVUsIZqMLvmQpTuGpmaIioT8Ua5mT 3n9md0Dzku1n6sUF85rRKFMz+Vg= X-Mailgun-Sending-Ip: 104.130.122.27 X-Mailgun-Sid: WyI1MGQzMyIsICJtdXNsQGxpc3RzLm9wZW53YWxsLmNvbSIsICJiZTllNGEiXQ== Sender: sidneym=codeaurora.org@mg.codeaurora.org DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 42038C433CA Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=none smtp.mailfrom=sidneym@codeaurora.org From: To: Date: Sun, 7 Jun 2020 20:45:11 -0500 Message-ID: <036c01d63d36$73c42110$5b4c6330$@codeaurora.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_036D_01D63D0C.8AEEB550" X-Mailer: Microsoft Outlook 16.0 Thread-Index: AdY9M72N+zNZID0eTOG5X3HNEw+law== Content-Language: en-us Subject: [musl] sigsetjmp This is a multipart message in MIME format. ------=_NextPart_000_036D_01D63D0C.8AEEB550 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 ------=_NextPart_000_036D_01D63D0C.8AEEB550 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

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

        = {

         &= nbsp;      p0 =3D cmp.eq(r1, = #0)

         &= nbsp;      if (p0.new) jump:t = ##setjmp

        = }

        = {  

         &= nbsp;      memw(r0+#64+4) =3D r16  // = save r16 in __ss[0]

         &= nbsp;      memw(r0+#64)   =3D = r31  // save linkregister in __fl

         &= nbsp;      r16 =3D r0

        = }  

         &= nbsp;      call ##setjmp

        = {  

         &= nbsp;      r0  =3D = r16           &nbs= p; // restore r0

         &= nbsp;      r31 =3D memw(r16+#64)   // = restore linkregister

         &= nbsp;      r16 =3D memw(r16+#64+4) // restore = r16 from __ss[0]

        = }

.hidden = __sigsetjmp_tail

        jump = ##__sigsetjmp_tail

 

.size   sigsetjmp, = .-sigsetjmp

------=_NextPart_000_036D_01D63D0C.8AEEB550--