arm instruction generate

james chen jameschen1999cn@yahoo.com.cn
Tue Jun 25 21:31:00 GMT 2002


Hi, I am using GCC 2.95( ARM target ) in my test
board, and the test boardbased in samsung
S3C2400X01(ARM920T core).  but there is a bug in it,
seebelows:

=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 If the cache is turned on and there is an LDM
instruction (load multiple) ofprecisely two items from
a noncachedregion, then the second item may not be
loaded correctly.So, for example, LDMIA r0,{r1,r2}
from non-cacheable area is not allowed.But, LDMIA
r0,{r1,r2,r3} from noncacheablearea is allowed because
the number of items is not 2.In assembly code, the
software workaround was simply to ensure that
therewere no LDM instructions whichload only 2 values.
In compiled C code, LDM may be used only for
stacksave/restore operation, double typevariable
load/store and etc. But, we think there is no problem
if the Cstack area and C variable area iscacheable
area.

=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

will you help me to change GCC to avoid this
bug?Thanks in advance!
Best Regards,
james

_________________________________________________________
Do You Yahoo!? 
2002ÄêÊÀ½ç±­ÈºÐÛ÷éÕ½ ÑÅ»¢Öйú¾Û½¹ÈÕº«
http://cn.fifaworldcup.yahoo.com/



More information about the Gcc mailing list