EasyManua.ls Logo

ARM ARM1176JZF-S - Page 315

Default Icon
759 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Program Flow Prediction
ARM DDI 0301H Copyright © 2004-2009 ARM Limited. All rights reserved. 5-9
ID012310 Non-Confidential, Unrestricted Access
void IMB(void);
The SVC
0xF00001
call uses similar calling conventions to those used by a call to a C function
with prototype:
void IMB_Range(unsigned long start_addr, unsigned long end_addr);
Where the address range runs from
start_addr (inclusive)
to
end_addr (exclusive)
. When the
standard ARM Procedure Call Standard is used, this means that
start_addr
is passed in R0 and
end_addr
in R1.
The execution time cost of an IMB can be very large, many thousands of clock cycles, even
when a small address range is specified. For small scale uses of self-modifying code, this is
likely to lead to a major loss of performance. It is therefore recommended that self-modifying
code is only used where it is unavoidable and/or it produces sufficiently large execution time
benefits to offset the cost of the IMB.

Table of Contents

Related product manuals