URN Logo
UNIX Resources » Linux » China Linux Forum » CPU Óë ±àÒëÆ÷ » µÚ1Ò³ » gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
announcement ÉùÃ÷: ±¾Ò³ÄÚÈÝΪÖйúLinuxÂÛ̳µÄÄÚÈݾµÏñ£¬ÎÄÕµİæÈ¨ÒÔ¼°ÆäËûËùÓеÄÏà¹ØÈ¨ÀûÊôÓÚÖйúLinuxÂÛ̳ºÍÏàÓ¦ÎÄÕµÄ×÷Õߣ¬Èç¹û×ªÔØ£¬Çë×¢Ã÷ÎÄÕÂÀ´Ô´¼°Ïà¹Ø°æÈ¨ÐÅÏ¢¡£
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  Òµ½çÐÂÎÅÓëÆÀÂÛ
  ×ÔÓÉÈí¼þÔÓ̸
  IT ÈËÉú
  LinuxÈí¼þ¿ìµÝ
  ·­Òë×÷·»
  LinuxͼÊéÓëÆÀÂÛ
  GNU Emacs/XEmacs
  Linux ÖÐÎÄ»·¾³ºÍÖÐÎÄ»¯
  Linux×ÀÃæÓë°ì¹«Èí¼þ
  Linux ¶àýÌåÓëÓéÀÖ°æ
  ×ÔÓÉÖ®´°Mozilla
  ±Ê¼Ç±¾µçÄÔÉϵÄLinux
  Gentoo
  Debian Ò»×å
  ÍøÂç¹ÜÀí¼¼Êõ
  Linux °²×°ÓëÈëÃÅ
  WEB·þÎñÆ÷ºÍFTP·þÎñÆ÷
  ÓòÃû·þÎñÆ÷ºÍÓʼþ·þÎñÆ÷
  Linux·À»ðǽºÍ´úÀí·þÎñÆ÷Ó¦ÓÃ
  Îļþ¼°´òÓ¡·þÎñÆ÷
  ¼¼ÊõÅàѵÓëÈÏÖ¤
  LinuxÄں˼¼Êõ
  Linux ǶÈë¼¼Êõ
  LinuxÉ豸Çý¶¯³ÌÐò
  Linux ¼¯Èº¼¼Êõ
  LINUXƽ̨Êý¾Ý¿â
  ÏµÍ³ºÍÍøÂ簲ȫ
  CPU Óë ±àÒëÆ÷
  ÏµÍ³¼ÆËãÑо¿ËùרÀ¸
  LinuxϵÄGUIÈí¼þ¿ª·¢
  C/C++±à³Ì°æ
  PHP ¼¼ Êõ
  Java&jsp¼¼Êõ
  Shell±à³Ì¼¼Êõ
  Perl ±à ³Ì
  Python ±à ³Ì
  XML/Web Service ¼¼Êõ
  ÓÀÔ¶µÄUnix
  FreeBSDÊÀ½ç
   
gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
 
 
 
 
 
 
 
 
 
 
 
 
 
Subject: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: zyzii    Posted: 2007-10-11 12:22    Length: 460 byte(s)
[Original] [Print] [Top]
¶ÔÓÚÏÂÃæµÄºê£º
   

#define barrier() __asm__ __volatile__("": : :"memory")



ÎÒÏëÖªµÀGCCÔõô´¦Àíclobbered
²¿·ÖµÄmemory¹Ø¼ü×ֵģ¬GCCÓÐûÓÐÔÚ´¦Àí´ËÇé¿öʱ²åÈëinvalidate cache lineµÄ
wbinvdÖ¸Áî»òÊÇÆäËûʲôFLUSH CACHEµÄÖ¸ÁϣÍûÌù³öÔ´´úÂëÀ´£¬Ð»Ð»ÁË£¬ºÇºÇ¡£

ÄÄÄÜϵ½´ò°üºÃµÄGCC´úÂëÄØ£¿

----
Ó¦ÓóÌÐòÊÇLINUXµÄÈíÀß¡£
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: yuanbor    Posted: 2007-10-14 20:23    Length: 117 byte(s)
[Original] [Print] [Top]
http://ftp.gnu.org/gnu/gcc/
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: yjx_super    Posted: 2007-10-14 23:06    Length: 1,672 byte(s)
[Original] [Print] [Top]

±àÒëÆ÷²¢²»»á²åÈëÊ²Ã´ÌØ±ðµÄÖ¸ÁֻÊÇ×öÁ½¼þÊÂÇ飬һÊDz»ÈÃÖ¸ÁîÖØÅÅ¿çÔ½barrierÖ®ºóµÄ´úÂë£
¬¶þÊǰÑbarrier֮ǰ»º´æÔڼĴæÆ÷ÖеıäÁ¿»ØÐ´µ½ÄÚ´æ¡£Ö®ËùÒÔbarrierµÄ¶¨ÒåÖл¹Òª¼ÓÈëvolatil
eÊÇÒòΪ£ºgcc¿´µ½barrier¼ÈûÓÐÊäÈëÊä³ö²¿£¬Ò²Ã»ÓÐclobber£¬ÄÇô¾ÍÈÏΪ¸ÃÌõÖ¸ÁîûÓÐÒâÒ壬¾Í
»áÓÅ»¯µôbarrier£¬½á¹ûµ±È»¾Í²»»á×öÉÏÃæµÄÁ½¼þÊÂÇé¡£

À´×Ôgcc.4.0.0µÄÔ´´úÂëÆ¬¶Î[gcc/stmt.cÖеĺ¯Êýexpand_asm_operands]£º
/* If there are no outputs (but there are some clobbers)
store the bare ASM_OPERANDS into the PARALLEL. */

if (i == 0)
XVECEXP (body, 0, i++) = obody;

/* Store (clobber REG) for each clobbered register specified. */

