Would gatekeeper help review this fix? I1,I2,I4 will be sign extend to I8 and store in TCON_I8, So when I1,I2,I4 is negative, TCON_V1 can be 0xffffffff. So the following assertion condition is not correct.
Is_True ( (TCON_v1(*tc)|TCON_v2(*tc)|TCON_v3(*tc)) == 0, ("High order word of %s TCON non zero %x", Mtype_Name(TCON_ty(*tc)), TCON_v1(*tc)) ); break; Fix is for I1,I2,I4 tcon value, assert if TCON_v0 is negative, TCON_V1 is 0xffffffff. case MTYPE_I1: case MTYPE_I2: case MTYPE_I4: + // since I1/I2/I4 is negative and sign extend to I8 + // then store to TCON, tcon_v1 wil be 0xffffffff + if (((mINT32)TCON_v0(*tc)) < 0) { + Is_True ( ((mINT32)TCON_v1(*tc) == ((mINT32)-1)) && + ((TCON_v2(*tc)|TCON_v3(*tc)) == 0), + ("High order word of %s TCON non zero %x", + Mtype_Name(TCON_ty(*tc)), TCON_v1(*tc)) ); + break; + } case MTYPE_U1: case MTYPE_U2: case MTYPE_U4: Regards Shi Hui
check_I4.patch
Description: Binary data
------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel