ARM ARM1176JZF-S Technical Reference Manual page 317

Table of Contents

Advertisement

ARM DDI 0301H
ID012310
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.
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
decompresses the bulk of the code and before the decompressed code starts to be executed.
Example 5-3 shows this.
IMB
EQU
0xF00000
.
.
; copy and decompress bulk of code
SVC
IMB
; start of decompressed code
.
.
.
Copyright © 2004-2009 ARM Limited. All rights reserved.
Non-Confidential, Unrestricted Access
Program Flow Prediction
Example 5-2 Running BitBlt code
must be issued after the routine that
IMB
Example 5-3 Self-decompressing code
5-11

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents