<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
er, I'm just plain wishy-washy.<BR>
If it is just Sparc, I think we're ok.<BR>
I'll see what Itanium requires "later" (I've had two machines for quite some months, been putting it off.)<BR>
 <BR>
 - Jay<BR> <BR>
<HR id=stopSpelling>
From: jay.krell@cornell.edu<BR>To: hosking@cs.purdue.edu<BR>Date: Thu, 26 Nov 2009 18:02:03 +0000<BR>CC: m3commit@elegosoft.com<BR>Subject: Re: [M3commit] CVS Update: cm3<BR><BR>
<STYLE>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Verdana;}
</STYLE>
Also I'm ok with the assembly, just that we should be sure to have only one copy of it per processor and probably in separate .s files. I might put that back before long.<BR> <BR>  - Jay<BR> <BR>
<HR id=ecxstopSpelling>
From: jay.krell@cornell.edu<BR>To: hosking@cs.purdue.edu<BR>Date: Thu, 26 Nov 2009 17:47:59 +0000<BR>CC: m3commit@elegosoft.com<BR>Subject: Re: [M3commit] CVS Update: cm3<BR><BR>
<STYLE>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Verdana;}
</STYLE>
I think the backing store might grow up from the same place that the stack grows down, so it is a matter of finding the higher "stackbase". Anyway Itanium will wait.<BR> <BR> - Jay<BR><BR> <BR>
<HR id=ecxecxstopSpelling>
From: hosking@cs.purdue.edu<BR>Date: Thu, 26 Nov 2009 12:06:28 -0500<BR>To: jay.krell@cornell.edu<BR>CC: m3commit@elegosoft.com<BR>Subject: Re: [M3commit] CVS Update: cm3<BR><BR><BASE>
<DIV><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxecxApple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxecxApple-style-span>
<DIV><FONT class=ecxecxecxApple-style-span color=#0000ff face="'Gill Sans'"><SPAN style="FONT-SIZE: medium" class=ecxecxecxApple-style-span>Hmm.  So, maybe it is OK.  What I was concerned about was whether they were safe to call inside the signal handler.  Also, I note that setjmp/longjmp should also be checked for Itanium -- there we also have to worry about the register backing store which is not even in the stack as I understand it.  Take a look at the Boehm collector sources to see how they handle it there.  I'm OK with putting back setjmp/longjmp on the basis of what you've found....</SPAN></FONT></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DIV></SPAN></SPAN></DIV><BR>
<DIV>
<DIV>On 25 Nov 2009, at 21:03, Jay K wrote:</DIV><BR class=ecxecxecxApple-interchange-newline>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxecxecxApple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=ecxecxecxhmmessage>> longjmp is MT-Level unsafe.<BR><BR>Tony, I see that now in the docs, but doesn't that sound very wierd and incorrect?<BR> <BR> /usr/sfw/bin/gobjdump -D /lib/libc.so > 1.txt<BR>vi 1.txt<BR> <BR>000314fc <_setjmp>:<BR>   314fc:       c0 22 20 00     clr  [ %o0 ]<BR>   31500:       dc 22 20 04     st  %sp, [ %o0 + 4 ]<BR>   31504:       92 03 e0 08     add  %o7, 8, %o1<BR>   31508:       d2 22 20 08     st  %o1, [ %o0 + 8 ]<BR>   3150c:       fc 22 20 0c     st  %fp, [ %o0 + 0xc ]<BR>   31510:       fe 22 20 10     st  %i7, [ %o0 + 0x10 ]<BR>   31514:       81 c3 e0 08     retl<BR>   31518:       90 10 00 00     mov  %g0, %o0<BR><BR><BR>0003151c <_longjmp>:<BR>    151c:       91 d0 20 03     ta  3<BR>   31520:       d4 02 20 04     ld  [ %o0 + 4 ], %o2<BR>   31524:       e0 1a a0 00     ldd  [ %o2 ], %l0<BR>   31528:       e4 1a a0 08     ldd  [ %o2 + 8 ], %l2<BR>   3152c:       e8 1a a0 10     ldd  [ %o2 + 0x10 ], %l4<BR>   31530:       ec 1a a0 18     ldd  [ %o2 + 0x18 ], %l6<BR>   31534:       f0 1a a0 20     ldd  [ %o2 + 0x20 ], %i0<BR>   31538:       f4 1a a0 28     ldd  [ %o2 + 0x28 ], %i2<BR>   3153c:       f8 1a a0 30     ldd  [ %o2 + 0x30 ], %i4<BR>   31540:       fc 02 20 0c     ld  [ %o0 + 0xc ], %fp<BR>   31544:       9c 10 00 0a     mov  %o2, %sp<BR>   31548:       fe 02 20 10     ld  [ %o0 + 0x10 ], %i7<BR>   3154c:       d6 02 20 08     ld  [ %o0 + 8 ], %o3<BR>   31550:       80 90 00 09     tst  %o1<BR>   31554:       12 80 00 03     bne  31560 <_longjmp+0x44><BR>   31558:       9e 22 e0 08     sub  %o3, 8, %o7<BR>   3155c:       92 10 20 01     mov  1, %o1<BR>   31560:       81 c3 e0 08     retl<BR>   31564:       90 10 00 09     mov  %o1, %o0<BR><BR>I'll step through calls to them see if they look the same (network problems..)<BR><BR> - Jay<BR><BR> <BR>> Date: Thu, 26 Nov 2009 01:31:53 +0000<BR>> To:<SPAN class=ecxecxecxApple-converted-space> </SPAN><A href="mailto:m3commit@elegosoft.com">m3commit@elegosoft.com</A><BR>> From:<SPAN class=ecxecxecxApple-converted-space> </SPAN><A href="mailto:hosking@elego.de">hosking@elego.de</A><BR>> Subject: [M3commit] CVS Update: cm3<BR>><SPAN class=ecxecxecxApple-converted-space> </SPAN><BR>> CVSROOT: /usr/cvs<BR>> Changes by: hosking@birch. 09/11/26 01:31:53<BR>><SPAN class=ecxecxecxApple-converted-space> </SPAN><BR>> Modified files:<BR>> cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3<SPAN class=ecxecxecxApple-converted-space> </SPAN><BR>> ThreadPThread.m3<SPAN class=ecxecxecxApple-converted-space> </SPAN><BR>> ThreadPThreadC.c<SPAN class=ecxecxecxApple-converted-space> </SPAN><BR>><SPAN class=ecxecxecxApple-converted-space> </SPAN><BR>> Log message:<BR>> Restore SPARC SaveRegsInStack implementation.<BR>> longjmp is MT-Level unsafe.<BR>> Not sure what this says about setjmp -- Boehm doesn't appear to process any<BR>> context other than the stacks.<BR>><SPAN class=ecxecxecxApple-converted-space> </SPAN><BR></DIV></SPAN></BLOCKQUOTE></DIV><BR>                                           </body>
</html>