Looks good to me. Please go ahead.

2012/1/31 Gang Yu <yugang...@gmail.com>:
> Hi, could a gatekeeper please help review the fix for
> bug941(https://bugs.open64.net/show_bug.cgi?id=941)?
>
> Thanks to David Coakley to provide the cut-down source code and the relevant
> info in the register usage.
>
> below is the info
>
> "
> In 32-bit x86 code, %bpl is not a valid register and the compiler
> should not generate code that references it.  It is one of the 8-bit
> registers added in 64-bit mode (see section 3.1.2 in Vol. 1 of the
> AMD64 Architecture Programmer's Manual for the complete list).
>
> Attached is a small test case derived from p_driver.c.  To reproduce the
> problem, execute the following command:
> opencc -std=gnu99 -m32 -O2 -c min_bpl.c
> "
>
> Analysis:
>
> The bpl (lower 8bit of rbp) is not addressable under 32bit mode. but it is
> generated by the EBO post processing phase( after register allocation).
> The suggested patch is straightforword. We disable such peephole op changes
> in EBO.
>
> --- a/osprey/be/cg/x8664/ebo_special.cxx
> +++ b/osprey/be/cg/x8664/ebo_special.cxx
> @@ -3507,6 +3507,22 @@ BOOL ICMP_Is_Replaced ( OP *op, TN **opnd_tn,
> EBO_TN_INFO **opnd_tninfo )
>      return FALSE;
>    }
> +  // open64.net bug941. under m32, at ebo post process phase
> +  // if the new_top is set to 8bit operator and the GPR is not byte
> addressable
> +  // we disable the change of op.
> +  if ( Is_Target_32bit() &&
> +       EBO_in_peep &&
> +       ( new_top == TOP_cmpi8 ||
> +         new_top == TOP_test8 ||
> +         new_top == TOP_testi8 ||
> +         new_top == TOP_cmp8)) {
> +    const REGISTER_SET regs =
> REGISTER_SUBCLASS_members(ISA_REGISTER_SUBCLASS_m32_8bit_regs);
> +    if ( TN_is_register(new_src0) && !REGISTER_SET_MemberP(regs,
> TN_register(new_src0) ))
> +        return FALSE;
> +    if ( TN_is_register(new_src1) && !REGISTER_SET_MemberP(regs,
> TN_register(new_src1) ))
> +        return FALSE;
> +  }
> +
> Could a gatekeeper please help a review? Thanks
>
>
> Regards
> Gang
>
> ------------------------------------------------------------------------------
> 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

------------------------------------------------------------------------------
Try before you buy = See our experts in action!
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-dev2
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to