The Datasheet Archive - 100 Million Datasheets from 7500 Manufacturers.    


Datasheet Search Engine   
 
Part # or Description: • 5V RS232 Driver • 2SC5066* • "Real Time Clock" • "USB connector" • "blue led" 5mm • 10 watt zener diode • 2N3055* motorola
 
Search Tip: Try entering the part number only. Include a wildcard (eg. lm317* or 1n4148*)

 

 

MPC601UM/AD PowerPC RISC Microprocessor User's Manual C


Datasheet Thumbnail

  

Download PDF



Top Searches for this datasheet



MPR601UM-01
MPC601UM/AD
PowerPC
RISC Microprocessor User's Manual
CONTENTS
Paragraph Number Title Page Number
About This Book
Audience xlii Organization. xlii Additional Reading xliv Conventions xliv Acronyms Abbreviations xliv Terminology Conventions xlvii Chapter
Overview
1.1.1 1.1.2 1.1.3 1.1.3.1 1.1.4 1.1.4.1 1.1.4.2 1.1.4.3 1.1.5 1.1.6 1.1.7 1.1.8 1.3.1 1.3.2 1.3.2.1 1.3.2.1.1 1.3.2.1.2 1.3.2.1.3 1.3.2.1.4 1.3.2.1.5 PowerPC Microprocessor Overview. Features. Block Diagram. Instruction Unit Instruction Queue. Independent Execution Units. Branch Processing Unit (BPU) Integer Unit (IU) Floating-Point Unit (FPU) Memory Management Unit (MMU) Cache Unit Memory Unit. System Interface 1-10 Levels PowerPC Architecture. 1-10 PowerPC Implementation. 1-11 Features. 1-12 Registers Programming Model 1-13 PowerPC Registers Programming Model 1-13 General-Purpose Registers (GPRs). 1-13 Floating-Point Registers (FPRs) 1-14 Condition Register (CR) 1-14 Floating-Point Status Control Register (FPSCR) 1-14 Machine State Register (MSR). 1-14
Contents
CONTENTS
Paragraph Number 1.3.2.1.6 1.3.2.1.7 1.3.2.1.8 1.3.2.1.9 1.3.2.2 1.3.3 1.3.3.1 1.3.3.1.1 1.3.3.1.2 1.3.3.2 1.3.4 1.3.4.1 1.3.4.2 1.3.5 1.3.5.1 1.3.5.2 1.3.6 1.3.6.1 1.3.6.2 1.3.7 1.3.8 1.3.8.1 1.3.8.2 1.3.8.3 1.3.8.4 1.3.8.5 Title Page Number
Segment Registers (SRs) .1-14 Special-Purpose Registers (SPRs).1-14 User-Level SPRs .1-14 Supervisor-Level SPRs .1-15 Additional Registers .1-16 Instruction Addressing Modes.1-18 PowerPC Instruction Addressing Modes.1-18 PowerPC Instruction .1-18 Calculating Effective Addresses .1-19 Instruction Set.1-20 Cache Implementation.1-20 PowerPC Cache Characteristics .1-21 Cache Implementation.1-21 Exception Model .1-22 PowerPC Exception Model .1-23 Exception Model .1-24 Memory Management .1-27 PowerPC Memory Management .1-27 Memory Management .1-28 Instruction Timing .1-29 System Interface .1-31 Memory Accesses.1-32 Controller Interface Operations .1-33 Signals .1-33 Signal Configuration .1-34 Real-Time Clock .1-35 Chapter
Registers Data Types
2.1.1 2.2.1 2.2.2 2.2.3 2.2.4 2.2.4.1 2.2.4.2 2.2.4.3 2.2.5 2.2.5.1 Normal Instruction Execution State .2-1 Changing Privilege Levels .2-6 User-Level Registers .2-6 General Purpose Registers (GPRs).2-6 Floating-Point Registers (FPRs).2-7 Floating-Point Status Control Register (FPSCR) .2-8 Condition Register (CR).2-11 Condition Register Field Definition.2-12 Condition Register Field Definition.2-12 Condition Register Field-Compare Instruction .2-12 User-Level SPRs .2-13 Register (MQ) .2-13
PowerPC RISC Microprocessor User's Manual
CONTENTS
2.2.5.2 2.2.5.3 2.2.5.3.1 2.2.5.3.2 2.2.5.3.3 2.2.5.3.4 2.2.5.4 2.2.5.5 2.3.1 2.3.2 2.3.3 2.3.3.1 2.3.3.1.1 2.3.3.1.2 2.3.3.2 2.3.3.3 2.3.3.4 2.3.3.5 2.3.3.5.1 2.3.3.5.2 2.3.3.6 2.3.3.7 2.3.3.8 2.3.3.9 2.3.3.10 2.3.3.11 2.3.3.12 2.3.3.13 2.3.3.13.1 2.3.3.13.2 2.3.3.13.3 2.3.3.13.4 2.3.3.13.5 2.4.1 2.4.1.1 2.4.2 2.4.2.1 2.4.2.2 2.4.2.3 2.4.3 2.4.3.1 Integer Exception Register (XER) .2-15 Real-Time Clock (RTC) Registers (User-Level) .2-16 Real-Time Clock Lower (RTCL) Register .2-17 Real-Time Clock Upper (RTCU) Register .2-18 Reading RTC.2-18 Synchronization Multiprocessor System.2-19 Link Register (LR) .2-19 Count Register (CTR) .2-20 Supervisor-Level Registers .2-20 Machine State Register (MSR) .2-20 Segment Registers.2-22 Supervisor-Level SPRs .2-24 Synchronization Supervisor-Level SPRs Segment Registers.2-25 Context Synchronization.2-25 Other Synchronization Requirements Register.2-29 DAE/Source Instruction Service Register (DSISR).2-29 Data Address Register (DAR).2-30 Real-Time Clock (RTC) Registers (Supervisor-Level) .2-30 Decrementer (DEC) Register .2-30 Decrementer Operation .2-31 Writing Reading .2-31 Table Search Description Register (SDR1) .2-32 Machine Status Save/Restore Register (SRR0) .2-32 Machine Status Save/Restore Register (SRR1) .2-33 General SPRs (SPRG0-SPRG3).2-33 External Access Register (EAR).2-34 Processor Version Register (PVR).2-35 Registers.2-36 Implementation-Specific Registers .2-38 Checkstop Sources Enables Register-HID0 .2-38 Debug Modes Register-HID1.2-41 Instruction Address Breakpoint Register (IABR)-HID2.2-42 Data Address Breakpoint Register (DABR)-HID5 .2-42 Processor Identification Register (PIR)-HID15 .2-44 Operand Conventions.2-44 Data Organization Memory Data Transfers .2-44 Alignment Misaligned Accesses .2-45 Effect Operand Placement Performance.2-45 Instruction Restart .2-46 Atomicity .2-47 Access Order .2-47 Byte Ordering .2-47 Little-Endian Address Manipulation.2-48
Contents
CONTENTS
Paragraph Number 2.4.3.2 2.4.3.3 2.4.3.4 2.4.3.5 2.4.4 2.4.4.1 2.4.4.2 2.4.5 2.4.5.1 2.4.5.2 2.4.5.3 2.4.5.3.1 2.4.5.3.2 2.4.6 2.4.7 2.5.1 2.5.1.1 2.5.2 2.5.2.1 2.5.2.2 2.5.2.3 2.5.2.4 2.5.2.5 2.5.2.6 2.5.2.7 2.5.3 2.5.4 2.5.5 2.5.6 2.7.1 2.7.2 Title Page Number
Little-Endian Alignment Exceptions.2-49 Little-Endian Instruction Fetching .2-49 Big-Endian Byte Ordering.2-50 Little-Endian Byte Ordering.2-50 Structure Mapping Examples .2-50 Big-Endian Mapping .2-50 Little-Endian Mapping .2-51 PowerPC Byte Ordering .2-51 Aligned Scalars.2-52 Misaligned Scalars .2-53 Non-Scalars .2-54 String Operations.2-54 Load Store Multiple Instructions.2-55 PowerPC Instruction Memory Addressing Little-Endian Mode.2-55 PowerPC Input/Output Little-Endian Mode.2-57 Floating-Point Execution Models.2-57 Execution Model IEEE Operations.2-58 Execution Model Multiply-Add Type Instructions .2-60 Floating-Point Data Format.2-61 Value Representation .2-63 Binary Floating-Point Numbers .2-64 Normalized Numbers (±NORM).2-64 Zero Values (±0) .2-65 Denormalized Numbers (±DENORM).2-65 Infinities (±).2-66 Numbers (NaNs).2-66 Sign Result .2-68 Normalization Denormalization .2-68 Data Handling Precision .2-69 Rounding .2-70 PowerPC Registers Unimplemented .2-73 Reset .2-74 Hard Reset .2-74 Soft Reset.2-75 Chapter
Addressing Modes Instruction Summary
3.1.1 3.1.2 Memory Addressing .3-2 Effective Address Calculation.3-2 Context Synchronization .3-3 Exception Summary .3-3
PowerPC RISC Microprocessor User's Manual
CONTENTS
3.3.1 3.3.2 3.3.3 3.3.4 3.3.4.1 3.3.4.2 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.5.1 3.5.1.1 3.5.1.2 3.5.1.3 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.8.1 3.5.8.2 3.5.9 3.5.9.1 3.5.10 3.5.10.1 3.5.11 3.6.1 3.6.1.1 3.6.1.2 3.6.1.3 3.6.1.4 3.6.1.5 3.6.1.6 3.6.2 3.6.3 3.6.4 Integer Instructions.3-4 Integer Arithmetic Instructions .3-4 Integer Compare Instructions.3-15 Integer Logical Instructions .3-16 Integer Rotate Shift Instructions.3-18 Integer Rotate Instructions .3-21 Integer Shift Instructions.3-24 Floating-Point Instructions.3-31 Floating-Point Arithmetic Instructions .3-31 Floating-Point Multiply-Add Instructions.3-34 Floating-Point Rounding Conversion Instructions.3-38 Floating-Point Compare Instructions .3-39 Floating-Point Status Control Register Instructions.3-40 Load Store Instructions.3-42 Integer Load Store Address Generation .3-42 Register Indirect with Immediate Index Addressing .3-42 Register Indirect with Index Addressing .3-43 Register Indirect Addressing.3-44 Integer Load Instructions .3-44 Integer Store Instructions .3-47 Integer Load Store with Byte Reversal Instructions .3-49 Integer Load Store Multiple Instructions .3-49 Integer Move String Instructions .3-50 Memory Synchronization Instructions.3-53 Floating-Point Load Store Address Generation .3-56 Register Indirect with Immediate Index Addressing .3-57 Register Indirect with Index Addressing .3-57 Floating-Point Load Instructions.3-58 Double-Precision Conversion Floating-Point Load Instructions .3-60 Floating-Point Store Instructions .3-61 Double-Precision Conversion Floating-Point Store Instructions .3-62 Floating-Point Move Instructions .3-62 Branch Flow Control Instructions .3-63 Branch instruction Address Calculation.3-63 Branch Relative Address Mode .3-64 Branch Conditional Relative Address Mode .3-64 Branch Absolute Address Mode .3-65 Branch Conditional Absolute Address Mode .3-66 Branch Conditional Link Register Address Mode.3-66 Branch Conditional Count Register .3-67 Conditional Branch Control .3-68 Basic Branch Mnemonics .3-70 Branch Mnemonics Incorporating Conditions .3-73
Contents
CONTENTS
Paragraph Number 3.6.5 3.6.6 3.6.7 3.6.8 3.6.9 3.7.1 3.7.2 3.8.1 3.8.2 3.8.3 3.8.4 3.10 3.10.1 3.10.2 3.10.3 3.10.4 3.10.5 Title Page Number
Branch Instructions.3-75 Condition Register Logical Instructions.3-76 System Linkage Instructions .3-78 Simplified Mnemonics Branch Processor Instructions.3-78 Trap Instructions Mnemonics .3-79 Processor Control Instructions.3-81 Move to/from Machine State Register Condition Register Instructions .3-81 Move to/from Special-Purpose Register Instructions.3-82 Memory Control Instructions .3-86 Supervisor-Level Cache Management Instruction .3-86 User-Level Cache Instructions .3-87 Segment Register Manipulation Instructions .3-90 Translation Lookaside Buffer Management Instruction.3-91 External Control Instructions.3-92 Miscellaneous Simplified Mnemonics .3-93 No-Op .3-94 Load Immediate.3-94 Load Address.3-94 Move Register .3-94 Complement Register .3-95 Chapter
Cache Memory Unit Operation
4.4.1 4.4.2 4.4.3 4.4.4 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.5.1 4.7.5.2 Cache Organization .4-2 Cache Arbitration .4-3 Cache Access Priorities .4-4 Basic Cache Operations.4-4 Cache Reloads .4-4 Cache Cast-Out Operation.4-4 Cache Sector Push Operation .4-5 Optional Cache Sector Line-Fill Operation.4-5 Cache Data Transactions .4-5 Access Controller Interface Segments .4-6 Cache Coherency.4-6 Memory Management Access Mode Bits-W, M.4-7 MESI Protocol .4-8 MESI State Diagram.4-9 MESI Hardware Considerations.4-10 Coherency Precautions .4-11 Coherency Single-Processor Systems .4-12 Coherency Multiprocessor Systems .4-12
viii
PowerPC RISC Microprocessor User's Manual
CONTENTS
4.7.6 4.7.7 4.7.8 4.7.9 4.7.10 4.7.11 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.8.9 4.10 4.10.1 4.10.2 4.10.3 4.11 Memory Loads Stores .4-13 Atomic Memory References .4-14 Snoop Response Operations .4-14 Cache Reaction Specific Operations.4-15 Internal ARTRY Scenarios .4-17 Enveloped High-Priority Cache Sector Push Operation .4-17 Cache Control Instructions.4-17 Cache Line Compute Size Instruction (clcs).4-18 Data Cache Block Touch Instruction (dcbt).4-18 Data Cache Block Touch Store Instruction (dcbtst) .4-19 Data Cache Block Zero Instruction (dcbz).4-19 Data Cache Block Store Instruction (dcbst) .4-19 Data Cache Block Flush Instruction (dcbf) .4-20 Enforce In-Order Execution Instruction (eieio) .4-20 Instruction Cache Block Invalidate Instruction (icbi).4-21 Instruction Synchronize Instruction (isync).4-21 Operations Caused Cache Control Instructions .4-21 Memory Unit .4-22 Memory Unit Queuing Structure .4-24 Memory Unit Queuing Priorities .4-24 Interface .4-25 MESI State Transactions.4-25 Chapter
Exceptions
5.1.1 5.1.1.1 5.1.1.2 5.1.1.3 5.1.2 5.1.3 5.1.3.1 5.1.3.2 5.2.1 5.2.2 5.2.3 5.4.1 Exception Classes.5-2 Precise Exceptions .5-5 Synchronous/Precise Exceptions .5-6 Asynchronous/Precise Exceptions .5-6 Asynchronous, Imprecise Exceptions .5-7 Exception Priorities.5-7 Recognition Exceptions .5-8 Recognition Asynchronous, Imprecise Exceptions .5-9 Recognition Precise Exceptions .5-9 Exception Processing .5-10 Enabling Disabling Exceptions .5-13 Steps Exception Processing.5-14 Returning from Supervisor Mode .5-14 Process Switching .5-15 Exception Definitions.5-15 Reset Exceptions (x'00100') .5-16
Contents
CONTENTS
Paragraph Number 5.4.1.1 5.4.1.2 5.4.2 5.4.2.1 5.4.2.2 5.4.3 5.4.4 5.4.5 5.4.6 5.4.6.1 5.4.6.1.1 5.4.6.1.2 5.4.6.1.3 5.4.6.1.4 5.4.6.2 5.4.6.3 5.4.6.4 5.4.7 5.4.7.1 5.4.7.2 5.4.7.2.1 5.4.7.3 5.4.7.3.1 5.4.7.4 5.4.7.4.1 5.4.7.5 5.4.7.5.1 5.4.7.6 5.4.7.6.1 5.4.8 5.4.9 5.4.10 5.4.11 5.4.12 5.4.12.1 5.4.12.2 Title Page Number
Soft Reset .5-16 Hard Reset .5-17 Machine Check Exception (x'00200').5-19 Machine Check Exception Enabled (MSR[ME] .5-20 Checkstop State (MSR[ME] .5-20 Data Access Exception (x'00300').5-21 Instruction Access Exception (x'00400') .5-23 External Interrupt (x'00500') .5-24 Alignment Exception (x'00600').5-25 Integer Alignment Exceptions.5-26 Direct-Translation Access .5-27 Controller Interface Access.5-27 Memory-Forced Controller Interface Access .5-27 Page Address Translation Access.5-28 Floating-Point Alignment Exceptions .5-29 Little-Endian Mode Alignment Exceptions .5-29 Interpretation DSISR Alignment Exception .5-29 Program Exception (x'00700') .5-32 Floating-Point Enabled Program Exceptions .5-33 Invalid Operation Exception Conditions .5-39 Action Invalid Operation Exception Conditions .5-40 Zero Divide Exception Condition .5-41 Action Zero Divide Exception Condition.5-41 Overflow Exception Condition .5-42 Action Overflow Exception Condition.5-42 Underflow Exception Condition .5-43 Action Underflow Exception Condition.5-43 Inexact Exception Condition .5-44 Action Inexact Exception Condition .5-44 Floating-Point Unavailable Exception (x'00800') .5-44 Decrementer Exception (x'00900') .5-45 Controller Interface Error Exception (x'00A00') .5-46 System Call Exception (x'00C00').5-47 Mode/Trace Exception (x'02000').5-48 Mode Exception.5-48 Trace Exception.5-50 Chapter
Memory Management Unit
6.1.1 Overview .6-2 Memory Addressing .6-3
PowerPC RISC Microprocessor User's Manual
CONTENTS
6.1.2 6.1.3 6.1.4 6.1.5 6.1.6 6.1.7 6.1.8 6.1.9 6.1.10 6.1.11 6.1.12 6.3.1 6.3.2 6.3.3 6.3.4 6.5.1 6.5.1.1 6.5.1.2 6.5.2 6.5.2.1 6.5.2.2 6.5.2.3 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 6.8.1 6.8.2 6.8.2.1 6.8.2.2 6.8.3 6.8.3.1 6.8.3.2 6.8.4 Organization.6-3 Address Translation Mechanisms .6-5 Memory Protection Facilities.6-7 Page History Information.6-8 General Flow Address Translation .6-8 Memory/MMU Coherency Model .6-10 Effects Instruction Fetch MMU.6-11 Breakpoint Facility.6-12 Exceptions Summary .6-12 Instructions Register Summary .6-14 Entry Invalidation .6-14 ITLB Description .6-15 Memory/Cache Access Modes.6-16 Write-Through .6-16 Caching Inhibited .6-17 Memory Coherence (M).6-17 Combinations .6-18 General Memory Protection Mechanism .6-19 Selection Address Translation Type .6-21 Address Translation Selection Instruction Accesses .6-21 Instruction Address Translation Disabled: MSR[IT] 0.6-22 Instruction Address Translation Enabled: MSR[IT] 1.6-22 Address Translation Selection Data Accesses.6-23 Controller Interface Address Translation: Segment Register 6-23 Data Translation Disabled: MSR[DT] 0.6-23 Data Translation Enabled: MSR[DT] .6-23 Direct Address Translation.6-24 Block Address Translation .6-24 Array Organization.6-25 Recognition Addresses Array .6-26 Register Implementation Array .6-27 Block Memory Protection .6-29 Block Physical Address Generation.6-29 Block Address Translation Summary .6-30 Memory Segment Model.6-33 Page Address Translation Resources .6-33 Recognition Addresses Segments.6-34 Selection Memory Segments .6-35 Selection Controller Interface Segments .6-35 Page Address Translation.6-36 Segment Register Definition .6-37 Page Table Entry (PTE) Format.6-38 Page History Recording .6-40
Contents
CONTENTS
Paragraph Number 6.8.4.1 6.8.4.2 6.8.5 6.8.6 6.9.1 6.9.1.1 6.9.1.2 6.9.1.3 6.9.1.4 6.9.1.5 6.9.1.5.1 6.9.1.5.2 6.9.2 6.9.3 6.9.3.1 6.9.3.2 6.9.3.2.1 6.9.3.2.2 6.9.3.2.3 6.9.3.3 6.9.4 6.10 6.10.1 6.10.2 6.10.3 6.10.4 6.10.5 6.10.6 6.10.7 Title Page Number
Reference .6-41 Change Bit.6-41 Page Memory Protection .6-41 Page Address Translation Summary .6-42 Hashed Page Tables.6-42 Page Table Definition.6-44 Table Search Description Register (SDR1).6-45 Page Table Size .6-46 Hashing Functions.6-47 Page Table Addresses.6-48 Page Table Structure .6-50 Page Table Structure Example .6-51 PTEG Address Mapping Example .6-52 Page Table Search Operation .6-55 Page Table Updates .6-58 Adding Page Table Entry .6-59 Modifying Page Table Entry .6-60 General Case .6-60 Clearing Reference Bit.6-60 Modifying Virtual Address .6-61 Deleting Page Table Entry.6-61 Segment Register Updates.6-61 Controller Interface Address Translation.6-62 Segment Register Format Controller Interface.6-62 Controller Interface Accesses .6-63 Controller Interface Segment Protection.6-63 Memory-Forced Controller Interface Accesses .6-63 Instructions Supported Controller Interface Segments .6-64 Instructions with Effect Controller Interface Segments.6-64 Controller Interface Summary Flow .6-65 Chapter
Instruction Timing
7.1.1 7.1.2 7.2.1 7.2.1.1 7.2.1.2 7.2.1.3 Terminology Conventions .7-1 Definition Terms .7-1 Timing Tables.7-3 Pipeline Description .7-4 Processor Core.7-4 Dispatch Stage Logic.7-9 Integer Unit (IU).7-10 Floating-Point Unit (FPU).7-11
PowerPC RISC Microprocessor User's Manual
CONTENTS
7.2.1.4 7.2.1.5 7.2.2 7.2.2.1 7.2.2.2 7.2.2.2.1 7.2.2.2.2 7.2.2.2.3 7.2.2.2.4 7.2.2.3 7.2.2.3.1 7.2.2.3.2 7.2.2.3.3 7.2.2.3.4 7.2.2.3.5 7.3.1 7.3.1.1 7.3.1.2 7.3.1.3 7.3.1.4 7.3.1.4.1 7.3.1.4.2 7.3.1.4.3 7.3.1.4.4 7.3.1.4.5 7.3.2 7.3.2.1 7.3.2.2 7.3.3 7.3.3.1 7.3.3.2 7.3.3.2.1 7.3.3.2.2 7.3.3.3 7.3.3.3.1 7.3.3.3.2 7.3.3.3.3 7.3.3.3.4 7.3.3.3.5 7.3.3.3.6 Branch Processing Unit (BPU) .7-12 Memory Subsystem Pipeline Stages .7-13 Memory Subsystem.7-14 Memory Management Unit (MMU) .7-14 Interface Unit .7-14 Write Queue .7-15 Read Queue .7-15 Interface Arbitration .7-16 Parking .7-17 Cache Unit.7-17 Cache Arbiter .7-17 Cache Timing.7-17 Cache Miss Timing .7-18 Timings When Processor Clock Frequency Equals Clock Frequency .7-18 Timings When Processor Clock Frequency Does Equal Clock Frequency.7-20 Pipeline Timing .7-22 Common Stages/BPU Pipeline Stages .7-23 Common Stages-Fetch Arbitration (FA) Stage .7-23 Common Stages-Cache Arbitration (CARB) Stage .7-24 Common Stages-Cache Access (CACC) Stage.7-24 Common Stages-Dispatch (DS) Stage .7-25 Branch Dispatch.7-25 Integer Dispatch .7-25 Floating-Point Dispatch .7-26 Synchronization Tags Precise Exception Model.7-26 Dispatch Considerations Related IU/FPU Synchronization .7-28 Pipeline Stages .7-29 Speculative Execution Mispredict Recovery Mechanism.7-29 Branch Pipeline Timing .7-31 Integer Pipeline Stages.7-35 Integer Pipeline-Integer Decode (ID) Stage .7-37 Integer Pipeline-Integer Execute (IE) Stage.7-38 Stage-ALU Instruction Operation .7-38 Stage-Basic Load Store Instruction Operation .7-39 Integer Operations that Access Memory Subsystem .7-39 Integer Pipeline-CARB Stage .7-39 Integer Floating-Point Store Buffer Stages (ISB FPSB) .7-40 Address Translation .7-40 Unaligned Load/Store Operations.7-40 Load/Store String/Multiple Operations.7-41 Integer Pipeline-Cache Access (CACC) Stage .7-41
Contents
xiii
CONTENTS
Paragraph Number 7.3.3.4 7.3.3.5 7.3.3.5.1 7.3.3.5.2 7.3.3.5.3 7.3.3.5.4 7.3.3.5.5 7.3.3.5.6 7.3.3.5.7 7.3.3.5.8 7.3.3.5.9 7.3.3.5.10 7.3.3.5.11 7.3.3.5.12 7.3.3.5.13 7.3.3.5.14 7.3.3.5.15 7.3.3.5.16 7.3.3.5.17 7.3.3.5.18 7.3.3.5.19 7.3.3.5.20 7.3.3.5.21 7.3.3.5.22 7.3.3.5.23 7.3.4 7.3.4.1 7.3.4.2 7.3.4.3 7.3.4.4 7.3.4.5 7.3.4.5.1 7.3.4.5.2 7.3.4.5.3 7.3.4.5.4 7.3.4.5.5 7.3.4.5.6 7.3.4.5.7 Title Page Number
Integer Pipeline-Integer Writeback Stages (IWA IWL) .7-42 Integer Pipeline Instruction Timings .7-42 Arithmetic Instructions.7-42 Boolean Logic Instruction Timings.7-46 Rotate, Shift, Mask Instruction Timings .7-47 Condition Register (CR) Instruction Timings .7-49 Move (mtspr) Instruction Timings.7-51 Move (mtmsr) Instruction.7-52 Move Segment Register Instructions .7-53 Move from Special Purpose Register (mfspr) .7-54 Move from Machine State Register (mfmsr) Instruction Timing .7-55 Move from Segment Register Instruction Timing .7-55 System Call (sc) Return from Interrupt (rfi) Instruction Timings.7-56 Cache Instruction Timings .7-56 Load Instruction Timing.7-58 Load with Update Instruction Timing .7-59 Load Multiple Word (lmw) Load String Word Immediate (lswi).7-60 Load String Word Indexed (lswx) Load String Compare Byte Indexed (lscbx) Instruction Timing .7-61 Integer Store Instruction Timings.7-63 Store with Update Instruction Timing.7-64 Floating-Point Store Instruction Timing .7-64 Update-Form Floating-Point Store Instruction Timings .7-66 Store Multiple Word (stmw) Store String Word Immediate (stswi) .7-68 Store String Word Indexed (stswx) Instruction Timings .7-69 Store Conditional Word Indexed Instruction .7-71 Floating-Point Pipeline Stages .7-72 Floating-Point Decode Stage (FD) .7-73 Floating-Point Multiply Stage (FPM) .7-74 Floating-Point Stage (FPA) .7-74 Floating-Point Write-Back Stage (FWA).7-75 Floating-Point Pipeline Timing .7-75 Single-Precision Instructions.7-75 Double-Precision Instruction Timing.7-77 Floating-Point Move/Store Instruction Timing.7-80 Convert-to-Integer Instruction Timing.7-80 Special Instructions Implemented FPU.7-80 Floating-Point Special-Case Number-Handling Stalls.7-81 Floating-Point Normalization Stalls.7-83 Execute Stage Delay Summary .7-84
PowerPC RISC Microprocessor User's Manual
CONTENTS
Chapter
Signal Descriptions
8.2.1 8.2.1.1 8.2.1.2 8.2.1.3 8.2.1.3.1 8.2.1.3.2 8.2.2 8.2.2.1 8.2.2.1.1 8.2.2.1.2 8.2.2.2 8.2.2.2.1 8.2.2.2.2 8.2.3 8.2.3.1 8.2.3.1.1 8.2.3.1.2 8.2.3.1.3 8.2.3.1.4 8.2.3.2 8.2.3.2.1 8.2.3.2.2 8.2.3.3 8.2.4 8.2.4.1 8.2.4.1.1 8.2.4.1.2 8.2.4.2 8.2.4.2.1 8.2.4.2.2 8.2.4.3 8.2.4.3.1 8.2.4.3.2 8.2.4.4 8.2.4.5 8.2.4.6 8.2.4.7 8.2.4.7.1 Signal Configuration .8-2 Signal Descriptions .8-3 Address Arbitration Signals.8-3 Request (BR)-Output .8-4 Grant (BG)-Input.8-4 Address Busy (ABB) .8-5 Address Busy (ABB)-Output .8-5 Address Busy (ABB)-Input .8-5 Address Transfer Start Signals.8-6 Transfer Start (TS) .8-6 Transfer Start (TS)-Output .8-6 Transfer Start (TS)-Input.8-6 Extended Address Transfer Start (XATS) .8-6 Extended Address Transfer Start (XATS)-Output .8-7 Extended Address Transfer Start (XATS)-Input.8-7 Address Transfer Signals .8-7 Address (A0-A31) .8-7 Address (A0-A31)-Output (Memory Operations).8-7 Address (A0-A31)-Input (Memory Operations) .8-8 Address (A0-A31)-Output (I/O Controller Interface Operations).8-8 Address (A0-A31)-Input (I/O Controller Interface Operations) .8-8 Address Parity (AP0-AP3) .8-8 Address Parity (AP0-AP3)-Output.8-9 Address Parity (AP0-AP3)-Input .8-9 Address Parity Error (APE)-Output.8-9 Address Transfer Attribute Signals.8-10 Transfer Type (TT0-TT4) .8-10 Transfer Type (TT0-TT4)-Output .8-10 Transfer Type (TT0-TT3)-Input .8-10 Transfer Size (TSIZ0-TSIZ2).8-12 Transfer Size (TSIZ0-TSIZ2)-Output.8-12 Transfer Size (TSIZ0-TSIZ2)-Input .8-13 Transfer Burst (TBST) .8-13 Transfer Burst (TBST)-Output .8-13 Transfer Burst (TBST)-Input.8-14 Transfer Code (TC0-TC1)-Output.8-14 Cache Inhibit (CI)-Output .8-14 Write-Through (WT)-Output .8-15 Global (GBL) .8-15 Global (GBL)-Output .8-15
Contents
CONTENTS
Paragraph Number 8.2.4.7.2 8.2.4.8 8.2.4.9 8.2.5 8.2.5.1 8.2.5.2 8.2.5.2.1 8.2.5.2.2 8.2.5.3 8.2.5.3.1 8.2.5.3.2 8.2.6 8.2.6.1 8.2.6.2 8.2.6.3 8.2.6.3.1 8.2.6.3.2 8.2.7 8.2.7.1 8.2.7.1.1 8.2.7.1.2 8.2.7.2 8.2.7.2.1 8.2.7.2.2 8.2.7.3 8.2.8 8.2.8.1 8.2.8.2 8.2.8.3 8.2.9 8.2.9.1 8.2.9.2 8.2.9.3 8.2.9.4 8.2.9.4.1 8.2.9.4.2 8.2.9.5 8.2.9.6 8.2.9.7 8.2.9.8 8.2.9.9 8.2.10 8.2.11 Title Page Number
Global (GBL)-Input .8-15 Cache Element (CSE0-CSE2)-Output .8-15 High-Priority Snoop Request (HP_SNP_REQ).8-16 Address Transfer Termination Signals.8-16 Address Acknowledge (AACK)-Input.8-16 Address Retry (ARTRY).8-17 Address Retry (ARTRY)-Output.8-17 Address Retry (ARTRY)-Input .8-18 Shared (SHD).8-18 Shared (SHD)-Output.8-18 Shared (SHD)-Input .8-19 Data Arbitration Signals.8-19 Data Grant (DBG)-Input .8-19 Data Write Only (DBWO)-Input .8-20 Data Busy (DBB) .8-20 Data Busy (DBB)-Output .8-20 Data Busy (DBB)-Input.8-20 Data Transfer Signals .8-21 Data (DH0-DH31, DL0-DL31) .8-21 Data (DH0-DH31, DL0-DL31)-Output .8-22 Data (DH0-DH31, DL0-DL31)-Input.8-22 Data Parity (DP0-DP7).8-22 Data Parity (DP0-DP7)-Output.8-22 Data Parity (DP0-DP7)-Input .8-23 Data Parity Error (DPE)-Output.8-23 Data Transfer Termination Signals .8-23 Transfer Acknowledge (TA)-Input.8-24 Data Retry (DRTRY)-Input .8-24 Transfer Error Acknowledge (TEA)-Input.8-25 System Status Signals.8-25 Interrupt (INT)-Input.8-25 Checkstop Input (CKSTP_IN)-Input .8-26 Checkstop Output (CKSTP_OUT)-Output.8-26 Reset Signals .8-26 Hard Reset (HRESET)-Input.8-27 Soft Reset (SRESET)-Input .8-27 System Quiesced (SYS_QUIESC).8-27 Resume (RESUME) .8-28 Quiesce Request (QUIESC_REQ) .8-28 Reservation (RSRV)-Output.8-28 Driver Mode (SC_DRIVE) .8-29 COP/Scan Interface .8-29 Clock Signals.8-30
PowerPC RISC Microprocessor User's Manual
CONTENTS
8.2.11.1 8.2.11.2 8.2.11.3 8.2.11.4 Double-Speed Processor Clock (2X_PCLK)-Input .8-30 Clock Phase (PCLK_EN)-Input .8-31 Phase (BCLK_EN)-Input.8-32 Real-Time Clock (RTC)-Input .8-35 Clocking Multiprocessor System .8-35 Chapter
System Interface Operation
9.1.1 9.1.2 9.1.3 9.1.4 9.2.1 9.2.2 9.3.1 9.3.2 9.3.2.1 9.3.2.2 9.3.2.2.1 9.3.2.2.2 9.3.2.3 9.3.2.3.1 9.3.2.4 9.3.3 9.3.3.1 9.4.1 9.4.1.1 9.4.2 9.4.3 9.4.3.1 9.4.3.2 9.4.4 9.6.1 9.6.1.1 9.6.1.2 PowerPC Microprocessor System Interface Overview.9-1 Operation On-Chip Cache.9-2 Operation Memory Unit Loads Stores .9-4 Operation System Interface.9-4 Controller Interface Accesses .9-5 Memory Access Protocol .9-6 Arbitration Signals .9-8 Address Pipelining Split-Bus Transactions.9-9 Address Tenure .9-10 Address Arbitration.9-10 Address Transfer .9-12 Address Parity.9-13 Address Transfer Attribute Signals.9-13 Transfer Type (TT0-TT4) Signals.9-13 Transfer Size (TSIZ0-TSIZ2) Signals.9-14 Effect Alignment Data Transfers.9-15 Alignment External Control Instructions.9-17 Transfer Code (TC0-TC1) Signals .9-18 Address Transfer Termination .9-19 Address Retry Sources .9-21 Data Tenure.9-21 Data Arbitration .9-22 Using Signal .9-22 Data Transfer.9-23 Data Transfer Termination.9-24 Normal Single-Beat Termination.9-24 Data Transfer Termination Error.9-26 Memory Coherency-MESI Protocol.9-28 Timing Examples .9-30 Memory- I/O-Mapped Operations.9-37 Controller Interface Transactions .9-39 Store Operations.9-40 Load Operations .9-40
Contents
xvii
CONTENTS
Paragraph Number 9.6.2 9.6.2.1 9.6.2.2 9.6.3 9.6.4 9.7.1 9.7.2 9.7.3 9.7.4 9.8.1 9.9.1 9.9.2 9.9.3 9.9.4 9.9.5 9.9.6 9.9.7 9.10 Title Page Number
Controller Interface Transaction Protocol Details .9-41 Packet .9-42 Packet .9-43 Reply Operations.9-43 Controller Interface Operation Timing .9-45 Interrupt, Checkstop, Reset Signals.9-47 External Interrupt.9-47 Checkstops.9-47 Reset Inputs .9-48 Soft Stop Control Signals .9-48 Processor State Signals.9-48 Support lwarx/stwcx. Instruction Pair.9-48 IEEE 1149.1-Compatible Interface .9-49 Deviations from IEEE 1149.1 Boundary-Scan Specifications.9-49 Additional Information about IEEE 1149.1 Interface .9-50 IEEE 1149.1 Interface Description.9-50 IEEE Interface Clock Requirements .9-50 IEEE 1149.1 Interface Reset Requirements .9-52 IEEE Interface Instruction Set.9-53 IEEE 1149.1 Interface Boundary-Scan Chain.9-53 Using DBWO (Data Write Only) .9-60 Chapter
Instruction
10.1 10.1.1 10.1.2 10.1.3 10.2 10.3 Instruction Formats.10-1 Split-Field Notation .10-1 Instruction Fields .10-2 Notation Conventions .10-4 Instruction Set.10-6 Instructions Implemented .10-219 Appendix Instruction Listings
Complete Instruction List Sorted Mnemonic .A-1 Complete Instruction List Sorted Opcode.A-10 Instructions Grouped Functional Categories.A-18 Complete Instruction List Sorted Form.A-28
xviii
PowerPC RISC Microprocessor User's Manual
CONTENTS
Appendix POWER Architecture Cross Reference
B.10 B.11 B.12 B.13 B.14 B.15 B.16 B.17 B.18 B.19 B.20 B.21 B.22 B.23 B.24 B.24.1 B.24.2 B.25 B.26
Instructions, Formerly Supervisor-Level Instructions.B-1 Newly Supervisor-Level Instructions .B-1 Reserved Bits Instructions .B-2 Reserved Bits Registers .B-2 Alignment Check .B-2 Condition Register .B-2 Inappropriate bits .B-3 Field.B-3 Branch Conditional Count Register.B-4 System Call/Supervisor Call .B-4 Integer Exception Register (XER) .B-4 Update Forms Memory Access .B-4 Multiple Register Loads.B-5 Alignment Load/Store Multiple .B-5 Load String Instructions.B-5 Synchronization .B-5 Move to/from .B-6 Effects Exceptions FPSCR Bits .B-6 Floating-Point Store Instructions .B-6 Move from FPSCR .B-6 Clearing Bytes Data Cache .B-7 Segment Register Instructions .B-7 Entry Invalidation.B-7 Timing Facilities .B-7 Real-Time Clock .B-7 Decrementer .B-8 Deleted Instructions .B-8 POWER Instructions Supported PowerPC Architecture .B-10
Appendix PowerPC Instructions Implemented
Contents
CONTENTS
Paragraph Number Title Appendix Classes Instructions Page Number
D.1.1 D.1.1.1 D.1.2 D.1.3
Classes Instructions.D-1 Defined Instruction Class .D-1 Invalid Instruction Forms .D-2 Illegal Instruction Class .D-2 Reserved Instructions .D-3
Appendix Multiple-Precision Shifts
Multiple-Precision Shift Examples
Appendix Floating-Point Models
F.3.1 F.3.2
Conversion from Floating-Point Number Signed Fixed-Point Integer Word Conversion from Floating-Point Number Unsigned Fixed-Point Integer Word Floating-Point Models. Floating-Point Round Single-Precision Model Floating-Point Convert Integer Model
Appendix Synchronization Programming Examples
G.2.1 G.2.2 G.2.3 G.2.4 G.2.5
General Information .G-1 Synchronization Primitives .G-2 Fetch No-Op .G-2 Fetch Store .G-2 Fetch Add.G-3 Fetch AND.G-3 Test .G-3 Compare Swap.G-4 Lock Acquisition Release.G-4 List Insertion .G-5
PowerPC RISC Microprocessor User's Manual
CONTENTS
Appendix Implementation Summary Programmers
POWER Extensions Variances. Implementation-Dependent Extensions Options PowerPC Architecture.
Appendix Instruction Timing Examples
I.1.1 I.1.1.1 I.1.1.2 I.1.1.3 I.1.1.4 I.1.1.5 I.1.1.6 I.1.1.6.1 I.1.1.6.2 I.1.1.6.3 I.1.1.6.4 I.1.1.6.5 I.1.1.7 I.1.1.7.1 I.1.1.7.2 I.1.1.7.3 I.1.1.7.4 I.2.1 I.2.1.1 I.2.1.2 I.2.1.3 I.2.1.4 I.2.1.5 I.2.2 I.2.2.1 I.2.2.1.1
Branch Instruction Timing Examples .I-1 General Branch Timing.I-1 Dispatch Considerations.I-1 Integer Instruction Dependencies.I-3 Dependencies with CTR.I-5 Stalls Caused when Link Shadow Register Full.I-7 Performance Considerations when Instruction Cannot Dispatched Order-Link Count Dependencies .I-10 Conditional Branch Timing.I-12 Conditional Operations-Case .I-12 Conditional Operations-Case .I-16 Conditional Operations-Case .I-20 Conditional Operations-Case .I-26 Conditional Operations-Case .I-37 Conditional Loop Closure Examples .I-48 Conditional Loop Closure-Case 1.I-48 Conditional Loop Closure-Case 2.I-52 Conditional Loop Closure-Case 3.I-58 Conditional Loop Closure-Case 1.I-70 Integer Instruction Timing Examples .I-83 Instruction Timings.I-83 Data Dependencies .I-83 Condition Register (CR) Dependencies .I-88 Dependencies.I-97 Dependencies .I-104 Other Register Dependencies Instructions .I-106 Load/Store Instruction Timings .I-111 Load Target Dependencies.I-111 Load Instructions Followed Independent Operation Body I-111
Contents
CONTENTS
Paragraph Number Title Page Number
I.2.2.1.2 I.2.2.1.3 I.2.2.1.4 I.2.2.1.5 I.2.3 I.2.3.1 I.2.3.2 I.3.1 I.3.2
Load Instruction Followed Dependent Operation. I-112 Load Instruction Followed Dependent Operation with Intervening Independent Instruction. I-113 Consecutive Load Instructions without Register Dependencies. I-114 Consecutive Load Instructions with Dependency. I-114 Store Source Dependencies I-119 Load Store Operations that Update Option. I-121 Load/Store Collisions I-125 Floating-Point Instruction Timing Examples. I-126 Floating-Point Data Dependency Stalls. I-126 Timing Examples Involving Floating-Point Code Sequences. I-130 Additional Code Sequence Timings. I-150 Glossary Terms Abbreviations Index
xxii
PowerPC RISC Microprocessor User's Manual
Appendix Instruction Listings
This appendix lists instruction implemented PowerPC microprocessor additional PowerPC instructions implemented sorted mnemonic, opcode, form, grouped functional categories.
Complete Instruction List Sorted Mnemonic
Table lists instructions implemented plus those defined PowerPC architecture that implemented alphabetical order mnemonic.
Table A-1. Complete Instruction List Sorted Mnemonic
Key: Reserved bits Instruction implemented
Name absx addx addcx addex addi addic addic. addis addmex addzex andx andcx andi. andis.
00000
SIMM SIMM SIMM SIMM
00000 00000
UIMM UIMM
Appendix Instruction Listings
Name bcctrx bclrx clcs cmpi cmpl cmpli cntlzd
crfD crfD crfD crfD crbD crbD crbD crbD crbD crbD crbD crbD 00000 00000 00000 00000 00000 00000 crbA crbA crbA crbA crbA crbA crbA crbA
00000 00000 00000 SIMM UIMM 00000 00000 crbB crbB crbB crbB crbB crbB crbB crbB SIMM 1014
cntlzwx crand crandc creqv crnand crnor cror crorc crxor dcbf dcbi dcbst dcbt dcbtst dcbz divx divd divdu divsx divwx divwux dozx dozi
PowerPC RISC Microprocessor User's Manual
Name eciwx ecowx eieio eqvx extsbx extshx extsw fabsx faddx faddsx fcfid fcmpo fcmpu fctid
crfD crfD
00000
00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000
00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000
fctidz fctiwx fctiwzx fdivx fdivsx fmaddx fmaddsx fmrx fmsubx fmsubsx fmulx fmulsx fnabsx fnegx fnmaddx fnmaddsx fnmsubx fnmsubsx fresx
Appendix Instruction Listings
Name frspx frsqrte fselx fsqrtx fsqrts fsubx fsubsx icbi isync lbzu lbzux lbzx
00000 00000
00000 00000 00000 00000 00000
00000 00000 00000 00000 00000 00000
ldarx
ldux
lfdu lfdux lfdx lfsu lfsux lfsx lhau lhaux lhax lhbrx lhzu
PowerPC RISC Microprocessor User's Manual
Name lhzux lhzx lscbxx
crbD crfD crfD crfS
crbD crbD
crfS crfS
00000 00000 00000 00000 00000 00000
lswi lswx
lwarx lwaux lwax
lwbrx lwzu lwzux lwzx maskgx
maskirx mcrf mcrfs mcrxr mfcr mffsx mfmsr mfspr
00000 00000 00000 00000
mfsr mfsrin mftb mtcrf mtfsb0x mtfsb1x mtfsfx mtfsfix mtmsr
00000
00000
00000 00000
00000 00000
00000 00000
00000
Appendix Instruction Listings
Name mtspr mtsr
00000 00000 00000
00000 SIMM 00000 00000 UIMM UIMM 00000
mtsrin mulx
00000 00000 00000 00000
mulhd mulhdu
mulhwx mulhwux mulld mulli mullwx nabsx
nandx negx norx orcx oris
rldcl rldcr
rldic rldicl
rldicr rldimi rlmix rlwimix rlwinmx rlwnmx rribx slbia
000000000000000 00000
PowerPC RISC Microprocessor User's Manual
Name slbie
00000
00000
slex sleqx
sliqx slliqx
sllqx slqx
slwx srad
sradi sraiqx
sraqx srawx srawix
srex sreax
sreqx sriqx srliqx srlqx
srqx srwx stbu stbux stbx stdcx. stdu stdux stdx
Appendix Instruction Listings
Name stfd stfdu stfdux stfdx stfiwx stfs stfsu stfsux stfsx sthbrx sthu sthux sthx stmw stswi
00000 00000
00000 00000 00000 00000 00000 00000
SIMM SIMM
stswx stwbrx stwcx. stwu stwux stwx subfx subfcx subfex subfic subfmex subfzex sync tlbia
PowerPC RISC Microprocessor User's Manual
Name tlbie tlbsync
00000 00000
00000 00000
00000 SIMM UIMM UIMM
xorx xori xoris
Supervisor-level instruction. Supervisor- user-level instruction. Non-PowerPC instruction implemented POWER architecture compatibliity. Load store string multiple word instruction. 64-bit instruction.
Appendix Instruction Listings
Complete Instruction List Sorted Opcode
Table lists instructions implemented plus those defined PowerPC architecture that implemented numerical order opcode.
Table A-2. Complete Instruction List Sorted Opcode
Key: Reserved bits Name mulli subfic dozi
Instruction implemented
0000 0000 0001 0010 0010 0010 0011 0011 0011 0011 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100
crfD crfD 00000
00000
SIMM SIMM SIMM SIMM SIMM UIMM SIMM SIMM SIMM SIMM SIMM 000000000000000 0000 0010 0100 0110 0000 0010 1000 1100 0000 0100 0100 1000 0010
cmpli cmpi addic addic. addi addis mcrf bclrx crnor crandc isync crxor crnand crand creqv crorc cror bcctrx
crfD crbD
crfS crbA
00000 00000 crbB 00000 crbB 00000 crbB crbB crbB crbB crbB crbB 00000
00000 crbD 00000 crbD crbD crbD crbD crbD crbD
00000 crbA 00000 crbA crbA crbA crbA crbA crbA
0100
A-10
PowerPC RISC Microprocessor User's Manual
Name rlwimix rlwinmx rlmix rlwnmx oris xori xoris andi. andis. rldicl rldicrx
0101 0101 0101 0101 0110 0110 0110 0110 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 crfD crfD
00000
UIMM UIMM UIMM UIMM UIMM UIMM
00000 00000
0000 0000 0001 0001 0001 0001 0010 0010 0010 0010 0011 0011 0011 0011 0011 0100 0101
1000 1001
rldicx rldimi
rldclx rldcr
subfcx mulhdux
addcx mulhwux mfcr lwarx lwzx slwx cntlzwx sldx andx maskgx cmpl subfx
Appendix Instruction Listings
A-11
Name ldux dcbst lwzux cntlzdx andcx
0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111
00000 00000
00000
00000 00000 00000 00000 00000 00000 00000
0110 0110 0110 0111 0111
0001000100 1001 1001 1010 1010 1010 1010 1101 1101 1110 1111 0001 0001 0010 0010 0010 0010 0010 0011 0011 0110 0110 0111 1001 1001 1010 1010 1010
mulhdx mulhwx mfmsr ldarx
dcbf lbzx negx mulx
lbzux norx subfex addex mtcrf mtmsr stdx stwcx. stwx slqx
00000
slex stdux stwux sliqx subfzex addzex mtsr stdcx. stbx
A-12
PowerPC RISC Microprocessor User's Manual
Name sllqx sleqx
0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111
00000 00000 00000 00000
00000 00000 00000
00000 00000
1011 1011 1101 1101 1101 1101 1110 1110 1110 1111 0001 0001 0010 0010 0010 0011 0110 0110 0110 0111 1001 1010 1010 1010 1101 1101 1110 1110 1110 1110 0010 0011 0111
subfmex mulld
addmex mullwx mtsrin dcbtst stbux slliqx
dozx addx lscbxx dcbt lhzx eqvx tlbie eciwx lhzux xorx divx mfspr lwax lhax absx divsx tlbia mftb lwaux lhaux sthx orcx sradix
00000 00000
Appendix Instruction Listings
A-13
Name slbie ecowx sthux divdux divwux mtspr dcbi nandx nabsx
0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111
00000 00000 00000 crfS 00000 00000
00000 00000 00000 00000
0110 0110 0110 0111 1001 1001 1010 1010 1011 1101 1101 1101 1110 0000 0010 0010 0010 0010 0011 0011 0011 0011 0110 0110 1010 1010 1010 1010 1110 0010 0010 0010 0010
00000 00000 00000 00000 00000 00000 00000
divdx divwx slbia mcrxr clcs lswx
lwbrx lfsx srwx rribx
srdx maskirx
tlbsync lfsux mfsr lswi sync lfdx lfdux mfsrin stswx stwbrx stfsx
00000 00000
A-14
PowerPC RISC Microprocessor User's Manual
Name srqx srex
0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 0111 1000 1000 1000 1000 1001 1001 1001 1001
00000 00000 00000
00000
00000 00000 00000 00000
0011 0011 0110 0111 1010 1010 1011 1011 1110 1111 0010 0011 0011 0111 1010 0010 0011 0011 0011 0111 0111 1010 1010 1011 1110
stfsux sriqx stswi stfdx srlqx sreqx stfdux srliqx
lhbrx srawx sradx srawix eieio sthbrx sraqx sreax
extshx sraiqx
extsbx icbi stfiwx extsw
dcbz lwzu lbzu stwu stbu
Appendix Instruction Listings
A-15
Name lhzu lhau sthu stmw
1010 1010 1010 1010 1011 1011 1011 1011 1100 1100 1100 1100 1101 1101 1101 1101 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1110 1111 1111 1111 crfD
00000 00000 00000 00000
10010 10100 10101 10110 11000 11001 11100 11101 11110 11111 0000 0001
lfsu lfdu stfs stfsu stfd stfdu
fdivsx fsubsx faddsx fsqrtsx fresx fmulsx fmsubsx fmaddsx fnmsubsx fnmaddsx stdu fcmpu frspx
00000 00000 00000 00000 00000
A-16
PowerPC RISC Microprocessor User's Manual
Name fctiwx fctiwzx fdivx fsubx faddx fsqrtx fselx fmulx frsqrtex fmsubx fmaddx fnmsubx fnmaddx fcmpo mtfsb1x fnegx mcrfs mtfsb0x fmrx mtfsfix fnabsx fabsx mffsx mtfsfx fctidx fctidzx fcfidx
1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 crbD crfD crfD
00000 00000 00000 00000 00000 00000 crfS
00000 00000 00000 00000
00000 00000 00000 00000 00000
0001 0001
10010 10100 10101 10110 10111 11001 11010 11100 11101 11110 11111
0100 0100 0101 1000 1000 1001 0000 0001 0001 1000 1000 0101 0101 1001
crbD
crbD
00000 00000 00000 00000 00000 00000 00000 00000 00000
00000
Supervisor-level instruction. Supervisor- user-level instruction. Non-PowerPC instruction implemented POWER architecture compatibliity. Load store string multiple word instruction. 64-bit instruction.
Appendix Instruction Listings
A-17
Instructions Grouped Functional Categories
Table through Table A-30 list instructions grouped functional categories.
Table A-3. Integer Arithmetic Instructions
Key: Reserved bits Name absx addcx addex addi addic addic. addis addmex addx addzex divx divsx
Instruction implemented
00000
SIMM SIMM SIMM SIMM
00000 00000
SIMM
divwx divwux dozx dozi
mulx mulhwx mulhwux mulli mullwx nabsx negx subfx subfcx subfex subfmex
SIMM
00000 00000 00000
A-18
PowerPC RISC Microprocessor User's Manual
subfzex
00000
Table A-4. Integer Compare Instructions
Name cmpi cmpl cmpli
crfD crfD crfD crfD
SIMM UIMM
Table A-5. Integer Logical Instructions
Name andx andcx andi. andis. cntlzwx eqvx extsbx extshx nandx norx orcx oris xorx xori xoris
UIMM UIMM 00000 00000 00000 UIMM UIMM UIMM UIMM
Appendix Instruction Listings
A-19
Table A-6. Integer Rotate Instructions
Name maskgx maskirx
rlmix rlwimix rlwinmx rlwnmx rribx
Table A-7. Integer Shift Instructions
Name slex sleqx sliqx
slliqx sllqx
slqx slwx sraqx sraiqx
srawx srawix srex sreax
sreqx sriqx srliqx srlqx
srqx srwx
A-20
PowerPC RISC Microprocessor User's Manual
Table A-8. Floating-Point Arithmetic Instructions
Name
faddx faddsx fdivx fdivsx fmulx fmulsx fsubx fsubsx
00000 00000
00000 00000 00000 00000 00000 00000
Table A-9. Floating-Point Rounding Conversion Instructions
Name
fctiwx fctiwzx frspx
00000 00000 00000
Table A-10. Floating-Point Compare Instructions
Name
fcmpo fcmpu
crfD crfD
Table A-11. Floating-Point Status Control Register Instructions
Name
mcrfs mffsx mtfsb0x mtfsb1x mtfsfx mtfsfix
crfD crbD crbD
crfS
00000 00000 00000 00000
00000 00000 00000
00000
crbD
Appendix Instruction Listings
A-21
Table A-12. Integer Load Instructions
Name lbzu lbzux lbzx lhau lhaux lhax lhzu lhzux lhzx lwzu lwzux lwzx
Table A-13. Integer Store Instructions
Name stbu stbux stbx sthu sthux sthx stwu stwux stwx
A-22
PowerPC RISC Microprocessor User's Manual
Table A-14. Integer Load Store with Byte Reversal Instructions
Name lhbrx lwbrx sthbrx stwbrx
Table A-15. Integer Load Store Multiple Instructions
Name stmw
Table A-16. Integer Move String Instructions
Name lscbxx lswi lswx stswi stswx
Table A-17. Memory Synchronization Instructions
Name eieio isync lwarx stwcx. sync
00000 00000 00000
00000 00000 00000
00000 00000 00000
Appendix Instruction Listings
A-23
Table A-18. Floating-Point Load Instructions
Name
lfdu lfdux lfdx lfsu lfsux lfsx
Table A-19. Floating-Point Store Instructions
Name
stfd stfdu stfdux stfdx stfs stfsu stfsux stfsx
Table A-20. Floating-Point Move Instructions
Name
fabsx fmrx fnabsx fnegx
00000 00000 00000 00000
A-24
PowerPC RISC Microprocessor User's Manual
Table A-21. Branch Instructions
Name
bcctrx bclrx
00000 00000
Table A-22. Condition Register Logical Instructions
Name crand crandc creqv crnand crnor cror crorc crxor mcrf
crbD crbD crbD crbD crbD crbD crbD crbD crfD
crbA crbA crbA crbA crbA crbA crbA crbA crfS
crbB crbB crbB crbB crbB crbB crbB crbB 00000
Table A-23. System Linkage Instructions
Name
00000 00000
00000 00000
00000
000000000000000
Table A-24. Trap Instructions
Name
SIMM
Appendix Instruction Listings
A-25
Table A-25. Move to/from Special Purpose Register Instructions
Name mcrxr mfcr mfmsr mfspr
crfS
00000 00000 00000 00000
00000 00000 00000
mtcrf mtmsr
00000
mtspr
Table A-26. Cache Management Supervisor-Level Instruction
Name dcbi
00000
Table A-27. User-Level Cache Instructions
Name clcs dcbf dcbst dcbt dcbtst dcbz
00000 00000 00000 00000 00000
00000
1014
Table A-28. Segment Register Manipulation Instructions
Name mfsr mfsrin mtsr mtsrin
00000 00000
00000
00000
Table A-29. Translation Lookaside Buffer Management Instruction
Name tlbie
00000
00000
A-26
PowerPC RISC Microprocessor User's Manual
Table A-30. External Control Instructions
Name eciwx ecowx
Supervisor-level instruction. Supervisor- user-level instruction. Non-PowerPC instruction implemented POWER architecture compatibility. Load store string multiple word instruction. 64-bit instruction.
Appendix Instruction Listings
A-27
Complete Instruction List Sorted Form
Table A-31 through Table A-45 list instructions grouped form.
Key: Reserved bits Instruction implemented
Table A-31. I-Form
OPCD Specific Instruction Name
Table A-32. B-Form
OPCD Specific Instruction Name
Table A-33. SC-Form
OPCD 00000 00000 Specific Instruction Name
000000000000000
00000
00000
000000000000000
Table A-34. D-Form
OPCD OPCD OPCD OPCD OPCD OPCD OPCD crfD crfD SIMM UIMM SIMM UIMM SIMM
A-28
PowerPC RISC Microprocessor User's Manual
OPCD OPCD
Specific Instructions
Name addi addic addic. addis andi. andis. cmpi cmpli dozi lbzu lfdu lfsu lhau lhzu
crfD crfD
SIMM SIMM SIMM SIMM UIMM UIMM SIMM UIMM SIMM SIMM UIMM UIMM
lwzu mulli oris stbu stfd stfdu stfs
Appendix Instruction Listings
A-29
stfsu sthu stmw stwu subfic xori xoris
SIMM SIMM SIMM UIMM UIMM
Table A-35. DS-Form
OPCD Specific Instructions Name
stdu
Table A-36. X-Form
OPCD OPCD OPCD OPCD OPCD OPCD OPCD OPCD OPCD OPCD OPCD 00000 00000 00000 00000
00000 00000 00000 00000
A-30
PowerPC RISC Microprocessor User's Manual
OPCD OPCD OPCD OPCD OPCD OPCD OPCD OPCD OPCD OPCD OPCD OPCD crfD crfD crfD crfS crbD
00000 00000
00000 00000
crfS
00000 00000
00000 00000 00000
00000 00000
00000
Specific Instructions Name andx andcx cmpl cntlzd cntlzwx dcbf dcbi
crfD crfD
00000 00000 00000 00000 00000 00000 00000
00000 00000
00000 00000 00000 00000 00000 00000
1014
dcbst dcbt dcbtst dcbz eciwx ecowx eieio eqvx extsbx extshx extsw fabsx
Appendix Instruction Listings
A-31
fctid fctidz fcfid
crfD crfD
00000
00000 00000 00000 00000 00000 00000 00000 00000 00000
0000000000
fctiwx fctiwzx fcmpo fcmpu fmrx fnabsx fnegx frspx icbi lbzux lbzx ldux
ldarx
lfdux lfdx lfsux lfsx lhaux lhax lhbrx lhzux lhzx lscbxx lswi lswx lwarx lwbrx lwzux lwzx lwaux lwax
A-32
PowerPC RISC Microprocessor User's Manual
maskgx maskirx mcrfs mcrxr mfcr mffsx mfmsr
crfD crfS
crbD crbD crbD 00000 00000 crfS
00000 00000 00000 00000 00000 00000 00000 00000
00000 00000 00000 00000
mfsr mfsrin
00000 00000 00000 00000 00000
mtfsb0x mtfsb1x mtfsfix mtmsr
00000 00000 00000
mtsr mtsrin
00000 00000 00000
nandx norx orcx rribx slbia
slbie slex sleqx sliqx slliqx sllqx slqx slwx srad sraqx sraiqx srawx srawix
Appendix Instruction Listings
A-33
srex sreax
00000 00000 00000 00000
00000 00000 00000 00000
00000 00000 00000
sreqx sriqx srliqx srlqx
srqx srwx stbux stbx stdcx. stdux
stdx stfdux stfdx stfsux stfiwx stfsx sthbrx sthux sthx stswi stswx stwbrx stwcx. stwx stwux sync tlbia tlbie tlbsync xorx
A-34
PowerPC RISC Microprocessor User's Manual
Table A-37. XL-Form
OPCD OPCD OPCD OPCD crbD crfD crbA crfS 00000 crbB 00000 00000 0000000000
00000
00000
Specific Instructions Name bcctrx bclrx crand creqv crnand crnor cror crorc crxor isync mcrf
crbD crbD crbD crbD crbD crbD crbD 00000 crfD
crbA crbA crbA crbA crbA crbA crbA 00000 crfS
00000 00000 crbB crbB crbB crbB crbB crbB crbB 00000 00000 00000
0000000000
00000
00000
Table A-38. XFS-Form
OPCD OPCD OPCD
Specific Instructions
Name mfspr mtspr
mtcrf mftb
Appendix Instruction Listings
A-35
Table A-39. XFL-Form
OPCD
Specific Instruction Name mtfsfx
Table A-40. XS-Form
OPCD
Specific Instruction Name sradi
Table A-41. XO-Form
OPCD OPCD OPCD 00000
Specific Instructions Name absx addx addcx addex addmex addzex divx
00000 00000 00000
divd divdu
divsx divwx divwux dozx
mulx mulhd
A-36
PowerPC RISC Microprocessor User's Manual
mulhdu mulhwx mulhwux mulld mullwx nabsx negx subfx subfcx subfex subfmex subfzex
00000 00000 00000 00000
Table A-42. A-Form
OPCD OPCD OPCD OPCD 00000 00000 00000 00000
Specific Instructions Name faddx faddsx fdivx fdivsx fmaddx fmaddsx fmsubx fmsubsx fmulx fmulsx fnmaddx fnmaddsx fnmsubx fnmsubsx fresx
00000
00000 00000
00000 00000 00000 00000 00000
Appendix Instruction Listings
A-37
frsqrte fselx fsqrtx fsqrts fsubx fsubsx
00000 00000 00000
00000 00000 00000 00000 00000
Table A-43. M-Form
OPCD OPCD
Specific Instructions Name rlmix rlwimix rlwinmx rlwnmx
Table A-44. MD-Form
OPCD OPCD
Specific Instructions Name rldic rldicl rldicr rldimi
A-38
PowerPC RISC Microprocessor User's Manual
Table A-45. MDS-Form
OPCD OPCD
Specific Instructions Name rldcl rldcr
Supervisor-level instruction. Supervisor- user-level instruction. Non-PowerPC instruction implemented POWER architecture compatibility. Load store string multiple word instruction. 64-bit instruction.
Appendix Instruction Listings
A-39
A-40
PowerPC RISC Microprocessor User's Manual
Appendix POWER Architecture Cross Reference
This appendix identifies incompatibilities that must managed migration from POWER architecture PowerPC architecture. Some incompatibilities can, least principle, detected processor, which traps lets software simulate POWER operation. Others cannot detected processor. general, incompatibilities identified here those that affect POWER application program. Incompatibilities instructions that used only POWER system programs discussed. Note that this appendix describes incompatibilities with respect PowerPC architecture general. PowerPC microprocessor more closely compatible with POWER architecture. POWER instructions implemented listed Table B-4.
Instructions, Formerly Supervisor-Level Instructions
Instructions PowerPC architecture typically opcode values (including extended opcode) that illegal POWER architecture. instructions that supervisor-level POWER architecture (for example, dclz, called dcbz PowerPC architecture) have been made non-supervisor-level PowerPC architecture. POWER program that executes these now-valid now-non-supervisor-level instructions, expecting cause system illegal instruction error handler (program exception) system supervisor-level instruction error handler invoked, will execute correctly PowerPC processors.
Newly Supervisor-Level Instructions
following instructions user-level POWER architecture supervisorlevel PowerPC processors. mfmsr mfsr
Appendix POWER Architecture Cross Reference
Reserved Bits Instructions
These shown with '/'s instruction opcode definitions. POWER architecture such bits ignored processor. PowerPC architecture they must instruction form invalid. several cases PowerPC architecture assumes that such bits POWER instructions indeed cases include following: cmpi, cmp, cmpli, cmpl assume that POWER instructions mtspr mfspr assume that bits 16-20 POWER instructions
Reserved Bits Registers
POWER architecture defines these bits when read, either when written PowerPC architecture implementation-dependent, each register, whether these bits when read ignored when written copied from source target when read written
Alignment Check
POWER machine-state register, MSR[24], supported PowerPC architecture. reserved PowerPC architecture. low-order bits always used. Notice that value 0-the normal value reserved bit-means "ignore low-order bits" POWER architecture, value means "use low-order bits." However, MSR[24] assigned meaning PowerPC architecture.
Condition Register
following instructions specify field explicitly (via field) also have record option. PowerPC architecture, these instructions instruction form invalid. POWER architecture, instructions execute normally except shown Table B-1.
Table B-1. Condition Register Settings
Instruction cmpl mcrxr fcmpu fcmpo mcrfs Setting undefined undefined undefined undefined undefined undefined
PowerPC RISC Microprocessor User's Manual
Inappropriate bits
instructions listed below, POWER processors execute instruction normally with exception setting link register condition register field undefined value. PowerPC architecture, such instruction forms invalid. PowerPC instruction form invalid (svc POWER architecture) Condition register logical instructions mcrf isync (ics POWER architecture)
PowerPC instruction form invalid Rc=1: Integer X-form load store instructions Integer X-form compare instructions X-form trap instruction mtspr, mfspr, mtcrf, mcrxr, mfcr, mtmsr, mfmsr, mtsr, mtsrin, tlbi, eciwx, ecowx, clcs, mfsr, mfsrin, sync, eieio, icli Floating-point X-form load store instructions floating-point compare instructions mcrfs dcbz (dclz POWER architecture)
Field
POWER architecture shows certain bits field-used branch conditional instructions-as without indicating these bits interpreted. These bits ignored POWER processors. PowerPC architecture treats these bits differently, shown Table B-2.
Table B-2. Differences Field
Field BO[0-3] BO[4] Description PowerPC architecture shows bits cleared, instruction form invalid. This bit, which shown POWER architecture independent other four bits-is shown PowerPC architecture gives hint about whether branch likely taken. POWER program wrong value this bit, program runs correctly performance suffer.
Appendix POWER Architecture Cross Reference
Branch Conditional Count Register
case which count register decremented tested (that case which BO[2] POWER architecture specifies only that branch target address undefined, implying that count register, link register updated normal way. PowerPC architecture considers this instruction form invalid.
B.10 System Call/Supervisor Call
System Call (sc) instruction PowerPC architecture called Supervisor Call (svcx) POWER architecture. Differences implementations follows: POWER architecture provides version Supervisor Call instruction (bit that allows instruction fetching continue locations. used "fast SVCs." PowerPC architecture provides such version POWER architecture provides version Supervisor Call instruction (bits 30-31 b'11') that resumes instruction fetching location sets link register address next instruction. PowerPC architecture provides such version; instruction instruction form invalid. POWER architecture, information from saved count register. PowerPC architecture, this information saved SRR1. POWER architecture permits bits 16-29 Supervisor Call (sc) instruction nonzero, while PowerPC architecture, such instruction form invalid. Because bits 16-29 instruction regarded reserved POWER architecture, they ignored 601. POWER architecture saves low-order bits Supervisor Call instruction count register; PowerPC architecture does save them. settings bits system call exception differ between POWER architecture PowerPC architecture.
B.11 Integer Exception Register (XER)
Bits 18-23 reserved PowerPC architecture, whereas POWER architecture they defined contain comparison byte lscbx instruction, which included PowerPC architecture.
B.12 Update Forms Memory Access
PowerPC architecture requires that equal either (integer load only) restriction violated, instruction form invalid. Appendix "Classes Instructions," information about invalid instructions. POWER architecture permits these cases simply avoids saving
PowerPC RISC Microprocessor User's Manual
B.13 Multiple Register Loads
PowerPC architecture requires that present instruction format, range registers loaded, while POWER architecture permits this does alter this case. (The PowerPC architecture restriction applies even although there obvious benefit restriction this case since used compute effective address PowerPC architecture restriction violated, instruction form invalid. instructions affected listed follows: POWER architecture) lswi (lsi POWER architecture) lswx (lsx POWER architecture)
Thus, example, instruction that loads registers valid POWER architecture invalid form PowerPC architecture.
B.14 Alignment Load/Store Multiple
PowerPC architecture requires word-aligned yields alignment exception boundedly undefined results not. POWER architecture specifies that alignment exception occurs
B.15 Load String Instructions
PowerPC architecture, lswx instruction with zero length leaves content undefined, while POWER architecture corresponding instruction (lsx) does alter
B.16 Synchronization
sync instruction (called POWER architecture) causes much more pervasive synchronization PowerPC architecture than POWER architecture. more information, refer Chapter "Instruction Set."
Appendix POWER Architecture Cross Reference
B.17 Move to/from
Differences Move to/from Special Purpose Register (mtspr mfspr) instructions follows: field bits long PowerPC architecture, only POWER architecture. mfspr instruction used read decrementer (DEC) register userlevel mode POWER architecture, only supervisor state PowerPC architecture. value specified instruction defined values, PowerPC architecture considers instruction form invalid. user mode, allowed values exclude those accessible only supervisor mode.) POWER architecture does alter architected registers this case generates program exception instruction executed user mode SPR[0]=1.
PowerPC processors except processor, program exception generated attempt execute mtspr mfspr instruction with SPR[0-4]=0 (which denotes register). Similarly, program exception generated attempts execute mfspr instruction with SPR[0-4] (which denotes reading decrementer register POWER architecture).
B.18 Effects Exceptions FPSCR Bits
following cases, POWER architecture does specify bits set, while PowerPC architecture preserves them illegal operation exceptions caused compare instructions clears them otherwise: Invalid operation exception (enabled disabled) Zero divide exception (enabled disabled) Disabled overflow exception
B.19 Floating-Point Store Instructions
POWER architecture uses FPSCR[UE] help determine whether denormalization should done, while PowerPC architecture does not. Using FPSCR[UE] fact incorrect: PowerPC architecture FPSCR[UE] denormalized singleprecision number copied from memory location another means instruction followed stfs instruction, "copies" same.
B.20 Move from FPSCR
POWER architecture defines high-order bits result mffs x'FFFF FFFF'. PowerPC architecture they undefined.
PowerPC RISC Microprocessor User's Manual
B.21 Clearing Bytes Data Cache
dclz instruction POWER architecture dcbz instruction PowerPC architecture have same opcode. However, functions differ following respects: dclz instruction clears line; dcbz clears block sector 601). dclz instruction saves dcbz does not. dclz instruction supervisor-level; dcbz not.
B.22 Segment Register Instructions
definitions four segment register instructions (mtsr, mtsrin, mfsr, mfsrin) differ respects between POWER architecture PowerPC architecture. Instructions similar mtsrin mfsrin called mtsri mfsri POWER architecture. Privilege-mfsr mfsri user-level instructions POWER architecture, while mfsr mfsrin supervisor-level PowerPC architecture. Function-the indirect instructions (mtsri mfsri) POWER architecture register computing segment register number, computed stored into rD); PowerPC architecture mtsrin mfsrin have field stored. mtsr, mtsrin (mtsri), mfsr instructions have same opcodes PowerPC architecture POWER architecture. mfsri instruction POWER architecture mfsrin instruction PowerPC architecture have different opcodes.
B.23 Entry Invalidation
tlbi instruction POWER architecture tlbie instruction PowerPC architecture have same opcode. However, functions differ following respects. tlbi instruction computes (rA|0) (rB), while tlbie lacks field computes (rB). tlbi instruction saves tlbie lacks field does save
B.24 Timing Facilities
This section describes differences between POWER architecture PowerPC architecture timer facilities.
B.24.1 Real-Time Clock
implements POWER-based RTC. Note that POWER supported PowerPC architecture. Instead, PowerPC architecture provides time base (TB).
Appendix POWER Architecture Cross Reference
Both time base 64-bit special purpose registers, they differ following respects. counts seconds nanoseconds, while counts "ticks." frequency implementation-dependent. increments discontinuously-1 added RTCU when value RTCL passes 999_999_999. increments continuously-1 added when value passes x'FFFF FFFF'. written read mtspr mfspr instructions, using numbers that denote RTCU RTCD. written read instructions mtspr mftb. numbers that denote RTCL RTCU invalid PowerPC architecture except 601. guaranteed increment least once time required execute Immediate (addi) instructions. analogous guarantee made bits RTCL need implemented, while bits must implemented.
B.24.2 Decrementer
PowerPC architecture register decrements same rate that increments, while POWER decrementers decrement every nanosecond (which same rate that increments). bits POWER need implemented, while bits PowerPC architecture must implemented.
B.25 Deleted Instructions
Table lists instructions that part POWER architecture have been dropped from PowerPC architecture. POWER instructions that implemented processor identified table
Table B-3. POWER Instructions Deleted from PowerPC Architecture
Mnemonic clcs dclst divs Absolute Cache Line Compute Size Cache Line Flush Cache Line Invalidate Data Cache Line Store Divide Divide Short Instruction Primary Opcode Secondary Opcode PowerPC Microprocessor
PowerPC RISC Microprocessor User's Manual
Table B-3. POWER Instructions Deleted from PowerPC Architecture (Continued)
Mnemonic dozi lscbx maskg maskir mfsrin nabs rlmi rrib sleq sliq slliq sllq sraiq sraq srea sreq sriq srliq srlq svcx Instruction Difference Zero Difference Zero Immediate Load String Compare Byte Indexed Mask Generate Mask Insert from Register Move from Segment Register Indirect Multiply Negative Absolute Real Address Compute Rotate Left then Mask Insert Rotate Right Insert Shift Left Extended Shift Left Extended with Shift Left Immediate with Shift Left Long Immediate with Shift Left Long with Shift Left with Shift Right Algebraic Immediate with Shift Right Algebraic with Shift Right Extended Shift Right Extended Algebraic Shift Right Extended with Shift Right Immediate with Shift Right Long Immediate with Shift Right Long with Shift Right with Supervisor Call, with Primary Opcode Secondary Opcode PowerPC Microprocessor
Note: Many these instructions register. defined PowerPC architecture, implemented processor.
Appendix POWER Architecture Cross Reference
B.26 POWER Instructions Supported PowerPC Architecture
Table lists POWER instructions implemented PowerPC architecture.
Table B-4. POWER Instructions Implemented PowerPC Architecture
POWER Mnemonic amex andil. andiu. azex bccx bcrx caxx cntlzx dclz extsx fmax fmsx fnmax fnmsx lbrx Extended Immediate Immediate Record Minus Extended Immediate Lower Immediate Upper Zero Extended Branch Conditional Count Register Branch Conditional Link Register Compute Address Lower Compute Address Upper Compute Address Count Leading Zeros Data Cache Line Zero Data Cache Synchronize Extend Sign Floating Floating Divide Floating Multiply Floating Multiply-Add Floating Multiply-Subtract Floating Negative Multiply-Add Floating Negative Multiply-Subtract Floating Subtract Instruction Cache Synchronize Load Load Byte-Reverse Indexed Instruction Mnemonic addcx addex addic addic. addmex andi. andis. addzex bcctrx bclrx addi addis addx cntlzwx dcbz sync extshx faddx fdivx fmulx fmaddx fmsubx fnmaddx fnmsubx fsubx isync lwbrx Carrying Extended Immediate Carrying Immediate Carrying Record Minus Extended Immediate Immediate Shifted Zero Extended Branch Conditional Count Register Branch Conditional Link Register Immediate Immediate Shifted Count Leading Zeros Word Data Cache Block Zero Synchronize Extend Sign Half Word Floating-Point Floating-Point Divide Floating-Point Multiply Floating-Point Multiply-Add Floating-Point Multiply-Subtract Floating-Point Negative Multiply-Add Floating-Point Negative Multiply-Subtract Floating-Point Subtract Instruction Synchronize Load Word Zero Load Word Byte-Reverse Indexed PowerPC Instruction
B-10
PowerPC RISC Microprocessor User's Manual
Table B-4. POWER Instructions Implemented PowerPC Architecture (Continued)
POWER Mnemonic mtsri muli mulsx oril oriu rlimix rlinmx rlnmx sfex sfmex sfzex srax sraix stbrx stsi stsx Instruction Load Multiple Load String Immediate Load String Indexed Load with Update Load with Update Indexed Load Indexed Move Segment Register Indirect Multiply Immediate Multiply Short Immediate Lower Immediate Upper Rotate Left Immediate then Mask Insert Rotate Left Immediate then With Mask Rotate Left then with Mask Subtract from Subtract from Extended Subtract from Immediate Subtract from Minus Extended Subtract from Zero Extended Shift Left Shift Right Shift Right Algebraic Shift Right Algebraic Immediate Store Store Byte-Reverse Indexed Store Multiple Store String Immediate Store String Indexed Store with Update Mnemonic lswi lswx lwzu lwzux lwzx mtsrin mulli mullwx oris rlwimix rlwinmx rlwnmx subfcx subfex subfic subfmex subfzex slwx srwx srawx srawix stwbrx stmw stswi stswx stwu PowerPC Instruction Load Multiple Word Load String Word Immediate Load String Word Indexed Load Word Zero with Update Load Word Zero with Update Indexed Load Word Zero Indexed Move Segment Register Indirect Multiply Immediate Multiply Immediate Immediate Shifted Rotate Left Word Immediate then Mask Insert Rotate Left Word Immediate then with Mask Rotate Left Word then with Mask Subtract from Carrying Subtract from Extended Subtract from Immediate Carrying Subtract from Minus Extended Subtract from Zero Extended Shift Left Word Shift Right Word Shift Right Algebraic Word Shift Right Algebraic Word Immediate Store Word Store Word Byte-Reverse Indexed Store Multiple Word Store String Word Immediate Store String Word Indexed Store Word with Update
Appendix POWER Architecture Cross Reference
B-11
Table B-4. POWER Instructions Implemented PowerPC Architecture (Continued)
POWER Mnemonic stux svca tlbi xoril xoriu Instruction Store with Update Indexed Store Indexed Supervisor Call Trap Trap Immediate Invalidate Entry Immediate Lower Immediate Upper Mnemonic stwux stwx tlbie xori xoris PowerPC Instruction Store Word with Update Indexed Store Word Indexed System Call Trap Word Trap Word Immediate Translation Lookaside Buffer Invalidate Entry Immediate Immediate Shifted
Supervisor-level instruction
B-12
PowerPC RISC Microprocessor User's Manual
Appendix PowerPC Instructions Implemented
This appendix describes 32-bit 64-bit PowerPC instructions that implemented PowerPC microprocessor. also provides 32-bit 64-bit encodings that implemented 601. Table provides list 32-bit PowerPC instructions that optional PowerPC architecture implemented 601. Attempting execute these instructions causes illegal instruction exception.
Table C-1. 32-Bit Instructions Implemented PowerPC Microprocessor
Mnemonic fres frsqrte fsel fsqrt fsqrts mfspr mftb mtspr stfiwx tlbia tlbsync Instruction Floating-Point Reciprocal Estimate Single-Precision Floating-Point Reciprocal Square Root Estimate Floating-Point Select Floating-Point Square Root Floating-Point Square Root Single-Precision Move from Special Purpose Register Move from Time Base Move Special Purpose Register Store Floating-Point Integer Word Indexed Translation Lookaside Buffer Invalidate Translation Lookaside Buffer Synchronize
Some encodings supported 601. These encodings listed Table Table C-4.
Table provides list 32-bit encodings that implemented 601.
Appendix PowerPC Instructions Implemented
Table C-2. 32-Bit Encodings Implemented PowerPC Microprocessor
Decimal SPR[5-9] 01000 01000 10000 10000 10000 10000 10000 10000 10000 10000 SPR[0-4] 11100 11101 11000 11001 11010 11011 11100 11101 11110 11111 DBAT0U DBAT0L DBAT1U DBAT1L DBAT2U DBAT2L DBAT3U DBAT3L Register Name Access
Supervisor Supervisor Supervisor Supervisor Supervisor Supervisor Supervisor Supervisor Supervisor Supervisor
Table provides list 64-bit instructions that implemented 601, that generate illegal instruction exception.
Table C-3. 64-Bit Instructions Implemented PowerPC Microprocessor
Mnemonic cntlzd divd divdu extsw fcfid fctid fctidz ldarx ldux lwaux Instruction Count Leading Zeros Double Word Divide Double Word Divide Double Word Unsigned Extend Sign Word Floating-Point Convert From Integer Double Word Floating-Point Convert Integer Double Word Floating-Point Convert Integer Double Word with Round toward Zero Load Double Word Load Double Word Reserve Indexed Load Double Word with Update Load Double Word with Update Indexed Load Double Word Indexed Load Word Algebraic Load Word Algebraic with Update Indexed
PowerPC RISC Microprocessor User's Manual
Table C-3. 64-Bit Instructions Implemented PowerPC Microprocessor (Continued)
Mnemonic lwax mulld mulhd mulhdu rldcl rldcr rldic rldicl rldicr rldimi slbia slbie srad sradi stdcx. stdu stdux stdx Instruction Load Word Algebraic Indexed Multiply Double Word Multiply High Double Word Multiply High Double Word Unsigned Rotate Left Double Word then Clear Left Rotate Left Double Word then Clear Right Rotate Left Double Word Immediate then Clear Rotate Left Double Word Immediate then Clear Left Rotate Left Double Word Immediate then Clear Right Rotate Left Double Word Immediate then Mask Insert Invalidate Invalidate Entry Shift Left Double Word Shift Right Algebraic Double Word Shift Right Algebraic Double Word Immediate Shift Right Double Word Store Double Word Store Double Word Conditional Indexed Store Double Word with Update Store Double Word Indexed with Update Store Double Word Indexed Trap Double Word Trap Double Word Immediate
Table provides 64-bit encoding that implemented 601.
Table C-4. 64-Bit Encoding Implemented PowerPC Microprocessor
Decimal SPR[5-9] 01000 SPR[0-4] 11000 Register Name Access
Supervisor
Appendix PowerPC Instructions Implemented
cntlzd
cntlzd cntlzd.
Implemented
rA,rS rA,rS (Rc=0) (Rc=1)
cntlzd
Integer Unit
Count Leading Zeros Double Word
Reserved
00000
while n<64 rS[n]=1 then leave nn+1
count number consecutive zero bits starting register placed into This number ranges from inclusive. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: (Rc=1)
divd
Divide Double Word
Implemented
rD,rA,rB rD,rA,rB rD,rA,rB rD,rA,rB (OE=0 Rc=0) (OE=0 Rc=1) (OE=1 Rc=0) (OE=1 Rc=1)
divd
Integer Unit
divd divd. divdo divdo.
dividend[0-63]rA divisor[0-63]rB rDdividend+divisor
PowerPC RISC Microprocessor User's Manual
64-bit dividend 64-bit divisor 64-bit quotient dividend divisor placed into remainder supplied result. Both dividend divisor interpreted signed integers. quotient unique signed integer that satisfies dividend=(quotientdivisor)+r where |divisor| dividend non-negative, -|divisor| dividend negative. attempt made perform divisions 0x8000_0000_0000_0000 <anything> then contents undefined. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Exception Register: Affected: OE=1) Rc=1)
divdu
divdu divdu. divduo divduo.
Implemented
rD,rA,rB rD,rA,rB rD,rA,rB rD,rA,rB (OE=0 Rc=0) (OE=0 Rc=1) (OE=1 Rc=0) (OE=1 Rc=1)
divdu
Integer Unit
Divide Double Word Unsigned
dividend[0-63]rA divisor[0-63]rB rDdividend+divisor
64-bit dividend 64-bit divisor 64-bit quotient dividend divisor placed into remainder supplied result.
Appendix PowerPC Instructions Implemented
Both dividend divisor interpreted unsigned integers. quotient unique unsigned integer that satisfies dividend=(quotientdivisor)+r where divisor. attempt made perform division <anything> then contents undefined. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Exception Register: Affected: OE=1) Rc=1)
extsw
Extend Sign Word
Implemented
rA,rS rA,rS (Rc=0) (Rc=1)
extsw
extsw extsw.
Reserved
00000
SrS[32] rA[32-63]rS[32-63] rA[0-31](32)S
Register rS[32-63] placed into rA[32-63]. placed into rA[0-31]. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Rc=1)
PowerPC RISC Microprocessor User's Manual
fcfid
fcfid fcfid.
Implemented
frD,frB frD,frB (Rc=0) (Rc=1)
fcfid
Floating-Point Unit
Floating-Point Convert from Integer Double Word
Reserved
00000
64-bit signed fixed-point operand register converted infinitely precise floating-point integer. result conversion already double-precision range placed into register frD. Otherwise result conversion rounded doubleprecision using rounding mode specified FPSCR[RN] placed into register frD. FPSCR[FPRF] class sign result. FPSCR[FR] result incremented when rounded. FPSCR[FI] result inexact. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR1 Field): Affected: Exception Register: Affected: FPRF, Rc=1)
fctid
fctid fctid.
Implemented
frD,frB frD,frB (Rc=0) (Rc=1)
fctid
Floating-Point Convert Integer Double Word
Reserved
00000
floating-point operand converted 64-bit signed fixed-point integer, using rounding mode specified FPSCR[RN], placed into frD. operand greater than 0x'7FFF_FFFF_FFFF_FFFF'. operand less than -263, then 0x'8000_0000_0000_0000'.
Appendix PowerPC Instructions Implemented
Except enabled invalid operation exceptions, FPSCR[FPRF] undefined. FPSCR[FR] result incremented when rounded. FPSCR[FI] result inexact. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR1 Field): Affected: Exception Register: Affected: FPRF (undefined), VXSNAN VXCVI Rc=1)
fctidz
fctidz fctidz.
Implemented
frD,frB frD,frB (Rc=0) (Rc=1)
fctidz
Floating-Point Convert Integer Double Word with Round toward Zero
Reserved
00000
floating-point operand converted 64-bit signed fixed-point integer, using rounding mode round toward zero, placed into frD. operand greater than 0x'7FFF_FFFF_FFFF_FFFF'. operand less than -263, then 0x'8000_0000_0000_0000'. Except enabled invalid operation exceptions, FPSCR[FPRF] undefined. FPSCR[FR] result incremented when rounded. FPSCR[FI] result inexact. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR1 Field): Affected: Exception Register: Affected: FPRF (undefined), VXSNAN VXCVI Rc=1)
PowerPC RISC Microprocessor User's Manual
fresx
fres fres.
Implemented
frD,frB frD,frB (Rc=0) (Rc=1)
fresx
Floating-Point Unit
Floating-Point Reciprocal Estimate Single-Precision
Reserved
00000 00000
This PowerPC instruction implemented 601. Execution this instruction will invoke illegal instruction handler. description operation this instruction provided emulation purposes. single-precision estimate reciprocal floating-point operand register placed into register frD. estimate placed into register correct precision part reciprocal frB. Operation with various special values operand summarized below.
Operand SNaN QNaN Result QNaN** QNaN Exception None None VXSNAN None
result FPSCR[ZE]=1. result FPSCR[VE]=1.
FPSCR[FPRF] class sign result, except invalid operation exceptions when FPSCR[VE]=1 zero divide exceptions when FPSCR[ZE]=1. Other registers altered: Condition Register (CR1 Field): Affected: FEX, Rc=1) Floating-point Status Control Register: Affected: VXSNAN, FPRF, (undefined), (undefined)
Appendix PowerPC Instructions Implemented
frsqrte
frsqrte frsqrte.
Implemented
frD,frB frD,frB (Rc=0) (Rc=1)
frsqrte
Floating-Point Unit
Floating-Point Reciprocal Square Root Estimate
Reserved
00000 00000
This PowerPC instruction implemented 601. Execution this instruction will invoke illegal instruction handler. description operation this instruction provided emulation purposes. double-precision estimate reciprocal square root floating-point operand register placed into register frD. estimate placed into register correct precision part reciprocal square root frB. Operation with various special values operand summarized below.
Operand SNaN QNaN Result QNaN** QNaN** QNaN** QNaN Exception VXSQRT VXSQRT None VXSNAN None
result FPSCR[ZE]=1. result FPSCR[VE]=1.
FPSCR[FPRF] class result, except invalid operation exceptions when FPSCR[VE] zero divide exceptions when FPSCR[ZE] Other registers altered: Condition Register (CR1 Field): Affected: FEX, Rc=1) Floating-point Status Control Register: Affected: VXSNAN, FPRF, (undefined), (undefined)
C-10
PowerPC RISC Microprocessor User's Manual
fselx
Floating-Point Select
Implemented
frD,frA,frC,frB frD,frA,frC,frB (Rc=0) (Rc=1)
fselx
Floating-Point Unit
fsel fsel.
(frA) then else frD(frB)
This PowerPC instruction implemented 601. Execution this instruction will invoke illegal instruction handler. description operation this instruction provided emulation purposes. floating-point operand register compared value zero. operand greater than equal zero, register contents register frC. operand less than zero NaN, register contents register frB. comparison ignores sign zero (i.e., regards equal -0). Other registers altered: Condition Register (CR1 Field): Affected: FEX, Rc=1)
Care must taken using fsel IEEE compatibility required, values being tested NaNs infinities.
fsqrtx
fsqrt fsqrt.
Implemented
frD,frB frD,frB (Rc=0) (Rc=1)
fsqrtx
Floating-Point Unit
Floating-Point Square Root
Reserved
00000 00000
This PowerPC instruction implemented 601. Execution this instruction will invoke illegal instruction handler. description operation this instruction provided emulation purposes. square root floating-point operand register placed into register frD.
Appendix PowerPC Instructions Implemented
C-11
most significant resultant significand result normalized. result rounded target precision under control floating-point rounding control field FPSCR placed into register frD. Operation with various special values operand summarized below.
Operand SNaN QNaN Result QNaN* QNaN* QNaN* QNaN Exception VXSQRT VXSQRT None None VXSNAN None
result FPSCR[VE]=1.
FPSCR[FPRF] class sign result, except invalid operation exceptions when FPSCR[VE]=1. Other registers altered: Condition Register (CR1 Field): Affected: FEX, Rc=1) Floating-point Status Control Register: Affected: VXSQRT, VXSNAN, FPRF,
fsqrtx
fsqrts fsqrts.
Implemented
frD,frB frD,frB (Rc=0) (Rc=1)
fsqrtx
Floating-Point Unit
Floating-Point Square Root Single-Precision
Reserved
00000 00000
This PowerPC instruction implemented 601. Execution this instruction will invoke illegal instruction handler. description operation this instruction provided emulation purposes. square root floating-point operand register placed into register frD. most significant resultant significand result normalized. result rounded target precision under control floating-point rounding control field FPSCR placed into register frD.
C-12
PowerPC RISC Microprocessor User's Manual
Operation with various special values operand summarized below.
Operand SNaN QNaN Result QNaN* QNaN* QNaN* QNaN Exception VXSQRT VXSQRT None None VXSNAN None
result FPSCR[VE]=1.
FPSCR[FPRF] class sign result, except invalid operation exceptions when FPSCR[VE]=1. Other registers altered: Condition Register (CR1 Field): Affected: FEX, Rc=1) Floating-point Status Control Register: Affected: VXSQRT, VXSNAN, FPRF,
Load Double Word
Implemented
rD,ds(rA)
Integer Unit
rA=0 then else EAb+EXTS(ds||0b00) rDMEM(EA,
(rA|0)+(ds||0b00). double word memory addressed loaded into This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
Appendix PowerPC Instructions Implemented
C-13
ldarx
ldarx
Implemented
rD,rA,rB
ldarx
Integer Unit
Reserved
Load Double Word Reserve Indexed
rA=0 then else EAb+rB RESERVE1 RESERVE_ADDRfunc(EA) rDMEM(EA,
(rA|0)+(rB). double word memory addressed loaded into This instruction creates reservation store double word conditional instruction. address computed from associated with reservation, replaces address previously associated with reservation. must multiple not, system alignment error handler invoked results boundedly undefined. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
C-14
PowerPC RISC Microprocessor User's Manual
Implemented
rD,ds(rA)
Integer Unit
Load Double Word with Update
EArA+EXTS(ds||0b00) rDMEM(EA, rAEA
(rA)+(ds||0b00). double word memory addressed loaded into placed into rA=0 rA=rD, instruction form invalid. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
ldux
ldux
Implemented
rD,rA,rB
ldux
Integer Unit
Reserved
Load Double Word with Update Indexed
EArA+ rDMEM(EA, rAEA
(rA)+(rB). double word memory addressed loaded into placed into rA=0 rA=rD, instruction form invalid. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction invoked.
Appendix PowerPC Instructions Implemented
C-15
Implemented
rD,rA,rB
Reserved
Load Double Word Indexed
then else EAb+rB rDMEM(EA,
(rA|0)+(rB). double word memory addressed loaded into This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
Load Word Algebraic
Implemented
rD,ds(rA)
Integer Unit
rA=0 then else EAb+EXTS(ds||0b00) rDEXTS(MEM(EA,
(rA|0)+(ds||0b00). word memory addressed loaded into rD[32-63]. Register rD[0-31] filled with copy loaded word. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
C-16 PowerPC RISC Microprocessor User's Manual
lwaux
lwaux
Implemented
rD,rA,rB
lwaux
Reserved
Load Word Algebraic with Update Indexed
EArA+rB rDEXTS(MEM(EA, rAEA
(rA)+(rB). word memory addressed loaded into rD[32-63]. Register rD[0-31] filled with copy loaded word. placed into rA=0 rA=rD, instruction form invalid. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
lwax
lwax
Implemented
rD,rA,rB
lwax
Reserved
Load Word Algebraic Indexed
rA=0 then else rDEXTS(MEM(EA,
(rA|0)+(rB). word memory addressed loaded into rD[32-63]. Register rD[0-31] filled with copy loaded word. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
Appendix PowerPC Instructions Implemented
C-17
mftb
Move from Time Base
Implemented
rD,TBR
mftb
Integer Unit
mftb
Reserved
nTBR[5-9] TBR[0-4] n=268 then (64-bit implementation) then rDTB else TB[32-63] else n=269 then (64-bit implementation) then rD(32)0 TB[0-31] else rDTB[0-31]
field denotes either time base time base upper, encoded shown Table C-5. contents designated register copied When reading Time Base Upper 64-bit implementation, high-order bits zero.
Table C-5. Encodings mftb
Decimal TBR* TBR[5-9] TBR[0-4] 01000 01000 01100 01101 Register Name Access User User
*Note that order 5-bit halves number reversed.
field contains value other than values shown Table C-5, instruction form invalid. Other registers altered: None
C-18
PowerPC RISC Microprocessor User's Manual
mulhd
mulhd mulhd.
Implemented
rD,rA,rB rD,rA,rB (Rc=0) (Rc=1)
mulhd
Integer Unit
Multiply High Double Word
prod[0-127]rArB rDprod[0-63]
64-bit multiplicands high-order bits 128-bit product multiplicands placed into Both multiplicands product interpreted signed integers. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Rc=1)
mulhdu
mulhdu mulhdu.
Implemented
rD,rA,rB rD,rA,rB (Rc=0) (Rc=1)
mulhdu
Integer Unit
Multiply High Double Word Unsigned
prod[0-127]rArB rDprod[0-63]
64-bit multiplicands high-order bits 128-bit product multiplicands placed into Both multiplicands product interpreted unsigned integers. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked.
Appendix PowerPC Instructions Implemented C-19
Other registers altered: Condition Register (CR0 Field): Affected: Rc=1)
mulld
mulld mulld. mulldo mulldo.
Implemented
rD,rA,rB rD,rA,rB rD,rA,rB rD,rA,rB (OE=0 Rc=0) (OE=0 Rc=1) (OE=1 Rc=0) (OE=1 Rc=1)
mulld
Integer Unit
Multiply Double Word
prod[0-127]rArB rDprod[64-127]
64-bit operands low-order bits 128-bit product operands placed into OE=1, then product cannot represented bits. Both operands product interpreted signed integers. However, result independent whether operands interpreted signed unsigned integers. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Exception Register: Affected: OE=1) Rc=1)
C-20
PowerPC RISC Microprocessor User's Manual
rldcl
rldcl rldcl.
Implemented
rA,rS,rB,MB rA,rS,rB,MB
rldcl
Integer Unit
Rotate Left Double Word then Clear Left
(Rc=0) (Rc=1)
nrB[58-63] rROTL[64](rS, bMB[5] MB[0-4] mMASK(b,
contents rotated[64] left number bits specified rB[58-63]. mask generated having 1-bits from through 0-bits elsewhere. rotated data ANDed with generated mask result placed into This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Rc=1)
rldcr
rldcr rldcr.
Implemented
rA,rS,rB,ME rA,rS,rB,ME
rldcr
Integer Unit
Rotate Left Double Word then Clear Right
(Rc=0) (Rc=1)
nrB[58-63] rROTL[64](rS, eME[5] ME[0-4] mMASK(0,
Appendix PowerPC Instructions Implemented
C-21
contents rotated[64] left number bits specified rB[58-63]. mask generated having 1-bits from through 0-bits elsewhere. rotated data ANDed with generated mask result placed into This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Rc=1)
rldic
rldic rldic.
Implemented
rA,rS,SH,MB rA,rS,SH,MB
rldic
Integer Unit
Rotate Left Double Word Immediate then Clear
(Rc=0) (Rc=1)
nSH[5] SH[0-4] rROTL[64](rS, bMB[5] MB[0-4] mMASK(b,
contents rotated[64] left bits. mask generated having 1-bits from through 63-SH 0-bits elsewhere. rotated data ANDed with generated mask result placed into This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Rc=1)
C-22
PowerPC RISC Microprocessor User's Manual
rldicl
rldicl rldicl.
Implemented
rA,rS,SH,MB rA,rS,SH,MB
rldicl
Integer Unit
Rotate Left Double Word Immediate then Clear Left
(Rc=0) (Rc=1)
nSH[5] SH[0-4] rROTL[64](rS, bMB[5] MB[0-4] mMASK(b,
contents rotated[64] left bits. mask generated having 1-bits from through 0-bits elsewhere. rotated data ANDed with generated mask result placed into This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Rc=1)
rldicr
rldicr rldicr.
Implemented
rA,rS,SH,ME rA,rS,SH,ME
rldicr
Integer Unit
Rotate Left Double Word Immediate then Clear Right
(Rc=0) (Rc=1)
nSH[5] SH[0-4] rROTL[64](rS, eME[5] ME[0-4] mMASK(0,
Appendix PowerPC Instructions Implemented
C-23
contents rotated[64] left bits. mask generated having 1-bits from 0-bits elsewhere. rotated data ANDed with generated mask result placed into This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Rc=1)
rldimi
rldimi rldimi.
Implemented
rA,rS,SH,MB rA,rS,SH,MB
rldimi
Integer Unit
Rotate Left Double Word Immediate then Clear Left
(Rc=0) (Rc=1)
nSH[5] SH[0-4] rROTL[64](rS, bMB[5] MB[0-4] mMASK(b, rA(r
contents rotated[64] left bits. mask generated having 1-bits from through 63-SH 0-bits elsewhere. rotated data inserted into under control generated mask. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Rc=1)
C-24
PowerPC RISC Microprocessor User's Manual
slbia
Invalidate
Implemented
slbia
Reserved
00000
00000
00000
entriesinvalid
This PowerPC instruction implemented 601. Execution this instruction will invoke illegal instruction handler. description operation this instruction provided emulation purposes. invalidated regardless settings MSR[IT] MSR[DT]. This instruction supervisor-level. This instruction optional PowerPC architecture. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause illegal instruction type program exception. necessary that point valid segment table when issuing slbia. Other registers altered: None
slbie
Invalidate Entry
Implemented
slbie
slbie
Reserved
00000 00000
EA(rB) entry exists then entryinvalid
This PowerPC instruction implemented 601. Execution this instruction will invoke illegal instruction handler. description operation this instruction provided emulation purposes.
Appendix PowerPC Instructions Implemented
C-25
contents segment lookaside buffer (SLB) contains entry corresponding that entry made invalid (i.e., removed from SLB). search done regardless settings MSR[IT] MSR[DT]. Block address translation any, ignored. This instruction supervisor-level. This instruction optional PowerPC architecture. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause illegal instruction type program exception. Other registers altered: None necessary that point valid segment table when issuing slbie.
Shift Left Double Word
Implemented
rA,rS,rB rA,rS,rB (Rc=0) (Rc=1)
Integer Unit
sld.
nrB[58-63] rROTL[64](rS, rB[57]=0 then mMASK(0, 63-n) else m(64)0
contents shifted left number bits specified rB[57-63]. Bits shifted position lost. Zeros supplied vacated positions right. result placed into Shift amounts from give zero result. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Rc=1)
C-26
PowerPC RISC Microprocessor User's Manual
srad
srad srad.
Implemented
rA,rS,rB rA,rS,rB (Rc=0) (Rc=1)
srad
Integer Unit
Shift Right Algebraic Double Word
nrB[58-63] rROTL[64](rS, 64-n) rB[57]=0 then mMASK(n, else m(64)0 SrS[0] rA(r (((64)S) ((r& m)0)
contents shifted right number bits specified rB[57-63]. Bits shifted position lost. replicated fill vacated positions left. result placed into negative 1-bits shifted position otherwise shift amount zero causes equal Shift amounts from give result sign bits cause receive sign This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked.
Appendix PowerPC Instructions Implemented
C-27
Other registers altered: Condition Register (CR0 Field): Affected: Exception Register: Affected: Rc=1)
sradi
sradi sradi.
Implemented
rA,rS,SH rA,rS,SH (Rc=0) (Rc=1)
sradi
Integer Unit
Shift Right Algebraic Double Word Immediate
nSH[5] SH[0-4] rROTL[64](rS, 64-n) mMASK(n, SrS[0] rA(r (((64)S) ((r& m)0)
contents shifted right bits. Bits shifted position lost. replicated fill vacated positions left. result placed into negative 1-bits shifted position otherwise shift amount zero causes equal This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Exception Register: Affected: Rc=1)
C-28
PowerPC RISC Microprocessor User's Manual
Shift Right Double Word
Implemented
rA,rS,rB rA,rS,rB (Rc=0) (Rc=1)
Integer Unit
srd.
nrB[58-63] rROTL[64](rS, 64-n) rB[57]=0 then mMASK(n, else m(64)0
contents shifted right number bits specified rB[57-63]. Bits shifted position lost. Zeros supplied vacated positions left. result placed into Shift amounts from give zero result. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected: Rc=1)
Store Double Word
Implemented
rS,ds(rA)
Integer Unit
rA=0 then else EXTS(ds||0b00) (MEM(EA, 8))rS
(rA|0)+(ds||0b00). Register stored into double word memory addressed
Appendix PowerPC Instructions Implemented
C-29
This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
stdcx.
stdcx.
Implemented
rS,rA,rB
stdcx.
Integer Unit
Store Double Word Conditional Indexed
rA=0 then else RESERVE then (MEM(EA, 8))rS RESERVE0 CR00b00 XER[SO] else CR00b00 XER[SO]
(rA|0)+(rB). reservation exists, stored into double word memory addressed reservation cleared. reservation does exist, instruction completes without altering memory. Field reflect whether store operation performed (i.e., whether reservation existed when stdcx. instruction commenced execution), follows: CR0[LT 0b00 store_performed XER[SO] must multiple not, system alignment error handler invoked results boundedly undefined. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: Condition Register (CR0 Field): Affected:
C-30
PowerPC RISC Microprocessor User's Manual
stdu
stdu
Implemented
rS,ds(rA)
stdu
Integer Unit
Store Double Word with Update
EArA+EXTS(ds||0b00) (MEM(EA, 8))rS rAEA
(rA)+(ds||0b00). Register stored into double word memory addressed placed into rA=0, instruction form invalid. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
stdux
stdux
Implemented
rS,rA,rB
stdux
Integer Unit
Reserved
Store Double Word with Update Indexed
EArA MEM(EA, 8)rS rAEA
(rA)+(rB). Register stored into double word memory addressed placed into rA=0, instruction form invalid.
Appendix PowerPC Instructions Implemented
C-31
This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
stdx
stdx
Implemented
rS,rA,rB
stdx
Integer Unit
Reserved
Store Double Word Indexed
rA=0 then else EAb+rB (MEM(EA, 8))rS
(rA|0)+(rB). Register stored into double word memory addressed This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
stfiwx
stfiwx
Implemented
frS,rA,rB
stfiwx
Floating-Point Unit
Store Floating-Point Integer Word
Reserved
then else EAb+rB MEM(EA, 4)frS[32-63]
C-32
PowerPC RISC Microprocessor User's Manual
(rA|0)+(rB). contents low-order bits register stored, without conversion, into word memory addressed Other registers altered: None
Trap Double Word
Implemented
TO,rA,rB
Integer Unit
Reserved
TO[0] then TRAP TO[1] then TRAP TO[2] then TRAP TO[3] then TRAP TO[4] then TRAP
contents compared with contents field corresponding condition result comparison, then system trap handler invoked. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
Appendix PowerPC Instructions Implemented
C-33
Implemented
TO,rA,SIMM
SIMM
Integer Unit
Trap Double Word Immediate
EXTS(SIMM)) TO[0] then TRAP EXTS(SIMM)) TO[1] then TRAP EXTS(SIMM)) TO[2] then TRAP EXTS(SIMM)) TO[3] then TRAP EXTS(SIMM)) TO[4] then TRAP
contents compared with sign-extended SIMM field. field corresponding condition result comparison, then system trap handler invoked. This instruction defined only 64-bit implementations. Using 32-bit implementation will cause system illegal instruction error handler invoked. Other registers altered: None
tlbia
Implemented
tlbia
Integer Unit
Reserved
Translation Lookaside Buffer Invalidate
00000
00000
00000
entries invalid
This PowerPC instruction implemented 601. Execution this instruction will invoke illegal instruction handler. description operation this instruction provided emulation purposes. entire invalidated (that entries removed). invalidated regardless settings MSR[IT] MSR[DT]. This supervisor-level instruction. This instruction optional PowerPC architecture.
C-34 PowerPC RISC Microprocessor User's Manual
Other registers altered: None necessary that point valid segment table when issuing tlbia.
tlbsync
Synchronize
Implemented
tlbsync
Reserved
00000
00000
00000
tlbsync instruction waits until previous tlbie, tlbiex, tlbia instructions executed processor executing this instruction have been received completed other processors. This instruction supervisor-level. This instruction optional PowerPC architecture, must implemented following true: invalidation instruction that broadcasts implemented. eciwx ecowx instructions implemented.
Other registers altered: None
Appendix PowerPC Instructions Implemented
C-35
C-36
PowerPC RISC Microprocessor User's Manual
Appendix Classes Instructions
This appendix describes classes PowerPC instructions defined. three classifications follows: Defined Illegal Reserved
Note that while definitions these terms consistent among PowerPC processors, assignment these classifications not. example, instruction that specific 64-bit implementations considered defined 64-bit implementations, illegal 32-bit implementations such PowerPC microprocessor.
Classes Instructions
32-bit implementation PowerPC architecture with differences redefinitions noted throughout this document. Differences stem largely from different address sizes compliance with POWER architecture. instructions belong following three classes: Defined Illegal Reserved
class determined examining opcode extended opcode, any. opcode, combination opcode extended opcode, that defined instruction reserved instruction, instruction illegal. future versions PowerPC architecture, instructions that illegal become defined being added architecture) reserved being assigned special purposes). Likewise, reserved instructions become defined.
D.1.1 Defined Instruction Class
Defined instructions guaranteed supported PowerPC implementations, except stated instruction descriptions Chapter "Instruction Set."
Appendix Classes Instructions
provides hardware support most instructions defined 32-bit implementations; does provide direct hardware support instructions listed Appendix "PowerPC Instructions Implemented." invokes system illegal instruction error handler (part program exception) when unimplemented PowerPC instructions encountered they emulated software, required. defined instruction have invalid forms, described Section D.1.1.1, "Invalid Instruction Forms."
D.1.1.1 Invalid Instruction Forms
instruction form invalid more operands, excluding opcodes, coded incorrectly. Attempting execute invalid form instruction either invokes system illegal instruction error handler program exception) yields undefined results. Chapter "Instruction Set," individual instruction descriptions. Invalid forms result when operand coded incorrectly, example, when reserved shown coded "1". following instructions have invalid forms identified their individual instruction descriptions: Branch conditional instructions Load/store with update instructions Load multiple instructions Load string instructions Move to/from special purpose register (mtspr, mfspr) Load/store floating-point with update instructions
some cases, invalid form PowerPC instruction invalid form corresponding POWER instruction. result, maintain compatibility with POWER applications, often handles PowerPC invalid forms described POWER architecture. other cases, handles invalid form manner that most convenient that particular case. Each PowerPC invalid forms addressed this document, description handles each case provided.
D.1.2 Illegal Instruction Class
Illegal instructions grouped into following categories: Instructions that implemented PowerPC architecture. These opcodes available future extensions PowerPC architecture; that future versions PowerPC architecture define these instructions perform functions. following primary opcodes illegal:
PowerPC RISC Microprocessor User's Manual
Instructions that implemented PowerPC architecture implemented specific PowerPC implementation (for example, instructions that executed 64-bit PowerPC processors considered illegal 32-bit processors. following opcodes defined 64-bit implementations only illegal 601:
following primary opcodes have unused extended opcodes. Their unused extended opcodes determined from information Section A.2, "Complete Instruction List Sorted Opcode," Section D.1.3, "Reserved Instructions." Notice that extended opcodes instructions that defined only 64-bit implementations illegal 32-bit implementations. unused extended opcodes illegal. (opcodes illegal 32-bit implementations, 64-bit opcodes they have some unused extended opcodes).
attempt execute illegal instruction invokes illegal instruction error handler program exception) other effect. Section 5.4.7, "Program Exception (x'00700')," additional information about illegal invalid instruction exceptions. Note that instruction consisting entirely binary zeros guaranteed illegal instruction. This increases probability that attempt execute data uninitialized memory invokes system illegal instruction error handler program exception). Note that only primary opcode consists zeros, instruction considered reserved instruction, described Section D.1.3, "Reserved Instructions." With exception instruction consisting entirely binary zeros, illegal instructions available further additions PowerPC architecture.
D.1.3 Reserved Instructions
Reserved instructions allocated specific purposes outside scope PowerPC architecture. attempt execute reserved instruction either causes program exception yields undefined results. attempt execute reserved instruction invokes illegal instruction error handler program exception); however, executes many POWER architecture instructions that otherwise part PowerPC architecture. Section 5.4.7, "Program Exception (x'00700')," additional information about illegal invalid instruction exceptions. instructions this class allocated specific purposes that outside scope PowerPC user instruction architecture, PowerPC virtual environment architecture, PowerPC operating environment architecture.
Appendix Classes Instructions
following types instructions included this class: Instructions POWER architecture that have been included PowerPC user instruction architecture Implementation-specific instructions used conform PowerPC architecture specifications instruction with primary opcode when instruction does consist entirely binary zeros other implementation-specific instructions that defined PowerPC user instruction architecture, PowerPC virtual environment architecture, PowerPC operating environment architecture
PowerPC RISC Microprocessor User's Manual
Appendix Multiple-Precision Shifts
This appendix gives examples multiple precision shifts

Other recent searches


SKM150GB12V - SKM150GB12V   SKM150GB12V Datasheet
SD101AWS - SD101AWS   SD101AWS Datasheet
SD101CWS - SD101CWS   SD101CWS Datasheet
S9013 - S9013   S9013 Datasheet
REJ10J0288-0100Z - REJ10J0288-0100Z   REJ10J0288-0100Z Datasheet
HYMP564R728-E3 - HYMP564R728-E3   HYMP564R728-E3 Datasheet
2SC2463 - 2SC2463   2SC2463 Datasheet
1528460000 - 1528460000   1528460000 Datasheet

 

Privacy Policy | Disclaimer
© 2012 Datasheet Archive