<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
The more I think about this, the more I like it.<br><br>However there might be a better option.<br>Gcc has some notion of built-in setjmp.<br>For that matter, maybe using the gcc exception handling mechanism isn't difficult?<br><br><br> - Jay<br><br><hr id="stopSpelling">From: jay.krell@cornell.edu<br>To: m3devel@elegosoft.com<br>Subject: factoring jmpbuf size via alloca(global constant)?<br>Date: Thu, 30 Dec 2010 14:28:31 +0000<br><br>

<meta http-equiv="Content-Type" content="text/html; charset=unicode">
<meta name="Generator" content="Microsoft SafeHTML">
<style>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Tahoma;}

</style>


factoring out jmpbuf size?<br><br><br>Hey, um, how about something like this:<br><br><br>somefile.c:<br> #include <setjmp.h><br> extern const int sizeof_jmpbuf = sizeof(jmp_buf);<br> <br><br>where the frontend would allocate a local jmp_buf,<br>instead issue a call to alloca(sizeof_jmpbuf),<br>actually reading the constant out of the global.<br><br><br>Yes I know this is a deoptimization.<br>It is already slow.<br>We hope hope hope to replace it all anyway.<br><br><br>This would remove lots of target-specific code in Target.m3.<br><br><br>Related, I'm again trying removing from m3core the knowledge<br>of the size/alignment of jmpbuf. Or rather, to see if it really<br>needs it.<br><br><br> - Jay<br><br>                                       </body>
</html>