<HTML><HEAD><TITLE>Samsung Enterprise Portal mySingle</TITLE>
<META content="text/html; charset=euc-kr" http-equiv=Content-Type>
<STYLE id=mysingle_style>P {
        MARGIN-TOP: 5px; FONT-FAMILY: ±¼¸²Ã¼, arial; MARGIN-BOTTOM: 5px; FONT-SIZE: 12pt
}
TD {
        MARGIN-TOP: 5px; FONT-FAMILY: ±¼¸²Ã¼, arial; MARGIN-BOTTOM: 5px; FONT-SIZE: 12pt
}
LI {
        MARGIN-TOP: 5px; FONT-FAMILY: ±¼¸²Ã¼, arial; MARGIN-BOTTOM: 5px; FONT-SIZE: 12pt
}
BODY {
        LINE-HEIGHT: 1.4; MARGIN: 10px; FONT-FAMILY: ±¼¸²Ã¼, arial; FONT-SIZE: 12pt
}
</STYLE>

<META name=GENERATOR content=ActiveSquare></HEAD>
<BODY>
<P>Hi,</P>
<P> </P>
<P>Please consider a patch in attachment, and there is also a sample implementation of __morestack() in attachment.</P>
<P> </P>
<P>This patch is to enable llvm to emit segmented-stack prologue for android platform. The main modification is implementation of ARMFrameLowering::adjustForSegmentedStacks() to inject code into function proglogues that calls __morestack() when required stack size is larger than current space.</P>
<P> </P>
<P>This implementation is only for arm-linux-android that has CP15 register. The stack limit should be saved in the last TLS slot (64th slot in case of android) before function invocations.</P>
<P>Actually, AFAIK, Android platform does not save stack limits into TLS. so we need special mechanism to do it. In other words, you may need another layer that provides that kind of service(push stack limit into TLS) to enable segmented stack on Android platform.</P><!--SP:ily.cho--><!--ily.cho:EP-->
<P> </P>
<P>I think this can be improved in various aspects.</P>
<P>- Improve performace by using less registers and instructions.</P>
<P>- This patch only uses the last TLS slot. but there may be better approaches. (if android platrom becomes manage the stack limits in a particular manner, It'd better to follow that approach)</P>
<P> </P>
<P>I think this patch is not a perfect one, but can be a start point.</P>
<P>If you have opinion about this patch, please let me know.</P>
<P> </P>
<P>ILYONG CHO.</P>
<P><A href="mailto:ilyoan@gmail.com">ilyoan@gmail.com</A></P>
<P> </P>
<TABLE id=confidentialsignimg>
<TBODY>
<TR>
<TD NAMO_LOCK>
<P><IMG border=0 src="cid:Z5JE7EUABGFC@namo.co.kr" width=520></P></TD></TR></TBODY></TABLE></BODY></HTML><img src='http://ext.samsung.net/mailcheck/SeenTimeChecker?do=ba69d47c78c3acc09a9cb41417d5b4029814a171f8ab6671cc39f7d85e914b6c6a34984216ac66b0a34d950c0c4aaac5e1f93dc7001c940a07805447a154a46fcf878f9a26ce15a0' border=0 width=0 height=0 style='display:none'>