mtsr
Move to Segment Register - 7C 00 01 64
mtsr
Instruction Syntax
Mnemonic | Format | Description |
mtsr | SR,rS | Move to Segment Register |
Instruction Encoding
0
1
1
1
1
1
S
S
S
S
S
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Field | Bits | Description |
Primary Opcode | 0-5 | 011111 (0x1F) |
rS | 6-10 | Source register |
Reserved | 11-15 | 00000 |
Reserved | 16-20 | 00000 |
Reserved | 21-29 | 000000000 |
Reserved | 30 | 0 |
SPR | 31-31 | Special Purpose Register (Segment Register) |
Operation
SR ← (rS)
The contents of register rS are copied into the specified Segment Register (SR).
Affected Registers
Segment Register (SR)
(always)
- Updated with the value from rS
Examples
Basic Move to Segment Register
mtsr 0, r3 # Copy value from r3 to SR0
Memory Management Setup
# Set up segment register for memory management lis r3, 0x8000 # Load segment value ori r3, r3, 0x0001 # Set segment attributes mtsr 1, r3 # Set SR1 for segment 1
Multiple Segment Configuration
# Configure multiple segment registers li r3, 0x0001 # Segment 0 configuration mtsr 0, r3 # Set SR0 li r4, 0x0002 # Segment 1 configuration mtsr 1, r4 # Set SR1 li r5, 0x0003 # Segment 2 configuration mtsr 2, r5 # Set SR2
Dynamic Segment Allocation
# Dynamically allocate segment lis r3, segment_base@ha addi r3, r3, segment_base@l ori r3, r3, 0x0001 # Add segment attributes mtsr 5, r3 # Allocate segment 5
Segment Register Save/Restore
# Save and restore segment register mfsr r10, 3 # Save SR3 # ... modify SR3 ... mtsr 3, r10 # Restore SR3