for (tail = clobbers; tail; tail = TREE_CHAIN (tail))
{
const char *regname = TREE_STRING_POINTER (TREE_VALUE (tail));
int j = decode_reg_name (regname); // Èç¹ûregnameÊÇÒ»¸öclobber²Ù×÷Êý£¬ÄÇô·µ»Ø-4
rtx clobbered_reg;

if (j < 0)
{
if (j == -3) /* `cc', which is not a register */
continue;

if (j == -4) /* `memory', don't cache memory across asm */
{
XVECEXP (body, 0, i++)
= gen_rtx_CLOBBER (VOIDmode,
gen_rtx_MEM
(BLKmode,
gen_rtx_SCRATCH (VOIDmode)));
continue;
}

/* Ignore unknown register, error already signaled. */
continue;
}
......
----
Out of your Window£¡
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: zyzii    Posted: 2007-10-14 23:42    Length: 328 byte(s)
[Original] [Print] [Top]
ллÄãµÄ´ð¸´£¬Ìù´úÂëµÄ·½·¨£¬¿ÉÒԲο¼£º
http://www.linuxforum.net/forum/faq_chinese.php?Cat=

Ã÷ÌìÉϰàʱ£¬¿´´úÂëÖÐÔõô¡°°Ñbarrier֮ǰ»º´æÔڼĴæÆ÷ÖеıäÁ¿»ØÐ´µ½ÄÚ´æ¡°µÄ£¬ÎÒÖ÷ÒªÊÇ¿´ÕâÒ»²½¡£
----
Ó¦ÓóÌÐòÊÇLINUXµÄÈíÀß¡£
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: zyzii    Posted: 2007-10-15 10:59    Length: 1,073 byte(s)
[Original] [Print] [Top]
ʵÔÚ²»ºÃÒâ˼£¬Í·Ò»´Î¿´GCC´úÂë¡£
¡°°Ñbarrier֮ǰ»º´æÔڼĴæÆ÷ÖеıäÁ¿»ØÐ´µ½ÄÚ´æ¡°£¬ÎÒÔÚ´úÂëÀïûÓÐÕÒµ½ÊÇÔÚÄÄÍê³ÉÕâ¸öµÄ¡£

µ«ÈôÊÇGCCÕæµÄ¿ÉÒÔ¡°°Ñbarrier֮ǰ»º´æÔڼĴæÆ÷ÖеıäÁ¿»ØÐ´µ½ÄÚ´æ¡°£¬Õâ²»ÊÇÓ°ÏìÓ²¼þÁËÂð£¿



   

if (j < 0)
{
if (j == -3) /* `cc', which is not a register */
continue;

if (j == -4) /* `memory', don't cache memory across asm */
{
XVECEXP (body, 0, i++)
= gen_rtx_CLOBBER (VOIDmode,
gen_rtx_MEM
(BLKmode,
gen_rtx_SCRATCH (VOIDmode)));
continue;
}

/* Ignore unknown register, error already signaled. */
continue;
}

gen_rtx_CLOBBER£¨£©Õâ¸öº¯ÊýÔÚÄ͍ÒåµÄҲûÓÐÕÒµ½¡£



----
Ó¦ÓóÌÐòÊÇLINUXµÄÈíÀß¡£
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: yjx_super    Posted: 2007-10-15 19:20    Length: 1,318 byte(s)
[Original] [Print] [Top]
¡°°Ñbarrier֮ǰ»º´æÔڼĴæÆ÷ÖеıäÁ¿»ØÐ´µ½Äڴ桱-> ÎÒÏë˵µÄÒâ˼ÊÇ£º
±àÒëÆ÷ÔÚ¹¤×÷ʱһ°ãÒÔº¯ÊýΪ±àÒëµ¥Ôª£¬·ÖÎöÒ»¸öº¯Êý£¬
È»ºóÊä³öÕâ¸öº¯ÊýµÄ´úÂë¡£¶øÔÚ·ÖÎöÒ»¸öº¯Êýʱ£¬
Ëü»áÏȰÑÕâ¸öº¯ÊýµÄ´úÂëת»»³ÉRTLÊ÷£¬ÔÚÕâ¸ö¹ý³ÌÖУ¬
ÄÚǶ»ã±àÒ²»á±»×ª»»ÎªÕâÑùµÄÐÎʽ£¬µ«ÊǶÔÓÚÓÐmemoryÐÞÊηûrµÄÄÚǶ»ã±à£¬
ÆäÔÚRTLÖлáÓв»Í¬µÄ±íʾ¡£È»ºó±àÒëÆ÷»áת»»Õâ¿ÅÊ÷ΪÆäËüµÄÖмä´úÂëÐÎʽ£¬
ÈçSSA£¬È»ºó½øÐи÷ÖÖÓÅ»¯²Ù×÷¡£È»ºóÔÚ½øÐмĴæÆ÷·ÖÅäʱ£¬
Èç¹ûËü·¢ÏÖij¸öµØ·½ÓÐmemoryÐÞÊηû£¬ÄÇôËü»á°ÑÕâ¸öµØ·½ÒÔǰ´æ´¢ÔÚ
¼Ä´æÆ÷ÖеıäÁ¿µÄÖµ½øÐлØÐ´£¬Òò¶ø»áÉú³É²»Í¬µÄ´úÂëÐòÁС£ÀýÈ磺

int a = 0;
......
// ÔÚÕâ¸öµØ·½£¬aµÄÖµÒѾ­±äΪ12ÁË£¬ÇÒaµÄÖµ»¹Ã»Óб»»ØÐ´µ½Äڴ棬¶øÊÇ·ÅÔÚij¸ö¼Ä´æÆ÷ÖÐ
inline asm code // ÒÔijÖÖ·½Ê½È¡aµÄÖµ²¢½øÐÐ+16²Ù×÷
......

Èç¹ûÉÏÊöµÄ´úÂëÔÚÄÚǶ»ã±àÖв»ÉêÃ÷clobberΪmember£¬ÄÇô±àÒëÆ÷¾Í¿ÉÄÜ
ÔÚÄÚǶ»ã±àÖлñÈ¡µÄÊÇÆäԭʼµÄÖµ0£¬¶ø·Çµ±Ç°µÄÖµ12£¬ËùÒԻᷢÉú´íÎó¡£
±àÒëÆ÷ÔÚ½øÐÐÓÅ»¯Ê±»á°ÑijЩ±äÁ¿µÄÖµ»º´æµ½¼Ä´æÆ÷£¬
È»ºóһֱʹÓÃÕâ¸ö¼Ä´æÆ÷×÷Ϊ¶ÔÓ¦±äÁ¿µÄÖµ¡£ÎÒµÄÀí½â¾ÍÊÇÕâÑù¡£

ÔÚ±àÒëgccʱ»áÉú³ÉºÜ¶àcÎļþºÍÍ·Îļþ£¬Äã˵µÄgen_rtx_CLOBBERÊÇÒ»¸öºê£¬
Ëü¶¨ÒåÔÚÎļþgenrtl.hÖУ¬¶øÕâ¸öÎļþÊÇÔÚ±àÒëgccʱÉú³ÉµÄ£¬ËùÒÔ²»½øÐбàÒë¾Í¿´²»µ½¡£
----
Out of your Window£¡
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: zyzii    Posted: 2007-10-15 21:22    Length: 268 byte(s)
[Original] [Print] [Top]
ллÄãµÄÏêϸ½âÊÍ¡£
¡°ÄÇôËü»á°ÑÕâ¸öµØ·½ÒÔǰ´æ´¢ÔڼĴæÆ÷ÖеıäÁ¿µÄÖµ½øÐлØÐ´£¬Òò¶ø»áÉú³É²»Í¬µÄ´úÂëÐòÁС±£¬
Ëùν½øÐС°»ØÐ´¡±ÊǶԴúÂë½øÐлØÐ´°É£¿½ø¶øÉú³É²»Í¬µÄ´úÂë¡£ËùÒÔ¹é¸ù½áµ×ÊǶԴúÂëµÄÓÅ»¯¡£

Ïë¿´¿´GCCµÄÔ­Àí£¬¿´GCC INTERNEL ¾ÍÐаɣ¿
----
Ó¦ÓóÌÐòÊÇLINUXµÄÈíÀß¡£
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: yjx_super    Posted: 2007-10-15 22:28    Length: 380 byte(s)
[Original] [Print] [Top]
ºÇºÇ£¬¿´À´ÄãÔÚ¼ÒÉÏÍøÑ½£¡
>> Ëùν½øÐС°»ØÐ´¡±ÊǶԴúÂë½øÐлØÐ´°É£¿½ø¶øÉú³É²»Í¬µÄ´úÂë¡£ËùÒÔ¹é¸ù½áµ×ÊǶԴúÂëµÄÓÅ»¯¡£
Êǵ쬱àÒëÆ÷ΪÁËÓÅ»¯»á¾¡Á¿°Ñ±äÁ¿µÄÖµ·Åµ½¼Ä´æÆ÷ÖУ¬Èç¹û³öÏÖÁËbarrier£¬ÄÇô£¬
Ëü¾Í»á°ÑÏÈǰ»¹Ã»ÓÐд»ØÄÚ´æµÄÖµÕæÕýµÄд»ØÈ¥¡£

gcc internal½²µÄ²»ÊǺÜϸµÄ£¬ÓÐЩ´óѧÓнøÐÐgccµÄÆÊÎö£¬¿´ÄÄЩ¶«Î÷¿ÉÄÜ»á¸ü³ä·Ö¡£
----
Out of your Window£¡
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: zyzii    Posted: 2007-10-16 10:12    Length: 131 byte(s)
[Original] [Print] [Top]
ÏÖÔÚ¶ÔÕâ¸öÎÊÌâÖÕÓÚÃ÷°×ÁË¡£ÔٴθÐл¡£

ÎÒÒ²ÊǾõµÄGCC INTERNAL ½²µÄ±È½Ï²Ú¡£µ«²»ÖªµÀÄĸö´óѧµÄ±àÒëÆ÷·½Ãæ±È½ÏÀ÷º¦ÄØ£¿
----
Ó¦ÓóÌÐòÊÇLINUXµÄÈíÀß¡£
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: yjx_super    Posted: 2007-10-16 11:22    Length: 210 byte(s)
[Original] [Print] [Top]
ÎÒ×Ô¼ºÒ²Êǰë¹ÞË®£¬ºÇºÇ¡£´óѧ¿Ï¶¨ÓнøÐзÖÎöµÄ£¬µ«ÊǹÀ¼Æ²»»á¹«¿ª·Åµ½ÍøÉÏ¡£
ÒÔǰ¿´µ½¹ų́ÍåÓиöѧУÓÐÕâ·½ÃæµÄ·ÖÎö£¬¶øÇÒ»¹±È½ÏÏêϸµÄ£¬Äã¿ÉÒÔ¿´¿´¡£
ÎÒÓÐÒÔǰµÄ°æ±¾£¬Èç¹ûÄãÕÒ²»µ½£¬ÄÄÎÒ¾Ímail¸øÄãºÃÁË¡£
----
Out of your Window£¡
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: zyzii    Posted: 2007-10-16 11:39    Length: 427 byte(s)
[Original] [Print] [Top]
ºÇºÇ£¬ºÜÊǸÐл£º

if (sizeof(the mail) > 2M)
PLEASE MAILTO: zyzii@sohu.com
else
PLEASE MAILTO: zyziii@yahoo.com.cn
----
Ó¦ÓóÌÐòÊÇLINUXµÄÈíÀß¡£
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: yjx_super    Posted: 2007-10-16 22:41    Length: 30 byte(s)
[Original] [Print] [Top]
ร¬ÓÐ2.8M£¬·¢µ½ÄãsohuÐÅÏäÁË¡£
----
Out of your Window£¡
[Original] [Print] [Top]
Subject: Re: gccµÄÊÇÔõô´¦ÀíÕâÖÖÇé¿öµÄ£¿
Author: libintuff    Posted: 2007-10-26 15:13    Length: 34 byte(s)
[Original] [Print] [Top]
¸øÎÒÒ²·¢Ò»·Ý£¬ÎÒÏûÏ¢¸øÄúÁË£¬Ð»Ð»¡£
----
stay hungry, stay foolish...
[Original] [Print] [Top]
« Previous thread
Ò»¸öʹÓõݹéϽµ·½·¨ÊµÏÖµÄcminus±àÒëÆ÷,ʹÓÃnasm×÷Ϊºó¶Ë
CPU Óë ±àÒëÆ÷
µÚ1Ò³
Next thread »
Ѱ: gcc-4.2.1µÄextern inline²¹¶¡
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
±¸°¸ÐòºÅ: ¾©ICP±¸05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 03:47:06, cost 0.049290895462036 ms.