EasyManua.ls Logo

ARM ARM1176JZF-S - Page 317

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-11
ID012310 Non-Confidential, Unrestricted Access
MOV PC, entry_point_of_loaded_program
.
.
Compiled BitBlt routines optimize large copy operations by constructing and executing a
copying loop that has been optimized for the exact operation wanted. When writing such a
routine an
IMB
is required between the code that constructs the loop and the actual execution of
the constructed loop. Example 5-2 shows this.
Example 5-2 Running BitBlt code
IMBRange EQU 0xF00001.
.
; code that constructs loop code
; load R0 with the start address of the constructed loop
; load R1 with the end address of the constructed loop
SVC IMBRange
[branch to IMBRange service routine]
[read registers R0 and R1 to set up address range parameters]
[perform processor-specific operations to execute IMBRange]
[within address range]
[return to code]
; start of loop code
.
.
When writing a self-decompressing program, an
IMB
must be issued after the routine that
decompresses the bulk of the code and before the decompressed code starts to be executed.
Example 5-3 shows this.
Example 5-3 Self-decompressing code
IMB EQU 0xF00000
.
.
; copy and decompress bulk of code
SVC IMB
; start of decompressed code
.
.
.

Table of Contents

Related product manuals