
MOTOROLA
Chapter 3. Instruction Set Model
3-19
Instruction Set Summary
3.2.4.3
Load and Store Instructions
Load and store instructions are issued and translated in program order; however, the
accesses can occur out of order. Synchronizing instructions are provided to enforce strict
ordering. This section describes the load and store instructions of the G2 core, which
consist of the following:
Integer load instructions
Integer store instructions
Integer load and store with byte-reverse instructions
Integer load and store multiple instructions
Integer load and store string instructions
Floating-point load instructions
Floating-point store instructions
3.2.4.3.1
Self-Modifying Code
When a processor modifies a memory location that may be contained in the instruction
cache, software must ensure that memory updates are visible to the instruction fetching
mechanism. This can be achieved by the following instruction sequence:
dcbst
sync
icbi
isync
|update memory
|wait for update
|remove (invalidate) copy in instruction cache
|remove copy in own instruction buffer
These operations are required because the data cache is a write-back cache. Since
instruction fetching bypasses the data cache, changes to items in the data cache may not be
reflected in memory until the fetch operations complete.
Special care must be taken to avoid coherency paradoxes in systems that implement unified
secondary caches, and designers should carefully follow the guidelines for maintaining
cache coherency that are provided in the VEA, and discussed in Chapter 5, “Cache Model
and Memory Coherency,” in the
Programming Environments Manual
. Because the core
does not broadcast the M bit for instruction fetches, external caches are subject to
coherency paradoxes.
3.2.4.3.2
Integer Load and Store Address Generation
Integer load and store operations generate effective addresses using register indirect with
immediate index mode, register indirect with index mode, or register indirect mode. See
Section 3.2.2.3, “Effective Address Calculation.” Note that the core is optimized for load
and store operations that are aligned on natural boundaries, and operations that are not
naturally aligned may suffer performance degradation. Refer to Section 5.5.6.1, “Integer
Alignment Exceptions.”
F
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
.