Looks good to me. Please commit it. 2012/1/19 朱庆 <zqing1...@gmail.com>: > Hi all, > > Can gatekeeper help review bug943, > http://bugs.open64.net/show_bug.cgi?id=943. thanks. > > Bug943 is the regression caused by r3875. > The common place of all failed cases are: > from the ouput .s file, there are following piece of code: > sete %bl # > movl %ebx,%eax # > > That is a movl after "sete", the right form should be "movzbl %bl,%eax" > The checkin code of r3857 is as follows, it uses Exp_COPY instead of > Exp_COPY_Ext when size>2. But for instruction like "sete" it doesn't clear the > upper bits, obviously r3857 break the orignal fix for bug5621. > Modified: trunk/osprey/be/cg/lra.cxx > =================================================================== > --- trunk/osprey/be/cg/lra.cxx 2011-12-26 08:44:54 UTC (rev 3856) > +++ trunk/osprey/be/cg/lra.cxx 2012-01-13 05:43:31 UTC (rev 3857) > @@ -5518,10 +5518,38 @@ > Set_OP_opnd( op, opnd_idx, result ); > > } else { > + if (TN_size(result) > 2) > + Exp_COPY( opnd, result, &ops ); > + else > // Do sign/zero extend instead of regular copy. Needed for "sete" which > // doesn't clear the upper bits. Bug 5621. > - Exp_COPY_Ext(TN_size(result) == 2 ? TOP_movzwl : TOP_movzbl, > - opnd, result, &ops ); > + Exp_COPY_Ext(TN_size(result) == 2 ? TOP_movzwl : TOP_movzbl, > + opnd, result, &ops ); > + > ... > > > But the code Exp_COPY should not delte, for follwing case: > int main() > { > int inc = 0xFF; > asm volatile ( > "add $1, %0\n\t" > : "+Q" (inc) > : > ); > printf("inc=%d\n",inc); > } > if we use Exp_COPY_Ext to generate result, it will use TOP_movzbl to > store back the result, that will clear the upper 3 byte to 0. > > To fix the problem, that do not break the two condition. I put the > code "Exp_COPY( opnd, result, &ops );" into inline asm condition. > The patch is attached. > > Thanks > zhuqing > > ------------------------------------------------------------------------------ > Keep Your Developer Skills Current with LearnDevNow! > The most comprehensive online learning library for Microsoft developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, > Metro Style Apps, more. Free future releases when you subscribe now! > http://p.sf.net/sfu/learndevnow-d2d > _______________________________________________ > Open64-devel mailing list > Open64-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/open64-devel >
-- Regards, Lai Jian-Xin ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel