<br><br><div class="gmail_quote">On Thu, Mar 1, 2012 at 8:47 AM, Jim Grosbach <span dir="ltr"><<a href="mailto:grosbach@apple.com">grosbach@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Why do you want to disable the constant island pass? That seems rather odd.<br>
-Jim<br>
<div><div class="h5"></div></div></blockquote><div><br></div><div>Hi Jim! </div><div><br></div><div>NaCl has strict instruction bundling requirements for .text. And  we expand the .text with guard instructions for each branch and memory access.</div>

<div>We actually did spend quite a lot of effort to get constant islands to work given that constraint, but our hacks on the CP pass were never very stable, and caused a lot of headaches. </div><div>Instead, what we do downstream is to place the constants in .rodata and use a pic movw/movt to materialize the address. </div>

<div><br></div><div>Thanks!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">On Mar 1, 2012, at 8:45 AM, Jason Kim <<a href="mailto:jasonwkim@google.com">jasonwkim@google.com</a>> wrote:<br>


<br>
> Hello everyone<br>
><br>
> Please find enclosed a sequence of three patches, for the goal of disabling constant island pass, which is required for Native Client.<br>
><br>
> These patches are based off of r147863, so its pretty far back, but I am posting these mainly to get feedback on certain glitches in ARM/thumb2 tablegen that we ran into when we tried to port our local mods (which operate in ARM mode perfectly well) to Thumb2 mode.<br>


><br>
> These patches are by no means "functional", but I deem it to be both small enough, AND substantial enough to show our intention/plan for disabling Constant Island Pass - and most importantly, get feedback from the ARM/Thumb2 tablegen experts on exactly what the right way to do this is:<br>


> These are distilled subsets of our current set of local mods, and are meant as 'for review only' (for now at least). Eventually, we would like to upstream as much of these as possible, but that requires a lot of splitting of our local mods into digestible chunks.<br>


> Please consider these patches as a first in a potentially long sequence of hopefully coherent split of NaCl localmods for upstreaming purposes.<br>
><br>
> The most questionable bits are in  the second patch, where  the Thumb2 ISEL match to properly lower a constant pool address to a pc relative movw/movt never happens.<br>
> Matter of fact, the pci pattern in the multiclass T2I_ld seems to be the culprit.  Currently, in our local repository, what we do is to generate a NaCl version of the pseudo for the *pci expansion and custom expand them to the required movw/movt.<br>


><br>
> This methodology, although functional, seems somehow 'dirty' and we were wondering if there is a better way to do this. Certainly, in ARM codegen, such hackery was NOT necessary.<br>
><br>
> The patches themselves contain comments which will hopefully explain some more of the details.<br>
><br>
> Thank you<br>
><br>
> -Jason<br>
><br>
><br>
><br>
</div></div>> <disable-constantisland-demo-01.patch><disable-constantisland-demo-02.patch><disable-constantisland-demo-03.patch><br>
<br>
</blockquote></div><br>