PowerPC™ 405 Processor Block Reference Guide www.xilinx.com 23
UG018 (v2.0) August 20, 2004 1-800-255-7778
R

Real Mode

In real mode, programs address physical memory directly.

Virtual Mode

In virtual mode, programs address virtual memory and virtual-memory addresses are
translated by the processor into physical-memory addresses. This allows programs to
access much larger address spaces than might be implemented in the system.
Addressing Modes
Whether the PowerPC 405 is running in real mode or virtual mode, data addressing is
supported by the load and store instructions using one of the following add ressing modes:
xRegister-indirect with immediate index — A base address is stored in a register, and a
displacement from the base address is specified as an immediate value in the
instruction.
xRegister-indirect with index — A base address is stored in a register, and a
displacement from the base address is stored in a second register.
xRegister indirect — The data address is stored in a register.
Instructions that use the two indexed forms of addressing also allow for automatic updates
to the base-address register. With these instruction forms, the new data address is
calculated, used in the load or store data access, and stored in the base-address register.
With sequential instruction execution, the next-instruction address is calculated by adding
four bytes to the current-instruction address. In the case of branch instructions, the next-
instruction address is determined using one of four branch-addressing modes:
xBranch to relative — The next-instruction address is at a location relative to the
current-instruction address.
xBranch to absolute — The next-instruction address is at an absolute location in
memory.
xBranch to link register — The next-instruction address is stored in the link register.
xBranch to count register — The next-instruction address is stored in the count register.
Data Types
PowerPC 405 instructions support byte, halfword, and word operands. Multiple-word
operands are supported by the load/store multiple instructions and byte strings are
supported by the load/store string instructions. Integer data are either signed or unsigned,
and signed data is represented using two’s-complement format.
The address of a multi-byte operand is determined using the lowest memory address
occupied by that operand. For example, if the four bytes in a word operand occupy
addresses 4, 5, 6, and 7, the word address is 4. The PowerPC 405 support s both big -endian
(an operand’s most significant byte is at the lowest memory address) and little-endian (an
operand’s least significant byte is at the lowest memory address) addressing.
Register Set Summary
Figure 1-1 shows the registers contained in the PowerPC 405. Descriptions of the registers
are in the following sections.