+===========+ |P/ECE¸¦µæ¼¼| +===========+ P/ECE¸¦µæµ­Ï¿ 2013ǯ ==================== * Tue Jul 30 00:00:00 JST 2013 Naoyuki Sawa - gcc33 ¾ò·ï±é»»»Ò¤ÎºÇŬ²½¥Ð¥° P/ECE³«È¯´Ä¶­¤ÎC¥³¥ó¥Ñ¥¤¥égcc33¤Ë¤Ï¡¢¾ò·ï±é»»»Ò¤ÎºÇŬ²½¥Ð¥°¤¬¤¢¤ê¤Þ¤¹¡£ ¡Ø¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Î¾ò·ï±é»»»Ò¤ò¥Í¥¹¥È¤¹¤ë¤È¡¢´Ö°ã¤Ã¤¿·ë²Ì¤òÊÖ¤¹¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¡Ù¤È¤¤¤¦¥Ð¥°¤Ç¤¹¡£ °Ê²¼¤Ë¡¢ºÆ¸½ÊýË¡¤È¡¢²óÈòÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ ¢£ºÆ¸½¥×¥í¥°¥é¥à ¥À¥¦¥ó¥í¡¼¥É¤Ï¤³¤Á¤é¡§¡¡http://www.piece-me.org/archive/tropbug-20030730-src.zip //¢¡¥³¥ó¥Ñ¥¤¥ëÊýË¡ //¨­ºÇŬ²½¥ª¥×¥·¥ç¥ó¡Ö-O¡×¡Ö-O1¡×¡Ö-O2¡×¤Î¤É¤ì¤«¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤¹¡£ //¨­ºÇŬ²½¥ª¥×¥·¥ç¥ó¡Ö-O¡×¡Ö-O1¡×¡Ö-O2¡×¤É¤ì¤â»ØÄꤻ¤º¤Ë¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð¡¢ºÇŬ²½¥Ð¥°¤ÏȯÀ¸¤·¤Þ¤»¤ó¡£ #include unsigned char vbuff[DISP_X * DISP_Y]; //¢£´Ø¿ô»ÅÍÍ¡§a¤¬0¤Ç¤Ê¤±¤ì¤Ða¤òÊÖ¤¹¡£b¤¬0¤Ç¤Ê¤±¤ì¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ¹¤ë ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test11(int a, int b, int c) { int x; x = a ? a : b ? b : c; return x; } //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test12(int a, int b, int c) { int x; x = (a != 0) ? a : (b != 0) ? b : c; return x; } //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤Ë±¦·ë¹ç¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test13(int a, int b, int c) { int x; x = a ? a : (b ? b : c); return x; } //¢¢GCC³ÈÄ¥µ¡Ç½¤ò»ÈÍѤ¹¤ë ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ int test14(int a, int b, int c) { int x; x = a ? : b ? : c; return x; } //¢¢ifʸ¤ò»ÈÍѤ¹¤ë ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ int test15(int a, int b, int c) { int x; if(a) { x = a; } else if(b) { x = b; } else { x = c; } return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬0Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0Ķ²á¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test21(int a, int b, int c) { int x; x = (a > 0) ? a : (b > 0) ? b : c; return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬1°Ê¾å¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬1°Ê¾å¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test31(int a, int b, int c) { int x; x = (a >= 1) ? a : (b >= 1) ? b : c; return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬1Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬1Ķ²á¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ int test41(int a, int b, int c) { int x; x = (a > 1) ? a : (b > 1) ? b : c; return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬0̤Ëþ¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0̤Ëþ¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test51(int a, int b, int c) { int x; x = (a < 0) ? a : (b < 0) ? b : c; return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬-1°Ê²¼¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬-1°Ê²¼¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ int test61(int a, int b, int c) { int x; x = (a <= -1) ? a : (b <= -1) ? b : c; return x; } //¢£´Ø¿ô»ÅÍÍ¡§a¤¬0Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0̤Ëþ¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ //¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë int test71(int a, int b, int c) { int x; x = (a > 0) ? a : (b < 0) ? b : c; return x; } void pceAppInit() { //°ìÈÌŪ¤Ê½é´ü²½ pceLCDDispStop(); pceLCDSetBuffer(vbuff); pceLCDDispStart(); //²èÌÌ¥¯¥ê¥¢ memset(vbuff, 0, sizeof vbuff); pceFontSetPos(0, 0); pceFontSetType(2); //¥Æ¥¹¥È´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹ pceFontPrintf("test11 %4d\n", test11(0, 123, 0)); pceFontPrintf("test12 %4d\n", test12(0, 123, 0)); pceFontPrintf("test13 %4d\n", test13(0, 123, 0)); pceFontPrintf("test14 %4d\n", test14(0, 123, 0)); pceFontPrintf("test15 %4d\n", test15(0, 123, 0)); pceFontPrintf("test21 %4d\n", test21(0, 123, 0)); pceFontPrintf("test31 %4d\n", test31(0, 123, 0)); pceFontPrintf("test41 %4d\n", test41(0, 123, 0)); pceFontPrintf("test51 %4d\n", test51(0, -123, 0)); pceFontPrintf("test61 %4d\n", test61(0, -123, 0)); pceFontPrintf("test71 %4d\n", test71(0, -123, 0)); //²èÌÌžÁ÷ pceLCDTrans(); } void pceAppProc(int count) { //SELECT¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿¤é½ªÎ»¤·¤Þ¤¹ if(pcePadGet() & TRG_SELECT) { pceAppReqExit(0); } } void pceAppExit() { //²¿¤â¤·¤Þ¤»¤ó } ¢£ºÆ¸½ÊýË¡ ¤Þ¤º¡¢ºÆ¸½¥×¥í¥°¥é¥à¤ò¡¢ºÇŬ²½Ìµ¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¼Â¹Ô¤·¤Æ¤ß¤Þ¤¹¡£ ¼Â¹Ô·ë²Ì¤Ï¡¢¤³¤¦¤Ê¤ê¤Þ¤¹: http://www.piece-me.org/tropbug_ok.png ¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¯ ¨­test11 123¨­ ¨­test12 123¨­ ¨­test13 123¨­ ¨­test14 123¨­ ¨­test15 123¨­ ¨­test21 123¨­ ¨­test31 123¨­ ¨­test41 123¨­ ¨­test51 -123¨­ ¨­test61 -123¨­ ¨­test71 -123¨­ ¨±¨¬¨¬¨¬¨¬¨¬¨¬¨° ºÇŬ²½Ìµ¤·¤Î¼Â¹Ô·ë²Ì¤¬¡¢Àµ¤·¤¤¼Â¹Ô·ë²Ì¤Ç¤¹¡£ ¼¡¤Ë¡¢ºÆ¸½¥×¥í¥°¥é¥à¤ò¡¢ºÇŬ²½Í­¤ê¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¼Â¹Ô¤·¤Æ¤ß¤Þ¤¹¡£ ¼Â¹Ô·ë²Ì¤Ï¡¢¤³¤¦¤Ê¤ê¤Þ¤¹¡£ http://www.piece-me.org/tropbug_ng.png ¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¯ ¨­test11 0¨­ ¨­test12 0¨­ ¨­test13 0¨­ ¨­test14 123¨­ ¨­test15 123¨­ ¨­test21 0¨­ ¨­test31 0¨­ ¨­test41 123¨­ ¨­test51 0¨­ ¨­test61 -123¨­ ¨­test71 0¨­ ¨±¨¬¨¬¨¬¨¬¨¬¨¬¨° ºÇŬ²½Í­¤ê¤Î¼Â¹Ô·ë²Ì¤Ï¡¢°ìÉô¤¬°ã¤Ã¤Æ¤¤¤Þ¤¹¡£ ºÇŬ²½Ìµ¤·¤ÈºÇŬ²½Í­¤ê¤È¤Ç¡¢¼Â¹Ô·ë²Ì¤¬Æ±¤¸¤Ê¤Î¤Ï¡¢test14,test15,test41,test61 ¤Ç¤¹¡£ ºÇŬ²½Ìµ¤·¤ÈºÇŬ²½Í­¤ê¤È¤Ç¡¢¼Â¹Ô·ë²Ì¤¬°Û¤Ê¤ë¤Î¤Ï¡¢test11,test12,test13,test21,test31,test51,test71 ¤Ç¤¹¡£ Á°¼Ô¤¬¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤¥±¡¼¥¹¡¢¸å¼Ô¤¬¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë¥±¡¼¥¹¤È¤Ê¤ê¤Þ¤¹¡£ ¢£ºÇŬ²½¥³¡¼¥É ºÆ¸½¥×¥í¥°¥é¥à¤òºÇŬ²½Í­¤ê¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿»þ¤Ë¡¢gcc33¤¬À¸À®¤¹¤ë¥¢¥»¥ó¥×¥é¥³¡¼¥É¤ò¡¢°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£ (¸«°×¤µ¤Î¤¿¤á¤Ë¡¢À°·Á¤·¤Æ¥³¥á¥ó¥È¤òÄɵ­¤·¤Æ¤¢¤ê¤Þ¤¹¡£¥Æ¥¹¥È´Ø¿ô°Ê³°¤Ï´Ø·¸Ìµ¤¤¤Î¤Ç¡¢¾Ê¤¤¤Æ¤¢¤ê¤Þ¤¹¡£) ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬0¤Ç¤Ê¤±¤ì¤Ða¤òÊÖ¤¹¡£b¤¬0¤Ç¤Ê¤±¤ì¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ¹¤ë ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test11: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a != 0) { goto __L11; } jrne __L11 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrne __L11 ;// if(a != 0) { goto __L11; } ;//¥Ð¥°¡£¡Öif(b != 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L11: ;// ret ;// return x; ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test12: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a != 0) { goto __L12; } jrne __L12 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrne __L12 ;// if(a != 0) { goto __L12; } ;//¥Ð¥°¡£¡Öif(b != 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L12: ;// ret ;// return x; ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤Ë±¦·ë¹ç¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test13: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a != 0) { goto __L13; } jrne __L13 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrne __L13 ;// if(a != 0) { goto __L13; } ;//¥Ð¥°¡£¡Öif(b != 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L13: ;// ret ;// return x; ;//¢¢GCC³ÈÄ¥µ¡Ç½¤ò»ÈÍѤ¹¤ë ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ test14: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a != 0) { goto __L14; } jrne __L14 ;// ld.w %r10,%r14 ;// x = c; cmp %r13,0 ;// if(b == 0) { goto __L14; } jreq __L14 ;// ld.w %r10,%r13 ;// x = b; __L14: ;// ret ;// return x; ;//¢¢ifʸ¤ò»ÈÍѤ¹¤ë ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ test15: ld.w %r10,%r12 ;// x = a; ld.w %r12,%r14 ;// y = c; ;//´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤¬¡¢ÌµÂ̤ʥ³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤ë cmp %r10,0 ;// if(a != 0) { goto __L15; } jrne __L15 ;// ld.w %r10,%r12 ;// x = c; ;//´Ö°ã¤¤¤Ç¤Ï¤Ê¤¤¤¬¡¢ÌµÂ̤ʥ³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤¤¤ë cmp %r13,0 ;// if(b == 0) { goto __L15; } jreq __L15 ;// ld.w %r10,%r13 ;// x = b; __L15: ;// ret ;// return x; ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬0Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0Ķ²á¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test21: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a > 0) { goto __L21; } jrgt __L21 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrgt __L21 ;// if(a > 0) { goto __L21; } ;//¥Ð¥°¡£¡Öif(b > 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L21: ;// ret ;// return x; ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬1°Ê¾å¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬1°Ê¾å¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test31: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a > 0) { goto __L31; } jrgt __L31 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrgt __L31 ;// if(a > 0) { goto __L31; } ;//¥Ð¥°¡£¡Öif(b > 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L31: ;// ret ;// return x; //¢£´Ø¿ô»ÅÍÍ¡§a¤¬1Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬1Ķ²á¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ test41: ld.w %r10,%r12 ;// x = a; cmp %r10,1 ;// if(a > 1) { goto __L41; } jrgt __L41 ;// ld.w %r10,%r14 ;// x = c; cmp %r13,1 ;// if(b <= 1) { goto __L41; } jrle __L41 ;// ld.w %r10,%r13 ;// x = b; __L41: ;// ret ;// return x; ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬0̤Ëþ¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0̤Ëþ¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test51: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a < 0) { goto __L51; } jrlt __L51 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrlt __L51 ;// if(a < 0) { goto __L51; } ;//¥Ð¥°¡£¡Öif(b < 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L51: ;// ret ;// return x; ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬-1°Ê²¼¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬-1°Ê²¼¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ûºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤ test61: ld.w %r10,%r12 ;// x = a; cmp %r10,-1 ;// if(a <= -1) { goto __L61; } jrle __L61 ;// ld.w %r10,%r14 ;// x = c; cmp %r13,-1 ;// if(b > -1) { goto __L61; } jrgt __L61 ;// ld.w %r10,%r13 ;// x = b; __L61: ;// ret ;// return x; ;//¢£´Ø¿ô»ÅÍÍ¡§a¤¬0Ķ²á¤Ê¤é¤Ða¤òÊÖ¤¹¡£b¤¬0̤Ëþ¤Ê¤é¤Ðb¤òÊÖ¤¹¡£¤É¤Á¤é¤Ç¤â¤Ê¤±¤ì¤Ðc¤òÊÖ¤¹¡£ ;//¢¢¾ò·ï±é»»»Ò¤ò»ÈÍѤ·¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¯ ¢Í ¡ßºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë test71: ld.w %r10,%r12 ;// x = a; cmp %r10,0 ;// if(a > 0) { goto __L71; } jrgt __L71 ;// ld.w %r10,%r13 ;// x = b; ;//¥Ð¥°¡£¡Öcmp %r10,0¡×¤¬Â­¤ê¤Ê¤¤ ;// jrlt __L71 ;// if(a < 0) { goto __L71; } ;//¥Ð¥°¡£¡Öif(b < 0)¡×¤Ç¤¢¤ë¤Ù¤­ ld.w %r10,%r14 ;// x = c; __L71: ;// ret ;// return x; ¢£·ë²Ì¤Î¹Í»¡ ¢¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë¥±¡¼¥¹ ­¡¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Î¾ò·ï±é»»»Ò¤ò¥Í¥¹¥È¤¹¤ë¤È¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤¹¡£¢Ítest11 ­¢¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤ò¡¢ÌÀ¼¨Åª¤ËÈæ³Ó¼°¤ò½ñ¤¤¤Æ¤â¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë¤³¤È¤ËÊѤï¤ê¤Ï¤¢¤ê¤Þ¤»¤ó¡£¢Ítest12 ­£¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤ò¡¢ÌÀ¼¨Åª¤Ë±¦·ë¹ç¤ò½ñ¤¤¤Æ¤â¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤¹¤ë¤³¤È¤ËÊѤï¤ê¤Ï¤¢¤ê¤Þ¤»¤ó¡£¢Ítest13 ­¤¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤È¤Ï¡¢¡Ö¡á0¡×¤À¤±¤Ç¤Ê¤¯¡¢¡Ö¡ã0¡×¡Ö¡å0¡×¡Ö¡æ0¡×¡Ö¡ä0¡×¤Ç¤¢¤ë¾ì¹ç¤â¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤¹¡£¢Ítest21,test51 ¡¡°ì¤ÄÌܤξò·ï¼°¤ÈÆó¤ÄÌܤξò·ï¼°¤¬°Û¤Ê¤Ã¤Æ¤¤¤Æ¤â¡¢¤É¤Á¤é¤â¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Ç¤¢¤ì¤Ð¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤¹¡£¢Ítest71 ­¤¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤È¤Ï¡¢¡Ö·ë²ÌŪ¤Ë0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Ç¤¢¤ë¾ì¹ç¤â¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤¹¡£¢Ítest31 ¡¡¡Ö·ë²ÌŪ¤Ë0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤È¤Ï¡¢¤¿¤È¤¨¤Ð¡¢¡Ö¡æ1¡×¤Ç¤¹¡£ ¡¡²¿¸Î¤³¤¦¤Ê¤ë¤«¤È¤¤¤¦¤È¡¢gcc33¤Ï¡Ö¡æ1¡×¤Î¾ò·ï¼°¤ò¡Ö¡ä0¡×¤ËÊÑ´¹¤·¤Æ¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤«¤é¤Ç¤¹¡£(¾ï¤ËÊÑ´¹¤¹¤ë¤«¤É¤¦¤«¤ÏÉÔÌÀ) ¢¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Ê¤¤¥±¡¼¥¹ ­¥GCC³ÈÄ¥µ¡Ç½¤ò»ÈÍѤ·¤Æ¡¢¡Ö¡á0¡×¤Î¾ò·ï¼°¤ò¾Êά¤·¤¿½ñ¤­Êý¤ò¤¹¤ë¤È¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤»¤ó¡£¢Ítest14 ­¦¾ò·ï±é»»»Ò¤ò»ÈÍѤ»¤º¡¢ifʸ¤ò¥Í¥¹¥È¤·¤Æ½ñ¤¯¤È¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤»¤ó¡£¢Ítest15 ­§¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤»¤ó¡£¢Ítest41 ­¨¡Ö·ë²ÌŪ¤Ë0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤ËÊÑ´¹¤Ç¤­¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢¡Ö¡å-1¡×¤Î¾ì¹ç¤Ï¡¢ºÇŬ²½¥Ð¥°¤¬È¯À¸¤·¤Þ¤»¤ó¡£¢Ítest61 ¡¡Á°½Ò(­¤)¤ÎÄ̤êgcc33¤Ï¡Ö¡æ1¡×¤Î¾ò·ï¼°¤ò¡Ö¡ä0¡×¤ËÊÑ´¹¤·¤Þ¤¹¤¬¡¢²¿¸Î¤«¡Ö¡å-1¡×¤ò¡Ö¡ã0¡×¤ËÊÑ´¹¤·¤Ê¤¤¤«¤é¤Ç¤¹¡£(¾ï¤ËÊÑ´¹¤·¤Ê¤¤¤«¤É¤¦¤«¤ÏÉÔÌÀ) ¢£¤Þ¤È¤á ¤³¤ÎºÇŬ²½¥Ð¥°¤Ï¡¢¤«¤Ê¤ê´í¸±¤À¤È»×¤¤¤Þ¤¹¡£ ¡ÖÊÑ¿ôa,b,c¤ÎÃæ¤ÇºÇ½é¤ËNULL¤Ç¤Ê¤¤Ãͤò¼èÆÀ¤¹¤ë¡×¤È¤¤¤¦ÌÜŪ¤Ç¡¢¡Öa?a:b?b:c;¡×¤È½ñ¤¯¤³¤È¤¬Îɤ¯¤¢¤ë¤«¤é¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð¡Öa=NULL,b=foo,c=NULL;¡×¤Î¾ì¹ç¤Ë¡¢¡Öa?a:b?b:c;¡×¤Î·ë²Ì¤¬foo¤Ç¤Ê¤¯NULL¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¡Ö¡á0¡×¡Ö¡áNULL¡×¤Î¾ò·ï¼°¤Ê¤é¤Ð¡¢GCC³ÈÄ¥µ¡Ç½¤ò»È¤Ã¤Æ¡Öa?:b?:c;¡×¤È½ñ¤±¤Ð¡¢ºÇŬ²½¥Ð¥°¤ò²óÈò¤Ç¤­¤Þ¤¹¡£ ¤·¤«¤·¡¢Âç¾®Èæ³Ó¤Ç¤¢¤ë¾ì¹ç¤ÏGCC³ÈÄ¥µ¡Ç½¤ËÃÖ¤­´¹¤¨¤é¤ì¤Ê¤¤¤Î¤Ç¡¢¤³¤Î²óÈòÊýË¡¤Ï»È¤¨¤Þ¤»¤ó¡£ ¢¢·ëÏÀ¡§³Î¼Â¤Ë°ÂÁ´¤ò´ü¤¹¤¿¤á¤Ë¤Ï: ¨®¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¯ ¨­¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Î¾ò·ï±é»»»Ò¤ò¥Í¥¹¥È¤¹¤ë¤³¤È¤ÏÈò¤±¤Æ¡¢¾ï¤Ëifʸ¤Î¥Í¥¹¥È¤ò»È¤¦¤è¤¦¤Ë¤¹¤ë ¨­ ¨±¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨° ¼«Ê¬¤Ç¥×¥í¥°¥é¥à¤ò½ñ¤¯¾ì¹ç¤Ï¡¢¾åµ­¤ÎÅÀ¤Ëα°Õ¤·¤Æ½ñ¤±¤ÐÎɤ¤¤Î¤Ç¤¹¤¬¡¢¥ª¡¼¥×¥ó¥½¡¼¥¹Åù¤òP/ECE¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ»È¤¦¾ì¹ç¤Ï¡¢¤â¤Ã¤ÈÍ×Ãí°Õ¤Ç¤¹¡£ Æäˡ¢Á°½Ò¤Î¡Öa?a:b?b:c;¡×¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥±¡¼¥¹¤¬¡¢Â¿¤¤¤È»×¤¤¤Þ¤¹¡£ ²¿¤«¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¾ì¹ç¤Ï¡¢¤³¤ÎºÇŬ²½¥Ð¥°¤¬¸¶°ø¤Ç¤Ê¤¤¤«¡¢¥½¡¼¥¹¤òÌÜ»ë³Îǧ¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡¦¡¦¡¦(ÌÌÅݤǤ¹¤¬(^^;) ¢£º£¸å¤Î²ÝÂê(TODO) ÌÜ»ë³Îǧ¤¹¤ë¤Î¤ÏÌÌÅݤÀ¤·¸«Íî¤È¤¹¤ª¤½¤ì¤¬¤¢¤ë¤Î¤Ç¡¢¤¢¤ëÄøÅÙ¥Á¥§¥Ã¥¯¤ò¼«Æ°²½¤Ç¤­¤Ê¤¤¤«¸¡Æ¤¤·¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¡ØC¸À¸ì¥½¡¼¥¹¤òÆɤ߹þ¤ó¤Ç¡¢¾ò·ï±é»»»Ò¤Î¥Í¥¹¥ÈÉôʬ¤òÃê½Ð¤¹¤ë¥Õ¥£¥ë¥¿¡Ù¤òºîÀ®¤·¤Æ¡¢¥½¡¼¥¹Á´ÂΤ«¤é´í¸±¤½¤¦¤ÊÉôʬ¤Î¤ß¤ò¼«Æ°Ãê½Ð¤·¡¢ Ãê½Ð¤·¤¿Éôʬ¤Ë¤Ä¤¤¤Æ¡¢¡Ø¡Ö0¤ÈÈæ³Ó¤¹¤ë¾ò·ï¼°¡×¤Î¾ò·ï±é»»»Ò¤Î¥Í¥¹¥È¡Ù¤Ç¤¢¤ë¤«¤É¤¦¤«¤À¤±¤ò¡¢ÌÜ»ë³Îǧ¤¹¤ì¤ÐºÑ¤à¤è¤¦¤Ë¤·¤¿¤¤¤Ç¤¹¡£