Thanks. Can you make the test case a standalone preprocessed file (using -E)?
David On Wed, Aug 24, 2011 at 2:26 PM, Oleg Smolsky <oleg.smol...@riverbed.com> wrote: > On 2011/8/24 13:02, Xinliang David Li wrote: >>> >>> On 2011/8/23 11:38, Xinliang David Li wrote: >>>> >>>> Partial register stall happens when there is a 32bit register read >>>> followed by a partial register write. In your case, the stall probably >>>> happens in the next iteration when 'add eax, 0Ah' executes, so your >>>> manual patch does not work. Try change >>>> >>>> add al, [dx] into two instructions (assuming esi is available here) >>>> >>>> movzx esi, ds:data8[dx] >>>> add eax, esi >>>> >>> I patched the code to use "movzx edi" but the result is a little clumsy >>> as >>> the loop is based on the virtual address rather than index. >> >> my bad -- I did copy& paste without making it precise. > > No worries. The fragment did fit into the padding :) > >>> So, this is one test out of the suite. Many of them degraded... Are you >>> guys >>> interested in looking at other ones? Or is there something to be fixed in >>> the register allocation logic? >> >> File bugs --- the isolated examples like this one would be very helpful in >> the bug report. > > Done: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50182 > > Regards, > Oleg. >