32ビットpowerpcアーキテクチャ プログラミング環境...32ビット...
TRANSCRIPT
© Freescale Semiconductor, Inc. 2005. All rights reserved.
Document Number: MPCFPE32BJRev. 112/2005 (原本 MPCFPE32B Rev. 3)
32ビット PowerPC アーキテクチャプログラミング環境
Freescale SemiconductorReference Manual
MPCFPE32BJRev. 112/2005(原本 MPCFPE32B Rev. 3)
How to Reach Us:
Home Page:www.freescale.com
e-mail:[email protected]
USA/Europe or Locations Not Listed:Freescale SemiconductorTechnical Information Center, CH3701300 N. Alma School RoadChandler, Arizona [email protected]
Europe, Middle East, and Africa:Freescale Halbleiter Deutschland GmbHTechnical Information CenterSchatzbogen 781829 Muenchen, Germany+44 1296 380 456 (English)+46 8 52200080 (English)+49 89 92103 559 (German)+33 1 69 35 48 48 (French)[email protected]
Japan:Freescale Semiconductor Japan Ltd.HeadquartersARCO Tower 15F1-8-1, Shimo-Meguro, Meguro-ku,Tokyo 153-0064, Japan0120 191014+81 3 5437 [email protected]
Asia/Pacific:Freescale Semiconductor Hong Kong Ltd.Technical Information Center2 Dai King StreetTai Po Industrial Estate,Tai Po, N.T., Hong Kong+800 2666 [email protected]
For Literature Requests Only:Freescale SemiconductorLiterature Distribution CenterP.O. Box 5405Denver, Colorado 802171-800-441-2447303-675-2140Fax: 303-675-2150LDCForFreescaleSemiconductor
@hibbertgroup.com
本書に記載された情報は、システムおよびソフトウェア開発者がフリースケール製品を使用できるよう補助することのみを目的としています。本書は、ここに記載された情報に基づいて集積回路の設計/製造を行う著作権上のライセンスについては、明示的または暗黙を問わず、何ら許諾するものではありません。
当社は、本書に記載した製品について予告なく変更を加える権限を留保します。当社は、その製品が何らかの特定の目的に適合していることを保証または表明するものでなく、またいかなる製品もしくは回路であれ、その応用または使用から生ずる責任を負うものではなく、かつ派生的損害もしくは付随的損害を含む(但しこれらに限定されません)一切の責任について、これを排除します。当社のデータシートおよび/または仕様に含まれて提出される「標準(Typical)」パラメータは、用途が異なれば変化する場合があり、かつ現実に変化するものであり、実際の性能は時間の経過とともに変動する可能性があります。「標準」パラメータを含むすべての動作パラメータは、利用者側で技術担当者が使用環境に応じて適切な値に設定することが求められます。当社は、自社の特許権または他社の何らかの権利に基づくライセンスの譲渡を行うものではありません。当社の製品は、外科的人体移植を意図したシステムの構成部品として、または、その他、生命維持を意図した用途に、または、当社の製品の不具合が、人的傷害や死亡をもたらし得る状況を発生する可能性がある用途に使用するために、設計、意図または認可されているものではありません。購入者が万一このような意図または認可されていない用途のために当社の製品を購入あるいは使用する場合、購入者は、当該使用に関連した人的傷害や死亡についてのすべての請求につき、(たとえ、当該請求において、当社が部品の設計や製造において過失があったという申立がなされたとしても)それから直接・間接に生ずる全ての請求、費用、損害、および合理的な弁護士費用から当社およびその役員、従業員、子会社、関連会社および代理店を防御、免責し、かつこれらに対し補償を行うものとします。
FreescaleおよびFreescaleのロゴマークは、フリースケール社の商標です。文中に記載されている他社の製品名、サービス名等は、それぞれ各社の商標です。
32ビットPowerPC アーキテクチャ
プログラミング環境
Rev. 1
12/2005
32ビットPOWER PC B5-30mm.qxd 05.12.9 5:22 PM ページ1
第1章
第2章
32 ビット PowerPCアーキテクチャ
プログラミング環境
第3章
第4章
第5章
第6章
第7章
第8章
付録A
付録B
付録C
付録D
付録E
概要
レジスタ・セット
オペランド規約
アドレッシング・モードと命令セット・サマリ
キャッシュ・モデルおよびメモリ・コヒーレンシ
例外
メモリ管理
命令セット
命令セット一覧
多倍精度シフト
浮動小数点モデル
同期化プログラミングの例
簡略ニーモニック
本書について本書について本書について本書について
PowerPC
PowerPC 32
http://www.freescale.com
PowerPC 3
• User Instruction Set Architecture :
UISA
UISA
• Virtual Environment Architecture : VEA
PowerPC
VEA
VEA
VEA UISA
OEA
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor -1-
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-2- Freescale Semiconductor
• Operating Environment Architecture : OEA
OEA
OEA UISA VEA
UISA
OEA
MPC750
VEA OEA
対象となる読者対象となる読者対象となる読者対象となる読者
RISC
本書の構成本書の構成本書の構成本書の構成
• 1 PowerPC
• 2 3
PowerPC
• 3
• 4
• 5 VEA
OEA
• 6 OEA
• 7 OEA
• 8
• A
• B UISA
• C UISA
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor -3-
• D
• E
•
参考文献参考文献参考文献参考文献
概要について概要について概要について概要について
Morgan-Kaufmann
Publishers Sixth Floor 340 Pine
Street
• Computer Architecture: A Quantitative Approach 2 John L. Hennessy/
David A. Patterson
• Computer Organization and Design: The Hardware/Software Interface
2 David A. Patterson/John L. Hennessy
-
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4- Freescale Semiconductor
関連文書関連文書関連文書関連文書
Web
• EREF: A Programmer’s Reference Manual for Freescale Book E Processors
Book E
Book E
•
•
• AC DC
•
1
•
http://www.freescale.com
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor -5-
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-6- Freescale Semiconductor
規約規約規約規約
0 1
mnemonics
italics bcctrxqual BG
0x0 16
0b0 2
rA, rB GPR
rD GPR
frA, frB, frC FPR
frD FPR
REG[FIELD]MSR[LE]
x
x x
n n
NOT
& AND
| OR
1 0 0
UISAUISA
VEAVEA
OEAOEA
8-2
8-3
0000
U
V
O
頭字語と省略形頭字語と省略形頭字語と省略形頭字語と省略形
i SDR1 XER
表表表表 i 頭字語と省略語頭字語と省略語頭字語と省略語頭字語と省略語
用語用語用語用語 意味意味意味意味
ALU Arithmetic logic unit
ASR Address space register
BAT Block address translation
BIST Built-in self test
BPU Branch processing unit
BUID ID Bus unit ID
CR Condition register
CTR Count register
DABR Data address breakpoint register
DAR Data address register
DBAT BAT Data BAT
DEC Decrementer register
DSISR DSI Register used for determing source of a DSI exception
DTLB Data translation lookaside buffer
EA Effective address
EAR External access register
ECC Error checking and correction
FPECR Floating-point exception cause register
FPR Floating-point register
FPSCR Floating-point status and control register
FPU Floating-point unit
GPR General-purpose register
IBAT BAT Instruction BAT
IEEE Institute for Electrical and Electronics Engineers
ITLB Instruction translation lookaside buffer
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor -7-
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-8- Freescale Semiconductor
IU Integer unit
L2 Secondary cache
LIFO Last-in-first-out
LR Link register
LRU Least recently used
LSB Least-significant byte
lsb Least-significant bit
MESI Modified/exclusive/shared/invalid-cache coherency protocol
MMU Memory management unit
MSB Most-significant byte
msb Most-significant bit
MSR Machine state register
NaN Not a number
NIA Next instruction address
No-op No operation
OEA Operating environment architecture
PIR Processor identification register
PTE Page table entry
PTEG Page table entry group
PVR Processor version register
RISC Reduced instruction set computing
RTL Register transfer language
RWITM Read with intent to modify
SDR1 Register that specifies the pagetable base address for virtual-to-physical address translation
SIMM Signed immediate value
SLB Segment lookaside buffer
SPR Special-purpose register
SPRGn Registers available for general purpose
SR Segment register
表表表表 i 頭字語と省略語(続き)頭字語と省略語(続き)頭字語と省略語(続き)頭字語と省略語(続き)
用語用語用語用語 意味意味意味意味
用語の対応用語の対応用語の対応用語の対応
ii
SRR0 0 Machine status save/restore register 0
SRR1 1 Machine status save/restore register 1
STE Segment table entry
TB Time base register
TLB Translation lookaside buffer
UIMM Unsigned immediate value
UISA User instruction set architecture
VA Virtual address
VEA Virtual environment architecture
XATC Extended address transfer code
XER Register used for indicatingconditions such as carries and overflow for integer operatiions
表表表表 ii 用語の対応用語の対応用語の対応用語の対応
アーキテクチャ仕様アーキテクチャ仕様アーキテクチャ仕様アーキテクチャ仕様 本書本書本書本書
DSI DSI
ISI ISI
表表表表 i 頭字語と省略語(続き)頭字語と省略語(続き)頭字語と省略語(続き)頭字語と省略語(続き)
用語用語用語用語 意味意味意味意味
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor -9-
iii
表表表表 iii 命令フィールドの表記命令フィールドの表記命令フィールドの表記命令フィールドの表記
アーキテクチャ仕様アーキテクチャ仕様アーキテクチャ仕様アーキテクチャ仕様 本書本書本書本書
BA, BB, BT crbA, crbB, crbD
BF, BFA crfD, crfS
D d
DS ds
FLM FM
FRA, FRB, FRC, FRT, FRS frA, frB, frC, frT, frS
FXM CRM
RA, RB, RT, RS rA, rB, rD, rS
SI SIMM
U IMM
UI UIMM
/, //, /// 0...0
表表表表 ii 用語の対応(続き)用語の対応(続き)用語の対応(続き)用語の対応(続き)
アーキテクチャ仕様アーキテクチャ仕様アーキテクチャ仕様アーキテクチャ仕様 本書本書本書本書
-
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
10- Freescale Semiconductor
第1章
概要
第第第第 1 章章章章 概要概要概要概要
PowerPC 32 64
32 64
64
•
•
•
•
•
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 1-1
1
•
UISA
VEA OEA 3
http://www.freescale.com
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-2 Freescale Semiconductor
1.1 PowerPC アーキテクチャの概要
第1章
概要
1.1 PowerPC アーキテクチャの概要アーキテクチャの概要アーキテクチャの概要アーキテクチャの概要
Motorola IBM Apple Computer PowerPC
IBM RS/6000
POWER PowerPC
RISC
PowerPC
PowerPC
• 32
GPR
FPR
• FPR GPR
•
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 1-3
1.1 PowerPC アーキテクチャの概要
1
• 2 3
4 1
•
• IEEE-754
•
•
•
•
•
•
•
•
•
•
•
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-4 Freescale Semiconductor
1.1 PowerPC アーキテクチャの概要
第1章
概要
1.1.1 PowerPC アーキテクチャのレベルアーキテクチャのレベルアーキテクチャのレベルアーキテクチャのレベル
3 3
PowerPC 3
• UISA
UISA
UISA
• VEA
VEA
VEA
VEA UISA
OEA
• OEA
OEA
OEA
OEA
OEA UISA VEA
U
V
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 1-5
1.1 PowerPC アーキテクチャの概要
1
1
VEA UISA
OEA
UISA VEA
PowerPC UISA PowerPC
VEA OEA
VEA OEA
.1.2 アーキテクチャ・レベルの許容範囲アーキテクチャ・レベルの許容範囲アーキテクチャ・レベルの許容範囲アーキテクチャ・レベルの許容範囲
•
•
SPR
•
•
•
UISA OEA
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-6 Freescale Semiconductor
1.1 PowerPC アーキテクチャの概要
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 1-7
第1章
概要
1.1.3 PowerPC アーキテクチャの未定義機能アーキテクチャの未定義機能アーキテクチャの未定義機能アーキテクチャの未定義機能
PowerPC
PowerPC
•
PowerPC
OEA
• PowerPC
PowerPC
• PowerPC RISC
PowerPC
•
GPR FPR
1.2 アーキテクチャ・モデル
1.2 アーキテクチャ・モデルアーキテクチャ・モデルアーキテクチャ・モデルアーキテクチャ・モデル
•
•
•
•
•
•
1.2.1 レジスタとプログラミング・モデルレジスタとプログラミング・モデルレジスタとプログラミング・モデルレジスタとプログラミング・モデル
3
2
PowerPC
1-1
UV
O
1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-8 Freescale Semiconductor
1.2 アーキテクチャ・モデル
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 1-9
第1章
概要
図図図図 1-1 プログラミング・モデル─プログラミング・モデル─プログラミング・モデル─プログラミング・モデル─ PowerPC アーキテクチャのレジスタアーキテクチャのレジスタアーキテクチャのレジスタアーキテクチャのレジスタ
32 GPR 32 FPR
SPR
User-Level RegistersUser Instruction Set Architecture (UISA) Virtual Environment Architecture
(VEA)
Register Files Instruction-Accessible Registers Time-Base Registers (Read-Only)
0 63 0 31 0 31
FPR0
Floating-point registers
CR Condition register spr 268 TBL Time base lower/upperFPR1 Integer exception
register spr 269 TBU
spr 1 XERFPR2• • • FPSCR Floating-point status
and control register FPR31
0 31
GPR0
General-purpose registers
Count and Link RegistersGPR1
spr 9 CTR Count registerGPR2
spr 8 LR Link register
GPR31
Supervisor-Level Registers—Operating Environment Architecture (OEA)
MMU Registers Configuration Registers0 31 0 31 0 31
spr 528 IBAT0U
Instruction block-address translation registers
spr 536 DBAT0U
Data block-address translation registers registers
MSR Machine state
spr 529 IBAT0L spr 537 DBAT0Lspr 1023 PIR Processor ID
spr 530 IBAT1U spr 538 DBAT1U
Processor version spr 531 IBAT1L spr 539 DBAT1L spr 287 PVR
spr 532 IBAT2U spr 540 DBAT2U
spr 533 IBAT2L spr 541 DBAT2L Timer/Decrementer Registersspr 534 IBAT3U spr 542 DBAT3U
spr 22 DEC Decrementerspr 535 IBAT3L spr 543 DBAT3L
spr 284 TBL Time base lower/upper spr 25 SDR1 SDR1 SR0
Segment registers
spr 285 TBUSR1
SR2 External Access Register
• • •Interrupt Registers External access
register (optional)SR31 spr 282 EAR
spr 26 SRR0 Save/restoreregisters 0/1spr 27 SRR1 Debug Register
spr 272 SPRG0
General SPRs
spr 1013 DABR Data address breakpoint register
spr 273 SPRG1
spr 274 SPRG2
spr 275 SPRG3
spr 19 DAR Data address register
spr 18 DSISR DSISR
1.2 アーキテクチャ・モデル
PowerPC 2
•
OEA
•
UISA
VEA
2 1-1
• UISA
32
GPR 32 GPR
• VEA
32
2
• OEA SPR
SPR
1.2.2 オペランド規約オペランド規約オペランド規約オペランド規約
2
UISA VEA
U
V
O
UV
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
1-10 Freescale Semiconductor
1.2 アーキテクチャ・モデル
第1章
概要
1.2.2.1 バイト順序バイト順序バイト順序バイト順序
UISA
1-2
図図図図 1-2 ビッグ・エンディアンのバイト順序ビッグ・エンディアンのバイト順序ビッグ・エンディアンのバイト順序ビッグ・エンディアンのバイト順序
OEA MSR 2 LE
ILE
MSR[LE]
MSR[ILE] MSR[LE]
1.2.2.2 メモリ内のデータ構成およびデータ転送メモリ内のデータ構成およびデータ転送メモリ内のデータ構成およびデータ転送メモリ内のデータ構成およびデータ転送
0
U
Byte 0 Byte 1 Byte N (max)
Big-Endian Byte Ordering
MSB
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 1-11
1.2 アーキテクチャ・モデル
1
1
1
1
.2.2.3 浮動小数点の規約浮動小数点の規約浮動小数点の規約浮動小数点の規約
IEEE-754 64 32
•
•
FPR
32
.2.3 命令セットとアドレッシング・モード命令セットとアドレッシング・モード命令セットとアドレッシング・モード命令セットとアドレッシング・モード
32
.2.3.1 命令セット命令セット命令セット命令セット
• UISA
• UISA
FPSCR
U
U
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-12 Freescale Semiconductor
1.2 アーキテクチャ・モデル
第1章
概要
• UISA
• UISA
lwarx stwcx.
• UISA VEA
UISA
sync UISA
I/O eieio
•
UISA
OEA 2
•
TLB 32
mtspr mfspr
V
U
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 1-13
1.2 アーキテクチャ・モデル
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
1-14 Freescale Semiconductor
• TLB
32
VEA
OEA 1
• VEA 2
1.2.3.2 実効アドレスの計算実効アドレスの計算実効アドレスの計算実効アドレスの計算
EA
MMU
• EA = rA | 0
• EA = rA | 0 + = 0
• EA = rA | 0 + rB
1.2.4 キャッシュ・モデルキャッシュ・モデルキャッシュ・モデルキャッシュ・モデル
VEA OEA
O
V
V
U
O
V
1.2 アーキテクチャ・モデル
第1章
概要
•
•
•
•
☞ 1.2.6
VEA
OEA 1
dcbi
1.2.5 例外モデル例外モデル例外モデル例外モデル
OEA
☞
6
UISA OEA
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 1-15
1.2 アーキテクチャ・モデル
OEA 4
•
•
•
•
1.2.6 メモリ管理モデルメモリ管理モデルメモリ管理モデルメモリ管理モデル
MMU OEA MMU
I/O I/O
MMU ☞ 7
OEA MMU
2
32
32 MMU
4KB 256MB
232
32 4GB 256MB
16 16
BAT 128KB
256MB 32
MMU 52
32
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
1-16 Freescale Semiconductor
1.2 アーキテクチャ・モデル
第1章
概要
2
32
TLB
TLB
BAT
BAT
SPR
BAT
☞ 7
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 1-17
1.2 アーキテクチャ・モデル
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
1-18 Freescale Semiconductor
2.1 UISA のレジスタ・セット
第2章
レジスタ・セット
第第第第 2 章章章章 レジスタ・セットレジスタ・セットレジスタ・セットレジスタ・セット3
UISA VEA
OEA
3
2
0 0 1
0 1 1 0
2.1 UISA のレジスタ・セットのレジスタ・セットのレジスタ・セットのレジスタ・セット
UISA 2-1
GPR
FPR
Move to Special-Purpose Register
mtspr Move from Special-Purpose Register mfspr
XER
SPR1
UV
O
U
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-1
2.1 UISA のレジスタ・セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-2 Freescale Semiconductor
図図図図 2-1 UISA プログラミング・モデル─ユーザ・レベル・レジスタプログラミング・モデル─ユーザ・レベル・レジスタプログラミング・モデル─ユーザ・レベル・レジスタプログラミング・モデル─ユーザ・レベル・レジスタ
User-Level RegistersUser Instruction Set Architecture (UISA) Virtual Environment Architecture
(VEA)
Register Files Instruction-Accessible Registers Time-Base Registers (Read-Only)
0 63 0 31 0 31
FPR0
Floating-point registers
CR Condition register spr 268 TBL Time base lower/upperFPR1 Integer exception
register spr 269 TBU
spr 1 XERFPR2• • • FPSCR Floating-point status
and control register FPR31
0 31
GPR0
General-purpose registers
Count and Link RegistersGPR1
spr 9 CTR Count registerGPR2
spr 8 LR Link register
GPR31
Supervisor-Level Registers—Operating Environment Architecture (OEA)
MMU Registers Configuration Registers0 31 0 31 0 31
spr 528 IBAT0U
Instruction block-address translation registers
spr 536 DBAT0U
Data block-address translation registers registers
MSR Machine state
spr 529 IBAT0L spr 537 DBAT0Lspr1023 PIR Processor ID
spr 530 IBAT1U spr 538 DBAT1U
Processor version spr 531 IBAT1L spr 539 DBAT1L spr 287 PVR
spr 532 IBAT2U spr 540 DBAT2U
spr 533 IBAT2L spr 541 DBAT2L Timer/Decrementer Registersspr 534 IBAT3U spr 542 DBAT3U
spr 22 DEC Decrementerspr 535 IBAT3L spr 543 DBAT3L
spr 284 TBL Time base lower/upper spr 25 SDR1 SDR1 SR0
Segment registers
spr 285 TBUSR1
SR2 External Access Register
• • •Interrupt Registers External access
register (optional)SR31 spr 282 EAR
spr 26 SRR0 Save/restoreregisters 0/1spr 27 SRR1 Debug Register
spr 272 SPRG0
General SPRs
spr1013 DABR Data address breakpoint register
spr 273 SPRG1
spr 274 SPRG2
spr 275 SPRG3
spr 19 DAR Data address register
spr 18 DSISR DSISR
2.1 UISA のレジスタ・セット
第2章
レジスタ・セット
• GPR GPR GPR0 GPR31 32
GPR GPR
☞ 2.1.1 GPR
• FPR FPR FPR0 FPR31 32
FPR
FPR
☞ 2.1.2
FPR
• CR CR CR0 CR7 8 4
32
☞ 2.1.3
CR
• FPSCR FPSCR
IEEE 754
☞ 2.1.4
FPSCR
• XER XER XER
☞ 2.1.5 XER
XER
• LR LR Branch Conditional to Link Register
bclrx
☞ 2.1.6 LR
• CTR CTR
Branch Conditional to
Count Register bcctrx ☞ 2.1.7
CTR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-3
2.1 UISA のレジスタ・セット
2.1.1 汎用レジスタ(汎用レジスタ(汎用レジスタ(汎用レジスタ(GPR))))
2-2 32 GPR
GPR
図図図図 2-2 汎用レジスタ(汎用レジスタ(汎用レジスタ(汎用レジスタ(GPR))))
2.1.2 浮動小数点レジスタ(浮動小数点レジスタ(浮動小数点レジスタ(浮動小数点レジスタ(FPR))))
2-3 32 64 FPR
FPR
FPR
FPR
FPR
FPSCR
CR
CR ☞ 2.1.3 CR
FPR 64
FPR
0 31
GPR0
GPR1
.
.
.
GPR31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-4 Freescale Semiconductor
2.1 UISA のレジスタ・セット
第2章
レジスタ・セット
FPR FPSCR
Rc
FPR ☞ 3.3
UISA
図図図図 2-3 浮動小数点レジスタ(浮動小数点レジスタ(浮動小数点レジスタ(浮動小数点レジスタ(FPR))))
2.1.3 コンディション・レジスタ(コンディション・レジスタ(コンディション・レジスタ(コンディション・レジスタ(CR))))
CR
32 2-4
CR CR0 CR7 8 4
図図図図 2-4 コンディション・レジスタ(コンディション・レジスタ(コンディション・レジスタ(コンディション・レジスタ(CR))))
0 63
FPR0
FPR1
.
.
.
FPR31
CR0 CR1 CR2 CR3 CR4 CR5 CR6 CR7
0 3 4 7 8 11 12 15 16 19 20 23 24 27 28 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-5
2.1 UISA のレジスタ・セット
CR
• CR mtcrf GPR
• 1 CR mcrf CR
CR
• XER[0-3] mcrxr CR
• CR mcrfs FPSCR
• CR CR
• CR0
• CR1
• CR
CR
2.1.3.1 コンディション・レジスタのコンディション・レジスタのコンディション・レジスタのコンディション・レジスタの CR0 フィールドの定義フィールドの定義フィールドの定義フィールドの定義
CR
Rc=1 addic. andi. andis.
CR0 3
CR0 4 XER[SO] CR
0 3
CR 2-1
CR0 3
CR0
表表表表 2-1 CR0 フィールドのビット設定フィールドのビット設定フィールドのビット設定フィールドのビット設定
ビットビットビットビット 説明説明説明説明
0 LT
1 GT
2 EQ
3 SO XER[SO]
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-6 Freescale Semiconductor
2.1 UISA のレジスタ・セット
第2章
レジスタ・セット
2.1.3.2 コンディション・レジスタのコンディション・レジスタのコンディション・レジスタのコンディション・レジスタの CR1 フィールドの定義フィールドの定義フィールドの定義フィールドの定義
CR
Rc=1 CR1 CR 4 7 FPSCR[0-3]
☞ 2.1.4
FPSCR CR1
2-2
2.1.3.3 コンディション・レジスタのコンディション・レジスタのコンディション・レジスタのコンディション・レジスタの CRn フィールド─比較命令フィールド─比較命令フィールド─比較命令フィールド─比較命令
CR
2-3
表表表表 2-2 CR1 フィールドのビット設定フィールドのビット設定フィールドのビット設定フィールドのビット設定
ビットビットビットビット 説明説明説明説明
4 FX FPSCR[FX]
5 FEX FPSCR[FEX]
6 VX FPSCR[VX]
7 OX FPSCR[OX]
表表表表 2-3 比較命令の比較命令の比較命令の比較命令の CRnフィールドのビット設定フィールドのビット設定フィールドのビット設定フィールドのビット設定
ビットビットビットビットa 説明説明説明説明b
0 LT FL
rA SIMM rBrA UIMM rB
frA frB
1 GT FG
rA SIMM rBrA UIMM rB
frA frB
2 EQ FE
rA=SIMM UIMM rBfrA=frB
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-7
2.1 UISA のレジスタ・セット
2.1.4 浮動小数点ステータス制御レジスタ(浮動小数点ステータス制御レジスタ(浮動小数点ステータス制御レジスタ(浮動小数点ステータス制御レジスタ(FPSCR))))
FPSCR 2-5
•
•
•
•
0 23
24 31
FPSCR FPSCR[0-12,21-23]
FEX VX
mcrfs mtfsfi
mtfsf mtfsb0
FEX VX FPSCR OR
2
図図図図 2-5 浮動小数点ステータス制御レジスタ(浮動小数点ステータス制御レジスタ(浮動小数点ステータス制御レジスタ(浮動小数点ステータス制御レジスタ(FPSCR))))
3 SO FUXER[SO]
frA frB NaNa ここでは、4 ビット・サブフィールド(CR0 ~ CR7)のいずれか 1 ビットのビット番
号を示します。b 命令構文規約の詳細については、表 8-2 表を参照してください。
表表表表 2-3 比較命令の比較命令の比較命令の比較命令の CRnフィールドのビット設定(続き)フィールドのビット設定(続き)フィールドのビット設定(続き)フィールドのビット設定(続き)
ビットビットビットビットa 説明説明説明説明b
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 19 20 21 22 23 24 25 26 27 28 29 30 31
VXIDIVXISIVXSNAN
VXZDZVXIMZVXVC
VXSOFTVXSQRTVXCVI
Reserved
FX FEX VX OX UX ZX XX FR FI FPRF 0 VE OE UE ZE XE NI RN
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-8 Freescale Semiconductor
2.1 UISA のレジスタ・セット
第2章
レジスタ・セット
FPSCR 2-4
表表表表 2-4 FPSCR のビット設定のビット設定のビット設定のビット設定
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0 FX mtfsfi mtfsfFPSCR 0 1
FX mcrfs mtfsf mtfsfi mtfsb0mtfsb1 FPSCR[FX]
1 FEX
ORFEX=(VX & VE) ^ (OX & OE) ^ (UX & UE) ^ (ZX & ZE) ^ (XX &
XE) mcrfs mtfsf mtfsfi mtfsb0 mtfsb1FPSCR[FEX]
2 VX
OR ☞ 3.3.6.1.1 mcrfs mtfsf mtfsfi
mtfsb0 mtfsb1 FPSCR[VX]
3 OX ☞ 3.3.6.2
4 UX ☞ 3.3.6.2.2
5 ZX ☞ 3.3.6.1.2
6 XX ☞ 3.3.6.2.3 XX FPSCR[FI]
XXFPSCR[FI] FPSCR[XX]
FPSCR[FI] OR FPSCR[XX]FPSCR[FI] FPSCR[XX]
7 VXSNAN SNaN☞ 3.3.6.1.1
8 VXISI -☞ 3.3.6.1.1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-9
2.1 UISA のレジスタ・セット
9 VXIDI
☞ 3.3.6.1.1
10 VXZDZ 0 0☞ 3.3.6.1.1
11 VXIMZ 0☞ 3.3.6.1.1
12 VXVC
☞ 3.3.6.1.1
13 FR
☞ 3.3.5
14 FI
☞ 3.3.5 FPSCR[FI] FPSCR[XX]
FPSCR[XX]
15-19 FPRF
15 CFPCC
2-516 19 FPCC
FPCC 1 13 0
FPCC CFPCC 3
16 FL17 FG18 FE =19 NaN FU ?
20
表表表表 2-4 FPSCR のビット設定(続き)のビット設定(続き)のビット設定(続き)のビット設定(続き)
ビットビットビットビット 名前名前名前名前 説明説明説明説明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-10 Freescale Semiconductor
2.1 UISA のレジスタ・セット
第2章
レジスタ・セット
21 VXSOFT
mcrfs mtfsfi mtfsf mtfsb0mtfsb1
☞ 3.3.6.1.1
22 VXSQRT
☞ 3.3.6.1.1
23 VXCVI
☞ 3.3.6.1.1
24 VE ☞ 3.3.6.1.1
25 OEIEEE ☞ 3.3.6.2
26 UEIEEE ☞ 3.3.6.2.2
27 ZE ☞ 3.3.6.1.2
28 XE ☞ 3.3.6.2.3
29 NI IEEEIEEE FPSCR
IEEE
30-31 RN ☞ 3.3.5 000110 +11 -
表表表表 2-4 FPSCR のビット設定(続き)のビット設定(続き)のビット設定(続き)のビット設定(続き)
ビットビットビットビット 名前名前名前名前 説明説明説明説明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-11
2.1 UISA のレジスタ・セット
2-5 FPSCR[15-16]
2.1.5 XER レジスタ(レジスタ(レジスタ(レジスタ(XER))))
XER 32 XER
2-6
図図図図 2-6 XER レジスタレジスタレジスタレジスタ
2-6 XER
Subtract from Carrying subfcx
3
XER
表表表表 2-5 FPSCR の浮動小数点結果フラグの浮動小数点結果フラグの浮動小数点結果フラグの浮動小数点結果フラグ
結果フラグ(ビット結果フラグ(ビット結果フラグ(ビット結果フラグ(ビット 15 ~~~~ 19))))結果値クラス結果値クラス結果値クラス結果値クラス
C <<<< >>>> = ?
1 0 0 0 1 NaN
0 1 0 0 1 -
0 1 0 0 0 -
1 1 0 0 0 -
1 0 0 1 0 -
0 0 0 1 0 +
1 0 1 0 0 +
0 0 1 0 0 +
0 0 1 0 1 +
Reserved
SO OV CA 0 0000 0000 0000 0000 0000 0 Byte count
0 1 2 3 24 25 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-12 Freescale Semiconductor
2.1 UISA のレジスタ・セット
第2章
レジスタ・セット
2.1.6 リンク・レジスタ(リンク・レジスタ(リンク・レジスタ(リンク・レジスタ(LR))))
LR Branch Conditional to Link Register bclrx
2-7 LR
図図図図 2-7 リンク・レジスタ(リンク・レジスタ(リンク・レジスタ(リンク・レジスタ(LR))))
表表表表 2-6 XER のビット定義のビット定義のビット定義のビット定義
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0 SO SO mtsprOV
mtspr XER mcrxr
XER mtspr mcrxrXER mtspr SO 0
OV 1 SO OV
1 OV OVOE=1
msb msb+1OV OE=1
64 mullddivd divdu 32 mullw divw divwu
OVOV
XER mtspr mcrxr
2 CA CA
msb CACA
CACA
XER mtsprmcrxr
3-24
25-31 Load String Word Indexed lswx Store String Word Indexedstswx
0 31
Branch Address
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-13
2.1 UISA のレジスタ・セット
2 LR
LR
LR SPR8 mtspr mfspr
LR
mtspr
LR
☞ 4.2.4.2
LR
2.1.7 カウント・レジスタ(カウント・レジスタ(カウント・レジスタ(カウント・レジスタ(CTR))))
CTR BO
CTR
0 0xFFFF_FFFF 232-1 CTR
Branch Conditional to Count Register bcctrx
2-8 CTR
図図図図 2-8 カウント・レジスタ(カウント・レジスタ(カウント・レジスタ(カウント・レジスタ(CTR))))
CTR
CTR SPR9 mtspr mfspr
BO
BO 4 CR CTR
0 31
CTR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-14 Freescale Semiconductor
2.1 UISA のレジスタ・セット
第2章
レジスタ・セット
CR CTR 2-7 BO
表表表表 2-7 BO オペランドの意味オペランドの意味オペランドの意味オペランドの意味
BO 説明説明説明説明
0000y CTR CTR 0 FALSE
0001y CTR CTR = 0 FALSE
001zy FALSE
0100y CTR CTR 0 TRUE
0101y CTR CTR = 0 TRUE
011zy TRUE
1z00y CTR CTR 0
1z01y CTR CTR = 0
1z1zz
注:ビット yは、条件分岐が発生するかどうかの情報を示し、一部のインプリメンテー
ションでは処理速度の改善に用いられます。それ以外のインプリメンテーションで
は意味を持ちません。
ビット zは意味を持ちません。ただし、将来の UISA で使用される可能性があるた
め、ゼロにクリアしておく必要があります。
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-15
2.2 VEA のレジスタ・セット─タイム・ベース
2.2 VEA のレジスタ・セット─タイム・ベースのレジスタ・セット─タイム・ベースのレジスタ・セット─タイム・ベースのレジスタ・セット─タイム・ベース
VEA UISA
VEA
2-9 VEA
2-1 VEA
VEA TBU TBL 2
32 64
TB
VEA
TB
OEA TB TB
☞ 2.3.12
TB OEA
2-9
XER
SPR1
V
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-16 Freescale Semiconductor
2.2 VEA のレジスタ・セット─タイム・ベース
第2章
レジスタ・セット
図図図図 2-9 VEA プログラミング・モデル─ユーザ・レベル・レジスタとタイム・ベースプログラミング・モデル─ユーザ・レベル・レジスタとタイム・ベースプログラミング・モデル─ユーザ・レベル・レジスタとタイム・ベースプログラミング・モデル─ユーザ・レベル・レジスタとタイム・ベース
TB 2-10
64 64
TBL 31 1
User-Level RegistersUser Instruction Set Architecture (UISA) Virtual Environment Architecture
(VEA)
Register Files Instruction-Accessible Registers Time-Base Registers (Read-Only)
0 63 0 31 0 31
FPR0
Floating-point registers
CR Condition register spr 268 TBL Time base lower/upperFPR1 Integer exception
register spr 269 TBU
spr 1 XERFPR2• • • FPSCR Floating-point status
and control register FPR31
0 31
GPR0
General-purpose registers
Count and Link RegistersGPR1
spr 9 CTR Count registerGPR2
spr 8 LR Link register
GPR31
Supervisor-Level Registers—Operating Environment Architecture (OEA)
MMU Registers Configuration Registers0 31 0 31 0 31
spr 528 IBAT0U
Instruction block-address translation registers
spr 536 DBAT0U
Data block-address translation registers registers
MSR Machine state
spr 529 IBAT0L spr 537 DBAT0Lspr 1023 PIR Processor ID
spr 530 IBAT1U spr 538 DBAT1U
Processor version spr 531 IBAT1L spr 539 DBAT1L spr 287 PVR
spr 532 IBAT2U spr 540 DBAT2U
spr 533 IBAT2L spr 541 DBAT2L Timer/Decrementer Registersspr 534 IBAT3U spr 542 DBAT3U
spr 22 DEC Decrementerspr 535 IBAT3L spr 543 DBAT3L
spr 284 TBL Time base lower/upper spr 25 SDR1 SDR1 SR0
Segment registers
spr 285 TBUSR1
SR2 External Access Register
• • •Interrupt Registers External access
register (optional)SR31 spr 282 EAR
spr 26 SRR0 Save/restoreregisters 0/1spr 27 SRR1 Debug Register
spr 272 SPRG0
General SPRs
spr 1013 DABR Data address breakpoint register
spr 273 SPRG1
spr 274 SPRG2
spr 275 SPRG3
spr 19 DAR Data address register
spr 18 DSISR DSISR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-17
2.2 VEA のレジスタ・セット─タイム・ベース
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-18 Freescale Semiconductor
図図図図 2-10 タイム・ベース(タイム・ベース(タイム・ベース(タイム・ベース(TB))))
TB 0xFFFF_FFFF_FFFF_FFFF 264-1
0x0000_0000_0000_0000
TB
1. GPR
2. GPR
GPR
VEA
TB
•
•
TB TB
TB
TB
TB 264-1 0
TB
0 31310
TBU-Upper 32 bits of time base TBL-Lower 32 bits of time base
2.2 VEA のレジスタ・セット─タイム・ベース
第2章
レジスタ・セット
2.2.1 タイム・ベースの読出しタイム・ベースの読出しタイム・ベースの読出しタイム・ベースの読出し
mftb mftb
☞ 8
☞ 2.3.12.1
32 64 1
mftb
TBL GPR
mftbu TBU GPR
TBL TBU TBL TBU
32
2.2.2 タイム・ベースによる時刻の計算タイム・ベースによる時刻の計算タイム・ベースによる時刻の計算タイム・ベースによる時刻の計算
loop:
mftbu rx #load from TBU
mftb ry #load from TBL
mftbu rz #load from TBU
cmpw rz,rx #see if `old’ = `new’
bne loop #loop if carry occurred
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-19
2.2 VEA のレジスタ・セット─タイム・ベース
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-20 Freescale Semiconductor
•
•
•
•
3
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
2.3 OEA のレジスタ・セットのレジスタ・セットのレジスタ・セットのレジスタ・セット
OEA 2-11
UISA VEA OEA 2-11
XER
SPR1
OEA SPR
SPR
SPR
SPR mtspr mfspr
☞ 6.4.7 0x00700
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-21
2.3 OEA のレジスタ・セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-22 Freescale Semiconductor
図図図図 2-11 OEA プログラミング・モデル─全レジスタプログラミング・モデル─全レジスタプログラミング・モデル─全レジスタプログラミング・モデル─全レジスタ
OEA
•
MSR
MSR Move to Machine State Register mtmsr System
User-Level RegistersUser Instruction Set Architecture (UISA) Virtual Environment Architecture
(VEA)
Register Files Instruction-Accessible Registers Time-Base Registers (Read-Only)
0 63 0 31 0 31
FPR0
Floating-point registers
CR Condition register spr 268 TBL Time base lower/upperFPR1 Integer exception
register spr 269 TBU
spr 1 XERFPR2• • • FPSCR Floating-point status
and control register FPR31
0 31
GPR0
General-purpose registers
Count and Link RegistersGPR1
spr 9 CTR Count registerGPR2
spr 8 LR Link register
GPR31
Supervisor-Level Registers—Operating Environment Architecture (OEA)
MMU Registers Configuration Registers0 31 0 31 0 31
spr 528 IBAT0U
Instruction block-address translation registers
spr 536 DBAT0U
Data block-address translation registers registers
MSR Machine state
spr 529 IBAT0L spr 537 DBAT0Lspr 1023 PIR Processor ID
spr 530 IBAT1U spr 538 DBAT1U
Processor version spr 531 IBAT1L spr 539 DBAT1L spr 287 PVR
spr 532 IBAT2U spr 540 DBAT2U
spr 533 IBAT2L spr 541 DBAT2L Timer/Decrementer Registersspr 534 IBAT3U spr 542 DBAT3U
spr 22 DEC Decrementerspr 535 IBAT3L spr 543 DBAT3L
spr 284 TBL Time base lower/upper spr 25 SDR1 SDR1 SR0
Segment registers
spr 285 TBUSR1
SR2 External Access Register
• • •Interrupt Registers External access
register (optional)SR31 spr 282 EAR
spr 26 SRR0 Save/restoreregisters 0/1spr 27 SRR1 Debug Register
spr 272 SPRG0
General SPRs
spr1013 DABR Data address breakpoint register
spr 273 SPRG1
spr 274 SPRG2
spr 275 SPRG3
spr 19 DAR Data address register
spr 18 DSISR DSISR
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
Call sc Return from Exception rfi
Move from Machine State Register mfmsr
☞ 2.3.1
MSR
PVR
☞ 2.3.2
PVR
•
BAT OEA 4 BAT
IBAT0U IBAT3U IBAT0L IBAT3L 4
BAT DBAT0U DBAT3U DBAT0L DBAT3L
BAT SPR 2-11
☞ 2.3.3 BAT
SDR1
☞ 2.3.4
SDR1
SR OEA 16 32
SR0 SR15
32
0
☞ 2.3.5
•
DAR DSI
☞ 2.3.6
DAR
SPRG0 SPRG3
☞ 2.3.7 SPRG0 SPRG3
DSISR DSI
☞ 2.3.8 DSISR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-23
2.3 OEA のレジスタ・セット
0 SRR0
rfi
☞
2.3.9 0 SRR0
1 SRR1
rfi
☞
2.3.10 1 SRR1
FPECR
•
TB
64 TB
TBU TBL 2 32
TB
☞ 2.2 VEA
☞ 2.3.12 TB OEA
DEC 32
☞ 2.3.13
DEC
EAR eciwx ecowx
EAR eciwx
ecowx OEA
☞ 4.3.4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-24 Freescale Semiconductor
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
DABR
DABR
OEA
☞ 6.4.3 DSI
0x00300
PIR
2.3.1 マシン・ステート・レジスタ(マシン・ステート・レジスタ(マシン・ステート・レジスタ(マシン・ステート・レジスタ(MSR))))
MSR 2-12
MSR 2-8 mtmsr
sc rfi MSR mfmsr
図図図図 2-12 マシン・ステート・レジスタ(マシン・ステート・レジスタ(マシン・ステート・レジスタ(マシン・ステート・レジスタ(MSR))))
2-8 MSR
0 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 272829 30 31
Reserved
0000 0000 0000 0 POW 0 ILE EE PR FPME FE0SE BE FE1 0 IP IRDR 00 RI LE
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-25
2.3 OEA のレジスタ・セット
表表表表 2-8 MSR のビット設定のビット設定のビット設定のビット設定
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0-12
13 POW
01
14
15 ILE
MSR[LE]
16 EE
0
1
17 PR
0
1
18 FP
0
1
19 ME
01
20 FE0 0 2-9
21 SE
01
22 BE
01
23 FE1 1 2-9
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-26 Freescale Semiconductor
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
FE0 FE1 2-9
24
25 IP
FFF 000 n_nnnn6-2
0 0x000n_nnnn1 0xFFFn_nnnn
IP
26 IR
01
☞ 7
27 DR
01
☞ 7
28-29
30 RI
01
☞ 6
31 LE
01
表表表表 2-9 浮動小数点例外モード・ビット浮動小数点例外モード・ビット浮動小数点例外モード・ビット浮動小数点例外モード・ビット
FE0 FE1 モードモードモードモード
0 0
0 1
1 0
1 1
表表表表 2-8 MSR のビット設定(続き)のビット設定(続き)のビット設定(続き)のビット設定(続き)
ビットビットビットビット 名前名前名前名前 説明説明説明説明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-27
2.3 OEA のレジスタ・セット
2-10 MSR
2.3.2 プロセッサ・バージョン・レジスタ(プロセッサ・バージョン・レジスタ(プロセッサ・バージョン・レジスタ(プロセッサ・バージョン・レジスタ(PVR))))
PVR 32
PVR mfspr GPR
PVR
表表表表 2-10 電源投入時の電源投入時の電源投入時の電源投入時の MSR のステートのステートのステートのステート
ビットビットビットビット 名前名前名前名前 32 ビットのデフォルト値ビットのデフォルト値ビットのデフォルト値ビットのデフォルト値
0-12 a
a 0 または 1 のいずれも可。
13 POW 0
14 a
15 ILE 0
16 EE 0
17 PR 0
18 FP 0
19 ME 0
20 FE0 0
21 SE 0
22 BE 0
23 FE1 0
24 a
25 IP 1b
b 標準は 1(場合により 0)。
26 IR 0
27 DR 0
28-29 a
30 RI 0
31 LE 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-28 Freescale Semiconductor
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
図図図図 2-13 プロセッサ・バージョン・レジスタ(プロセッサ・バージョン・レジスタ(プロセッサ・バージョン・レジスタ(プロセッサ・バージョン・レジスタ(PVR))))
PVR 2-11 2 16
2.3.3 BAT レジスタレジスタレジスタレジスタ
BAT 8
BAT 8
SPR
BAT 1 SPR
BAT BAT
OEA 4 BAT IBAT0U IBAT3U IBAT0L IBAT3L
8 BAT DBAT0U DBAT3U DBAT0L DBAT3L
8 IBAT
BAT SPR 2-11
2-14 2-15 32 BAT
図図図図 2-14 上位上位上位上位 BAT レジスタレジスタレジスタレジスタ
表表表表 2-11 PVR フィールドの説明フィールドの説明フィールドの説明フィールドの説明
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0-15 16
16-31 16PVR
0 15 16 31
Version Revision
BEPI 0 000 BL Vs Vp
0 14 15 18 19 29 30 31
Reserved
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-29
2.3 OEA のレジスタ・セット
図図図図 2-15 下位下位下位下位 BAT レジスタレジスタレジスタレジスタ
2-12 BAT
表表表表 2-12 BAT レジスタ─フィールドおよびビットの設定レジスタ─フィールドおよびビットの設定レジスタ─フィールドおよびビットの設定レジスタ─フィールドおよびビットの設定
上位/下位上位/下位上位/下位上位/下位BAT ビットビットビットビット 名前名前名前名前 説明説明説明説明
BAT 0-14 BEPI
BAT
15-18
19-29 BL BL2-13
30 Vs
MSR[PR]☞ 7.5.2 BAT
31 Vp MSR[PR]
☞ 7.5.2 BAT
Reserved
0 14 15 24 25 28 29 30 31
BRPN 0 0000 0000 0 WIMG* 0 PP
*IBATレジスタのWビットとGビットは未定義で、書き込みを行おうとすると結果が境界未定義となります。
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-30 Freescale Semiconductor
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
2-13 BAT[BL] BAT
BAT 0-14 BRPN BL
15-24
25-28 WIMG
WIMGIBAT W G
WIMG☞ 5.3.1
29
30-31 PP
☞ 7.5.4
表表表表 2-13 BAT 領域の長さ領域の長さ領域の長さ領域の長さ
領域の長さ領域の長さ領域の長さ領域の長さ BL エンコーディングエンコーディングエンコーディングエンコーディング
128K 000 0000 0000
256K 000 0000 0001
512K 000 0000 0011
1M 000 0000 0111
2M 000 0000 1111
4M 000 0001 1111
8M 000 0011 1111
16M 000 0111 1111
32M 000 1111 1111
64M 001 1111 1111
128M 011 1111 1111
256M 111 1111 1111
表表表表 2-12 BAT レジスタ─フィールドおよびビットの設定(続き)レジスタ─フィールドおよびビットの設定(続き)レジスタ─フィールドおよびビットの設定(続き)レジスタ─フィールドおよびビットの設定(続き)
上位/下位上位/下位上位/下位上位/下位BAT ビットビットビットビット 名前名前名前名前 説明説明説明説明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-31
2.3 OEA のレジスタ・セット
BL 2-13 BL
14 BEPI
BAT
BL BEPI
BL
BL
BL
17 BAT
☞ 7
BL
BAT BEPI BRPN
BL
BAT ☞ 7
2.3.4 SDR1 レジスタレジスタレジスタレジスタ
32 SDR1 2-16
図図図図 2-16 SDR1 レジスタ─レジスタ─レジスタ─レジスタ─ 32 ビット・インプリメンテーションビット・インプリメンテーションビット・インプリメンテーションビット・インプリメンテーション
SDR1 2-14
表表表表 2-14 SDR1 のビット設定のビット設定のビット設定のビット設定
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0-15 HTABORG 32 16
16-22
23-31 HTABMASK
0000 000 HTABMASK
Reserved
0 15 16 22 23 31
HTABORG
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-32 Freescale Semiconductor
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
32 SDR1 HTABORG
32 16
216 64K
10
64K
64 210 PTEG
2n 16 n 25
HTABORG
0 SDR1 HTABMASK
0b00...011...1
0 1 1
10
HTABORG 0
8,192 213 64 PTEG
219 512K
13
10 3
HTABMASK 0x007 HTABORG 3 SDR1
13 15 0
23+10+6=219512K
☞ 7
2.3.5 セグメント・レジスタセグメント・レジスタセグメント・レジスタセグメント・レジスタ
32
OEA 32 16
32
mtsr mfsr mtsrin mfsrin
0 T
2-17 T=0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-33
2.3 OEA のレジスタ・セット
図図図図 2-17 セグメント・レジスタのフォーマット(セグメント・レジスタのフォーマット(セグメント・レジスタのフォーマット(セグメント・レジスタのフォーマット(T=0))))
2-15 T=0
2-18 T=1
図図図図 2-18 セグメント・レジスタのフォーマット(セグメント・レジスタのフォーマット(セグメント・レジスタのフォーマット(セグメント・レジスタのフォーマット(T=1))))
2-16 T=1
表表表表 2-15 セグメント・レジスタのビット設定(セグメント・レジスタのビット設定(セグメント・レジスタのビット設定(セグメント・レジスタのビット設定(T=0))))
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0 T T=0
1 Ks
2 Kp
3 N
4-7
8-31 VSID ID
表表表表 2-16 セグメント・レジスタのビット設定(セグメント・レジスタのビット設定(セグメント・レジスタのビット設定(セグメント・レジスタのビット設定(T=1))))
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0 T T=1
1 Ks
2 Kp
3-11 BUID ID
12-31 CNTLR_SPEC I/O
0 1 2 3 4 7 8 31
T Ks Kp N 0000 VSID
Reserved
T Ks Kp BUID Controller-Specific Information
0 1 2 3 11 12 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-34 Freescale Semiconductor
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
BAT
BAT
BAT
T=0
52
VA
• 24 VSID
• 16 EA[4 19]
• 12 EA[20 31]
VA ☞ 7.6
T=1 BAT
2.3.6 データ・アドレス・レジスタ(データ・アドレス・レジスタ(データ・アドレス・レジスタ(データ・アドレス・レジスタ(DAR))))
2-19 DAR
図図図図 2-19 データ・アドレス・レジスタ(データ・アドレス・レジスタ(データ・アドレス・レジスタ(データ・アドレス・レジスタ(DAR))))
DAR
☞ 6
2.3.7 SPRG0 ~~~~ SPRG3 レジスタレジスタレジスタレジスタ
2-20 SPRG0 SPRG3
0 31
DAR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-35
2.3 OEA のレジスタ・セット
図図図図 2-20 SPRG0 ──── SPRG3
2-17 SPRG0 SPRG3
2.3.8 DSISR レジスタレジスタレジスタレジスタ
DSISR 2-21 DSI
32
図図図図 2-21 DSISR レジスタレジスタレジスタレジスタ
☞ 6.4.3 DSI 0x00300 ☞
6.4.6 0x00600
表表表表 2-17 SPRG0 ~~~~ SPRG3 の用途の用途の用途の用途
レジスタレジスタレジスタレジスタ 説明説明説明説明
SPRG0
1
SPRG1 GPRSPRG0 GPR GPR
SPRG2
SPRG3
0 31
SPRG0
SPRG1
SPRG2
SPRG3
DSISR
0 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-36 Freescale Semiconductor
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
2.3.9 マシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタ 0((((SRR0))))
SRR0 rfi
System Call sc
2-22 SRR0
図図図図 2-22 マシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタ 0((((SRR0))))
SRR0 rfi
SRR0 NIA
64 32
SRR0
SRR0
MSR[IR]=1
MSR[DR]=1
SRR0
SRR0 ☞ 6
2.3.10 マシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタ 1((((SRR1))))
SRR1 rfi
2-23 SRR1
図図図図 2-23 マシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタ 1((((SRR1))))
SRR0
0 29 30 31
00
Reserved
SRR1
0 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-37
2.3 OEA のレジスタ・セット
SRR1[1-4,10-15]
MSR[16-23,25-27,30-31] SRR1 rfi
SRR1[16-23,25-27,30-31] MSR[16-23,25-27,30-31]
SRR1
MSR
rfi SRR1 MSR
MSR[IR]=1
MSR[DR]=1
SRR1
SRR1 ☞ 6
2.3.11 浮動小数点例外原因レジスタ(浮動小数点例外原因レジスタ(浮動小数点例外原因レジスタ(浮動小数点例外原因レジスタ(FPECR))))
FPECR
2.3.12 タイム・ベース機能(タイム・ベース機能(タイム・ベース機能(タイム・ベース機能(TB)─)─)─)─ OEA
☞ 2.2 VEA
TB
VEA TB
TB
OEA
TB
TB
TB
TB
TB
☞ 2.2 VEA
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-38 Freescale Semiconductor
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
2.3.12.1タイム・ベースへの書込みタイム・ベースへの書込みタイム・ベースへの書込みタイム・ベースへの書込み
TB
mttbl mttbu TB
2 mtspr
☞ E mtspr mttbl
mttbu TBL TBU 32
1
64
TB
3 TBL 0
TBL TBU
☞ 2.2.1
2.3.13 デクリメンタ・レジスタ(デクリメンタ・レジスタ(デクリメンタ・レジスタ(デクリメンタ・レジスタ(DEC))))
DEC 2-24
32
DEC
図図図図 2-24 デクリメンタ・レジスタ(デクリメンタ・レジスタ(デクリメンタ・レジスタ(デクリメンタ・レジスタ(DEC))))
lwz rx,upper #TBの 64ビット値を
lwz ry,lower #rxと ryにロードする
li rz,0
mttbl rz #TBLを 0に強制リセットする
mttbu rx #TBUをセットする
mttbl ry #TBLをセットする
DEC
0 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-39
2.3 OEA のレジスタ・セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-40 Freescale Semiconductor
2.3.13.1デクリメンタのオペレーションデクリメンタのオペレーションデクリメンタのオペレーションデクリメンタのオペレーション
DEC 0 MSR[EE]
DEC
• DEC
• DEC GPR DEC
• GPR DEC DEC GPR
• DEC 0 0 1
DEC
• DEC 0 0 1
2.3.13.2 DEC の書込みと読出しの書込みと読出しの書込みと読出しの書込みと読出し
DEC mfspr mtspr
2 DEC
mtspr GPR rA DEC
mfspr DEC GPR
rA
mtdec rA
mfdec rA
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
2.3.14 データ・アドレス・ブレークポイント・レジスタ(データ・アドレス・ブレークポイント・レジスタ(データ・アドレス・ブレークポイント・レジスタ(データ・アドレス・ブレークポイント・レジスタ(DABR))))
SPR
DABR
DABR 2-25
図図図図 2-25 データ・アドレス・ブレークポイント・レジスタ(データ・アドレス・ブレークポイント・レジスタ(データ・アドレス・ブレークポイント・レジスタ(データ・アドレス・ブレークポイント・レジスタ(DABR))))
2-18 DABR
3
• EA[0-28]=DABR[DAB]
• MSR[DR]=DABR[BT]
• DABR[DW]=1 DABR[DR]=1
• stwcx.
表表表表 2-18 DABR ─フィールドの意味─フィールドの意味─フィールドの意味─フィールドの意味
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0-28 DAB
29 BT
30 DW
31 DR
0 28 29 30 31
DAB BT DW DR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-41
2.3 OEA のレジスタ・セット
• lswx stswx
• dcbz dcba eciwx ecowx
eciwx dcbz dcba ecowx
dcbz dcba 2
DSI
☞ 6.4.3 DSI 0x00300
2.3.15 外部アクセス・レジスタ(外部アクセス・レジスタ(外部アクセス・レジスタ(外部アクセス・レジスタ(EAR))))
EAR
32 SPR
2-26 EAR
図図図図 2-26 外部アクセス・レジスタ(外部アクセス・レジスタ(外部アクセス・レジスタ(外部アクセス・レジスタ(EAR))))
ID RID
RID
0 1 25 26 31
E 000 0000 0000 0000 0000 0000 00 RID
Reserved
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-42 Freescale Semiconductor
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
EAR External Control In Word Indexed eciwx External
Control Out Word Indexed ecowx
2 ☞ 8 EAR
EAR 2-19 eciwx ecowx
ecowx 32
OEA
eciwx ecowx
WIMG 0101
ecowx
eciwx
mtspr mfspr EAR
2-21 2-22
2.3.16 プロセッサ識別レジスタ(プロセッサ識別レジスタ(プロセッサ識別レジスタ(プロセッサ識別レジスタ(PIR))))
PIR 32
PIR mfspr GPR
PIR
表表表表 2-19 外部アクセス・レジスタ(外部アクセス・レジスタ(外部アクセス・レジスタ(外部アクセス・レジスタ(EAR)のビット設定)のビット設定)のビット設定)のビット設定
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0 E
0 eciwx ecowx DSI1 eciwx ecowx
1-25
26-31 RID ID
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-43
2.3 OEA のレジスタ・セット
図図図図 2-27 プロセッサ識別レジスタプロセッサ識別レジスタプロセッサ識別レジスタプロセッサ識別レジスタ
2.3.17 スペシャル・パーパス・レジスタとルックアサイド・バッファの同スペシャル・パーパス・レジスタとルックアサイド・バッファの同スペシャル・パーパス・レジスタとルックアサイド・バッファの同スペシャル・パーパス・レジスタとルックアサイド・バッファの同期化条件期化条件期化条件期化条件
TLB
2-21
2-22
2
rfi
表表表表 2-20 PID フィールドの説明フィールドの説明フィールドの説明フィールドの説明
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0-31 PROCID ID
PROCID
0 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-44 Freescale Semiconductor
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
mtmsr MSR
MSR[POW] MSR[LE]
2-21 2-22 2-22
2-21
表表表表 2-21 データ・アクセスの同期化データ・アクセスの同期化データ・アクセスの同期化データ・アクセスの同期化
命令/イベント命令/イベント命令/イベント命令/イベント 事前に必要事前に必要事前に必要事前に必要 事後に必要事後に必要事後に必要事後に必要
a
a 電力消費モードを変更するための同期化条件は、インプリメンテーション依存です。
rfia
sca
Trapa
mtmsr ILE
mtmsr PR
mtmsr ME b
b MSR[ME] ビットの変更後は、それ以降のマシン・チェック例外に対し変更が有効とな
るように、コンテキスト同期化命令が必要です。
mtmsr DR
mtmsr LE c
c エンディアン・モードの変更に対する同期化条件は、インプリメンテーション依存で
す。
mtsr[ mtsrin]
mtspr SDR1 d ,e
d SDR1 は、MSR[DR]=1 または MSR[IR]=1 のときは変更できません。変更すると結果
が不定となります。
sync
mtspr DBAT
mtspr DABR f
mtspr EAR
tlbieg ,h sync
tlbiag,h sync
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-45
2.3 OEA のレジスタ・セット
2-22
e SDR1 がページ・テーブルを識別して、参照ビット(R)および変更ビット(C)の位
置を判定するために、mtspr 命令の前に sync 命令が必要です。R ビットと C ビット
が正しいページ・テーブルで更新されるためには、mtspr の前にある命令によってす
べての R ビットと C ビットの更新が完了するまで、SDR1 を変更してはいけません。
sync 命令は、R ビットと C ビットの更新の同期化を保証しますが、コンテキスト同
期化オペレーションや命令フェッチ・メカニズムはこれを保証しません。f DABR の変更に対する同期化条件は、インプリメンテーション依存です。g データ・アクセスの場合は、tlbie または tibia の各命令の以前のコンテキスト同期化
命令は、それ以前の命令によるメモリ・アクセスが例外が発生しないと通知した時点
までに完了していることを保証します。tlbie または tibia の各命令に続くコンテキス
ト同期化命令は、以降のメモリ・アクセスが無効化された TLB エントリを使わないよ
うにします。ただし、この同期化命令は、無効化された TLB エントリによってそれま
でに変換されたすべてのメモリ・アクセスが、メモリに関するオペレーションを完了
したり、tlbie または tibia の場合は、それらのメモリ・アクセスに関連する R ビット
および C ビットの更新が完了していることを保証するものではありません。完了を確
実にするには、tlbie または tibia の各命令の後に、コンテキスト同期化命令ではなく
sync 命令を使用します。h マルチプロセッサ・システムでは、TLB の無効化を同期させるために他の条件が必要
です。
表表表表 2-22 命令アクセスの同期化命令アクセスの同期化命令アクセスの同期化命令アクセスの同期化
命令/イベント命令/イベント命令/イベント命令/イベント 事前に必要事前に必要事前に必要事前に必要 事後に必要事後に必要事後に必要事後に必要
a
rfia
sca
Trapa
mtmsr POW a
mtmsr ILE
mtmsr EE b
mtmsr PR
mtmsr FP
mtmsr ME c
mtmsr FE0,FE1
mtmsr SE,BE
mtmsr IP
mtmsr IR d
mtmsr RI
mtmsr LE e
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-46 Freescale Semiconductor
2.3 OEA のレジスタ・セット
第2章
レジスタ・セット
mtsr[ mtsrin]d
mtspr SDR1 f ,g sync
mtspr IBAT d
mtspr DEC h
tlbiei ,j sync
tlbiai,j synca 電力消費モードを変更するための同期化条件は、インプリメンテーション依存です。b EE ビットを変更すると、直後に以下の変化が発生します。
・ mtmsr が EE ビットを 0 にすると、その命令の実行後は外部割込みもデクリメン
タ例外も発生しません。
・外部割込み、デクリメンタ例外、または優先度の高い例外が存在するときに、
mtmsr が EE ビットを 1 にすると、mtmsr が実行された直後で、MSR[EE] を 1にセットしたプログラムの次の命令が実行される前に、対応する例外が発生しま
す。c MSR[ME] ビットの変更後は、それ以降のマシン・チェック例外に対して変更が有効
となるように、コンテキスト同期化命令が必要です。マシン・チェック例外は、回復
不能なためコンテキストの同期化は行ないません。d 変更によって、物理アドレス空間で暗黙の分岐が発生してはいけません。コンテキス
ト変更命令を含むそれ以降の各命令の物理アドレスは、次のコンテキスト同期化命令
までを含めて、変更が実際に行なわれるかどうかに関係なくその影響を受けてはいけ
ません。e エンディアン・モードの変更に対する同期化条件は、インプリメンテーション依存で
す。f SDR1 は、MSR[DR]=1 または MSR[IR]=1 のときは変更できません。変更すると結果
が不定となります。g SDR1 がページ・テーブルを識別して、参照ビット(R)および変更ビット(C)の
位置を判定するために、mtspr 命令の前に sync 命令が必要です。R ビットと C ビッ
トが正しいページ・テーブルで更新されるためには、mtspr の前にある命令によって
すべての R ビットと C ビットの更新が完了するまで、SDR1 を変更してはいけませ
ん。sync 命令は、R ビットと C ビットの更新の同期化を保証しますが、コンテキス
ト同期化オペレーションや命令フェッチ・メカニズムはこれを保証しません。h デクリメンタの内容が負になってからデクリメンタ例外が通知されるまでの経過時間
は定義されていません。
表表表表 2-22 命令アクセスの同期化命令アクセスの同期化命令アクセスの同期化命令アクセスの同期化
命令/イベント命令/イベント命令/イベント命令/イベント 事前に必要事前に必要事前に必要事前に必要 事後に必要事後に必要事後に必要事後に必要
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 2-47
2.3 OEA のレジスタ・セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
2-48 Freescale Semiconductor
i データ・アクセスの場合は、tlbie または tlbia の各命令の以前のコンテキスト同期化
命令は、それ以前の命令によるメモリ・アクセスが例外が発生しないと通知した時点
までに完了していることを保証します。tlbie または tlbia の各命令に続くコンテキス
ト同期化命令は、以降のメモリ・アクセスが無効化された TLB エントリを使わないよ
うにします。ただし、この同期化命令は、無効化された TLB エントリによってそれま
でに変換されたすべてのメモリ・アクセスが、メモリに関するオペレーションを完了
したり、tlbie または tlbia の場合は、それらのメモリ・アクセスに関連する R ビット
および C ビットの更新が完了していることを保証するものではありません。完了を確
実にするには、tlbie または tlbia の各命令の後に、コンテキスト同期化命令ではなく
sync 命令を使用します。j マルチプロセッサ・システムでは、TLB の無効化を同期させるために他の条件が必要
です。
第3章
オペランド規約
第第第第 3 章章章章 オペランド規約オペランド規約オペランド規約オペランド規約UISA
VEA
2
IEEE
☞ C
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-1
3.1 メモリおよびデータ転送におけるデータ構成
3.1 メモリおよびデータ転送におけるデータ構成メモリおよびデータ転送におけるデータ構成メモリおよびデータ転送におけるデータ構成メモリおよびデータ転送におけるデータ構成
0
3.1.1 アライメントおよびミスアライメントのアクセスアライメントおよびミスアライメントのアクセスアライメントおよびミスアライメントのアクセスアライメントおよびミスアライメントのアクセス
4
3-1
12 4
表表表表 3-1 メモリ・オペランドのアライメントメモリ・オペランドのアライメントメモリ・オペランドのアライメントメモリ・オペランドのアライメント
オペランドオペランドオペランドオペランド 長さ長さ長さ長さアライメントしているアライメントしているアライメントしているアライメントしている
場合のアドレス(場合のアドレス(場合のアドレス(場合のアドレス(60-63))))1
1 アドレス・ビットの x は、アドレスの他のビット状態に関係なく 0 でも 1 でもかまい
ません。
8 xxxx
2 xxx0
4 xx00
8 x000
16 0000
U
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-2 Freescale Semiconductor
3.1 メモリおよびデータ転送におけるデータ構成
第3章
オペランド規約
3.1.2 バイト順序バイト順序バイト順序バイト順序
8 1
32
4 4
2
•
MSB) LSB
• LSB
MSB
3.1.3 構造体のマッピング例構造体のマッピング例構造体のマッピング例構造体のマッピング例
3-1 a b c d e f
S C
16
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-3
3.1 メモリおよびデータ転送におけるデータ構成
図図図図 3-1 C プログラムの例─データ構造体プログラムの例─データ構造体プログラムの例─データ構造体プログラムの例─データ構造体 S
3.1.3.1 ビッグ・エンディアンのマッピングビッグ・エンディアンのマッピングビッグ・エンディアンのマッピングビッグ・エンディアンのマッピング
S 3-2
MSB (x)
a b 4 d e
1 e f 2
図図図図 3-2 構造体構造体構造体構造体 Sのビッグ・エンディアンのマッピングのビッグ・エンディアンのマッピングのビッグ・エンディアンのマッピングのビッグ・エンディアンのマッピング
struct {
int a; /*0x1112_1314 ワード */
double b; /*0x2122_2324_2526_2728 ダブル・ワード */
char* c; /*0x3132_3334 ワード */
char d[7];/*’L’,’M’,’N’,’O’,’P’,’Q’,’R’バイト配列 */
short e; /*0x5152’ ハーフ・ワード */
int f; /*0x6162_6364’ ワード */
} S;
Contents 11 12 13 14 (x) (x) (x) (x)
Address 00 01 02 03 04 05 06 07
Contents 21 22 23 24 25 26 27 28
Address 08 09 0A 0B 0C 0D 0E 0F
Contents 31 32 33 34 ‘L’ ‘M’ ‘N’ ‘O’
Address 10 11 12 13 14 15 16 17
Contents ‘P’ ‘Q’ ‘R’ (x) 51 52 (x) (x)
Address 18 19 1A 1B 1C 1D 1E 1F
Contents 61 62 63 64 (x) (x) (x) (x)
Address 20 21 22 23 24 25 26 27
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-4 Freescale Semiconductor
3.1 メモリおよびデータ転送におけるデータ構成
第3章
オペランド規約
3.1.3.2 リトル・エンディアンのマッピングリトル・エンディアンのマッピングリトル・エンディアンのマッピングリトル・エンディアンのマッピング
S 3-3
LSB
図図図図 3-3 構造体構造体構造体構造体 Sのリトル・エンディアンのマッピングのリトル・エンディアンのマッピングのリトル・エンディアンのマッピングのリトル・エンディアンのマッピング
3-3
3-4
MSB LSB
PowerPC
3-3
Contents 14 13 12 11 (x) (x) (x) (x)
Address 00 01 02 03 04 05 06 07
Contents 28 27 26 25 24 23 22 21
Address 08 09 0A 0B 0C 0D 0E 0F
Contents 34 33 32 31 ‘L’ ‘M’ ‘N’ ‘O’
Address 10 11 12 13 14 15 16 17
Contents ‘P’ ‘Q ‘R’ (x) 52 51 (x) (x)
Address 18 19 1A 1B 1C 1D 1E 1F
Contents 64 63 62 61 (x) (x) (x) (x)
Address 20 21 22 23 24 25 26 27
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-5
3.1 メモリおよびデータ転送におけるデータ構成
図図図図 3-4 構造体構造体構造体構造体 Sのリトル・エンディアンのマッピング─逆順による表示のリトル・エンディアンのマッピング─逆順による表示のリトル・エンディアンのマッピング─逆順による表示のリトル・エンディアンのマッピング─逆順による表示
3.1.4 バイト順序バイト順序バイト順序バイト順序
MSR 2
MSR[LE]
MSR[ILE]
MSR[ILE] MSR[LE]
0
1
☞ 4.2.3.4
Contents (x) (x) (x) (x) 11 12 13 14
Address 07 06 05 04 03 02 01 00
Contents 21 22 23 24 25 26 27 28
Address 0F 0E 0D 0C 0B 0A 09 08
Contents ‘O’ ‘N’ ‘M’ ‘L’ 31 32 33 34
Address 17 16 15 14 13 12 11 10
Contents (x) (x) 51 52 (x) ‘R’ ‘Q’ ‘P’
Address 1F 1E 1D 1C 1B 1A 19 18
Contents (x) (x) (x) (x) 61 62 63 64
Address 27 26 25 24 23 22 21 20
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-6 Freescale Semiconductor
3.1 メモリおよびデータ転送におけるデータ構成
第3章
オペランド規約
3.1.4.1 リトル・エンディアン・モードのアライメント・スカラリトル・エンディアン・モードのアライメント・スカラリトル・エンディアン・モードのアライメント・スカラリトル・エンディアン・モードのアライメント・スカラ
☞ 4
3 3-2
3 XOR
GPR FPR
MSB LSB
S
3-5
表表表表 3-2 実効アドレス(実効アドレス(実効アドレス(実効アドレス(EA)の変更)の変更)の変更)の変更
データ幅(バイト)データ幅(バイト)データ幅(バイト)データ幅(バイト) EA の変更の変更の変更の変更
8
4 0b100 XOR
2 0b110 XOR
1 0b111 XOR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-7
3.1 メモリおよびデータ転送におけるデータ構成
図図図図 3-5 メモリ・サブシステム側から見た修正後のリトル・エンディアンの構造体メモリ・サブシステム側から見た修正後のリトル・エンディアンの構造体メモリ・サブシステム側から見た修正後のリトル・エンディアンの構造体メモリ・サブシステム側から見た修正後のリトル・エンディアンの構造体 S
3-5 S
3-5 S 3-6
図図図図 3-6 プロセッサ側から見た修正後のリトル・エンディアンの構造体プロセッサ側から見た修正後のリトル・エンディアンの構造体プロセッサ側から見た修正後のリトル・エンディアンの構造体プロセッサ側から見た修正後のリトル・エンディアンの構造体 S
Contents (x) (x) (x) (x) 11 12 13 14
Address 00 01 02 03 04 05 06 07
Contents 21 22 23 24 25 26 27 28
Address 08 09 0A 0B 0C 0D 0E 0F
Contents ‘O’ ‘N’ ‘M’ ‘L’ 31 32 33 34
Address 10 11 12 13 14 15 16 17
Contents (x) (x) 51 52 (x) ‘R’ ‘Q’ ‘P’
Address 18 19 1A 1B 1C 1D 1E 1F
Contents (x) (x) (x) (x) 61 62 63 64
Address 20 21 22 23 24 25 26 27
Contents 14 13 12 11
Address 00 01 02 03 04 05 06 07
Contents 28 27 26 25 24 23 22 21
Address 08 09 0A 0B 0C 0D 0E 0F
Contents 34 33 32 31 ‘L’ ‘M’ ‘N’ ‘O’
Address 10 11 12 13 14 15 16 17
Contents ‘P’ ‘Q’ ‘R’ 52 51
Address 18 19 1A 1B 1C 1D 1E 1F
Contents 64 63 62 61
Address 20 21 22 23 24 25 26 27
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-8 Freescale Semiconductor
3.1 メモリおよびデータ転送におけるデータ構成
第3章
オペランド規約
3-6 3-3
S 3-5
3-2
3-3
I/O
☞ 3.1.4.5
3.1.4.2 リトル・エンディアン・モードのミスアライメント・スカラリトル・エンディアン・モードのミスアライメント・スカラリトル・エンディアン・モードのミスアライメント・スカラリトル・エンディアン・モードのミスアライメント・スカラ
XOR
3-7 4
0x1112_1314 05
図図図図 3-7 正式なリトル・エンディアン・モードによるアドレス正式なリトル・エンディアン・モードによるアドレス正式なリトル・エンディアン・モードによるアドレス正式なリトル・エンディアン・モードによるアドレス 05 へのワードのストアへのワードのストアへのワードのストアへのワードのストア
3-7 LSB 0x14
0x05 0x13 0x06 3
0x12 0x07 MSB 0x11
0x08
sync stfiwx
Contents 14 13 12
Address 00 01 02 03 04 05 06 07
Contents 11
Address 08 09 0A 0B 0C 0D 0E 0F
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-9
3.1 メモリおよびデータ転送におけるデータ構成
1
1
3-7 LSB 0x14 0x05
0b111 XOR 0x02 0x13 0x06
0b111 XOR 0x01
3 0x12 0x07 0b111
XOR 0x00 MSB 0x11 0x08
0b111 XOR 0x0F
3-8
図図図図 3-8 メモリ・サブシステム側から見たリトル・エンディアンでアドレスメモリ・サブシステム側から見たリトル・エンディアンでアドレスメモリ・サブシステム側から見たリトル・エンディアンでアドレスメモリ・サブシステム側から見たリトル・エンディアンでアドレス 05 にストアされたワードにストアされたワードにストアされたワードにストアされたワード
2
2
1
Contents 12 13 14
Address 00 01 02 03 04 05 06 07
Contents 11
Address 08 09 0A 0B 0C 0D 0E 0F
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-10 Freescale Semiconductor
3.1 メモリおよびデータ転送におけるデータ構成
第3章
オペランド規約
3.1.4.3 ノンスカラノンスカラノンスカラノンスカラ
2
•
•
3.1.4.4 リトル・エンディアン・モードの命令アドレッシングリトル・エンディアン・モードの命令アドレッシングリトル・エンディアン・モードの命令アドレッシングリトル・エンディアン・モードの命令アドレッシング
4
☞ 3.1.4.1
0b100 XOR
•
SPR
•
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-11
3.1 メモリおよびデータ転送におけるデータ構成
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-12 Freescale Semiconductor
•
•
3.1.4.5 リトル・エンディアン・モードの入力/出力データの転送アドレッシンリトル・エンディアン・モードの入力/出力データの転送アドレッシンリトル・エンディアン・モードの入力/出力データの転送アドレッシンリトル・エンディアン・モードの入力/出力データの転送アドレッシンググググ
0
0
I/O
0b111
XOR 1 1
1
I/O
1 1
I/O
MSB LSB
3.2 オペランドの配置と処理速度─ VEA
第3章
オペランド規約
3.2 オペランドの配置と処理速度─オペランドの配置と処理速度─オペランドの配置と処理速度─オペランドの配置と処理速度─ VEAVEA
☞ 5.2
3.2.1 性能への影響のまとめ性能への影響のまとめ性能への影響のまとめ性能への影響のまとめ
PowerPC
3-3 3-4
•
•
• BAT
3-3
表表表表 3-3 処理速度に対するメモリ・オペランド配置の影響処理速度に対するメモリ・オペランド配置の影響処理速度に対するメモリ・オペランド配置の影響処理速度に対するメモリ・オペランド配置の影響(ビッグ・エンディアン・モード)(ビッグ・エンディアン・モード)(ビッグ・エンディアン・モード)(ビッグ・エンディアン・モード)
オペランドオペランドオペランドオペランド 境界の交差境界の交差境界の交差境界の交差
タイプタイプタイプタイプ サイズサイズサイズサイズバイト・バイト・バイト・バイト・
アライメントアライメントアライメントアライメントなしなしなしなし
キャッシュ・キャッシュ・キャッシュ・キャッシュ・
ブロックブロックブロックブロックページページページページ
BAT ////
セグメントセグメントセグメントセグメント
8 84
4
4 4
4
2 2
2
1 1
lmw, stmw 4 1
V
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-13
3.2 オペランドの配置と処理速度─ VEA
3-4
8 84
4
4 4
41 メモリ/キャッシュのアクセス属性が異なる 2 つのページの境界で交差が発生すると、
セグメント境界の交差と同じことになり、処理速度への影響は「不適」に該当します。
表表表表 3-4 処理速度に対するメモリ・オペランド配置の影響処理速度に対するメモリ・オペランド配置の影響処理速度に対するメモリ・オペランド配置の影響処理速度に対するメモリ・オペランド配置の影響(リトル・エンディアン・モード)(リトル・エンディアン・モード)(リトル・エンディアン・モード)(リトル・エンディアン・モード)
オペランドオペランドオペランドオペランド 境界の交差境界の交差境界の交差境界の交差
タイプタイプタイプタイプ サイズサイズサイズサイズバイト・バイト・バイト・バイト・
アライメントアライメントアライメントアライメントなしなしなしなし
キャッシュ・キャッシュ・キャッシュ・キャッシュ・
ブロックブロックブロックブロックページページページページ
BAT ////
セグメントセグメントセグメントセグメント
8 8
8
4 4
4
2 2
2
1 1
8 8
8
4 4
4
表表表表 3-3 処理速度に対するメモリ・オペランド配置の影響処理速度に対するメモリ・オペランド配置の影響処理速度に対するメモリ・オペランド配置の影響処理速度に対するメモリ・オペランド配置の影響(ビッグ・エンディアン・モード)(続き)(ビッグ・エンディアン・モード)(続き)(ビッグ・エンディアン・モード)(続き)(ビッグ・エンディアン・モード)(続き)
オペランドオペランドオペランドオペランド 境界の交差境界の交差境界の交差境界の交差
タイプタイプタイプタイプ サイズサイズサイズサイズバイト・バイト・バイト・バイト・
アライメントアライメントアライメントアライメントなしなしなしなし
キャッシュ・キャッシュ・キャッシュ・キャッシュ・
ブロックブロックブロックブロックページページページページ
BAT ////
セグメントセグメントセグメントセグメント
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-14 Freescale Semiconductor
3.2 オペランドの配置と処理速度─ VEA
第3章
オペランド規約
3.2.2 命令のリスタート命令のリスタート命令のリスタート命令のリスタート
•
•
BAT
•
BAT
BAT
BAT
☞ 7.5
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-15
3.3 浮動小数点実行モデル─ UISA
3.3 浮動小数点実行モデル─浮動小数点実行モデル─浮動小数点実行モデル─浮動小数点実行モデル─ UISA2
• IEEE-754 64 32
•
MSR[FP]
IEEE
•
•
IEEE
☞ C
11
2
1 1
1
U
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-16 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
•
•
3.3.1 浮動小数点データのフォーマット浮動小数点データのフォーマット浮動小数点データのフォーマット浮動小数点データのフォーマット
UISA 32
64
FPR
3-9 3-10
図図図図 3-9 浮動小数点単精度フォーマット浮動小数点単精度フォーマット浮動小数点単精度フォーマット浮動小数点単精度フォーマット
図図図図 3-10 浮動小数点倍精度フォーマット浮動小数点倍精度フォーマット浮動小数点倍精度フォーマット浮動小数点倍精度フォーマット
3
• S
• EXP +
• FRACTION
☞ 3.1.2
FRACTION
2
1 0 2
3-5
S Exp Fraction
0 1 8 9 31
S Exp Fraction
0 1 1112 63
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-17
3.3 浮動小数点実行モデル─ UISA
3-6 127
1023
表表表表 3-5 IEEE 浮動小数点フィールド浮動小数点フィールド浮動小数点フィールド浮動小数点フィールド
パラメータパラメータパラメータパラメータ 単精度単精度単精度単精度 倍精度倍精度倍精度倍精度
+127 +1023
+127 +1023
-126 -1022
32 64
1 1
8 11
23 52
24 53
表表表表 3-6 バイアス処理した指数部フォーマットバイアス処理した指数部フォーマットバイアス処理した指数部フォーマットバイアス処理した指数部フォーマット
バイアス処理した指数部バイアス処理した指数部バイアス処理した指数部バイアス処理した指数部
((((2 進数)進数)進数)進数)単精度(バイアスなし)単精度(バイアスなし)単精度(バイアスなし)単精度(バイアスなし) 倍精度(バイアスなし)倍精度(バイアスなし)倍精度(バイアスなし)倍精度(バイアスなし)
11 . . . . . 11
11 . . . . . 10 +127 +1023
11 . . . . . 01 +126 +1022
10 . . . . . 00 1 1
01 . . . . . 11 0 0
01 . . . . . 10 -1 -1
00 . . . . . 01 -126 -1022
00 . . . . . 00
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-18 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
3.3.1.1 値の表記値の表記値の表記値の表記
UISA
NaN
3-11
0
図図図図 3-11 実数の近似値実数の近似値実数の近似値実数の近似値
3-7
表表表表 3-7 認識される浮動小数点値認識される浮動小数点値認識される浮動小数点値認識される浮動小数点値
符号符号符号符号
ビットビットビットビットバイアス化指数部バイアス化指数部バイアス化指数部バイアス化指数部
インプライド・インプライド・インプライド・インプライド・
ビットビットビットビット仮数部仮数部仮数部仮数部 値値値値
0 x
0 x +
0 0 1 x +
0 0 0 +
0 0 x +0
1 0 x -0
1 0 0 -
1 0 1 x -
1 x -
1 x
極小値� 極小値�
-∞� -NORM -DENORM +DENORM +NORM +∞�
表記不能な小さい値�
+0-0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-19
3.3 浮動小数点実行モデル─ UISA
3.3.1.2 2 進の浮動小数点値進の浮動小数点値進の浮動小数点値進の浮動小数点値
2
3
3.3.1.3 正規化数(±正規化数(±正規化数(±正規化数(± NORM))))
• 1 254
• 1 2046
1
NORM = (-1)s x 2E x (1.fraction)
s E 1.fraction
3-
12
図図図図 3-12 正規化数のフォーマット正規化数のフォーマット正規化数のフォーマット正規化数のフォーマット
M 10
1.2x10-38 ≦ M ≦ 3.4x1038
2.2x10-308 ≦ M ≦ 1.8x10308
最小 < 指数部 < 最大�(バイアスあり)� 仮数部 = 任意のビット・パターン�
符号ビット(0または1)�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-20 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
3.3.1.4 ゼロ値(±ゼロ値(±ゼロ値(±ゼロ値(± 0))))
3-13
+0 -0
☞ 3.3.6.1.1
0
図図図図 3-13 ゼロ値のフォーマットゼロ値のフォーマットゼロ値のフォーマットゼロ値のフォーマット
3.3.1.5 非正規化数(±非正規化数(±非正規化数(±非正規化数(± DENORM))))
3-14
図図図図 3-14 非正規化数のフォーマット非正規化数のフォーマット非正規化数のフォーマット非正規化数のフォーマット
DENORM = (-1)s×2Emin×(0.fraction)
Emin -126
-1022
仮数部 = 0
符号ビット(0または1)�
指数部 = 0�(バイアスあり)�
符号ビット(0または1)�
指数部 = 0�(バイアスあり)�
仮数部 = 任意の非ゼロ・ビット・パターン�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-21
3.3 浮動小数点実行モデル─ UISA
3.3.1.6 無限大(±∞)無限大(±∞)無限大(±∞)無限大(±∞)
255 2047
-∞<あらゆる有限数< +∞
3-15
図図図図 3-15 正および負の無限大値のフォーマット正および負の無限大値のフォーマット正および負の無限大値のフォーマット正および負の無限大値のフォーマット
☞ 3.3.6.1.1
3.3.1.7 非数(非数(非数(非数(NaN))))
3-16
1
NaN
NaN QNaN
図図図図 3-16 非数のフォーマット非数のフォーマット非数のフォーマット非数のフォーマット
NaN
符号ビット(0または1)�
指数部 = 最大�(バイアスあり)�
仮数部 = 0
符号ビット(無視される)�
指数部 = 最大�(バイアスあり)�
仮数部 = 任意の非ゼロ・ビット・パターン�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-22 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
QNaN FPSCR[VE]=0
QNaN
QNaN
QNaN
QNaN
QNaN
frA
frB frB
29 frC
frC
QNaN QNaN
QNaN QNaN
1 1
QNaN
3-17
If(frA) is a NaN
Then frD←(frA)
Else if (frB) is a NaN
Then if instruction is fsrp
Then frD←(frB)[0-34]||(29)0
Else frD←(frB)
Else if (frC) is a NaN
Then frD←(frC)
Else if generated QNaN
Then frD← generated QNaN
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-23
3.3 浮動小数点実行モデル─ UISA
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-24 Freescale Semiconductor
図図図図 3-17 生成された生成された生成された生成された QNaN の表記の表記の表記の表記
3.3.2 結果の符号結果の符号結果の符号結果の符号
0
•
x-y
x+ -y
• 2 2
-
•
XOR
•
•
-0 -0 -0 -
1
3.3.3 正規化および非正規化正規化および非正規化正規化および非正規化正規化および非正規化
Floating Round to Single-Precision frspx
1
符号ビット(無視される)�
111...1 1000....00
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
1
1
☞ C.1 IEEE
1
☞ 3.3.6.2.2
• frspx
•
1
1
3.3.4 データの処理と精度データの処理と精度データの処理と精度データの処理と精度
FPR
FPR
FPR
4
• Load Floating-Point Single Precision lfs
FPR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-25
3.3 浮動小数点実行モデル─ UISA
• Floating Round to Single-Precision frspx
FPSCR
FPR
• FPR
FPSCR CR
FPR
FPR
FPSCR CR
• Store Floating-Point Single sfs
3 1
Load Floating-Point Single lfs Floating Round to Single-Precision frspx
FPR 29
3-18
図図図図 3-18 FPR の単精度表記の単精度表記の単精度表記の単精度表記
S EXP x x x x . . . . . . . . . . . . . . . . . . . . . . . . . x x x 0 0 0 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 0 0
0 1 11 12 63
Bit 35
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-26 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
frspx
frspx
3.3.5 丸め丸め丸め丸め
Floating Receprocal Estimate Single fresx Floating Reciprocla
Square Root Estimate frsqrtex
FPR
IEEE-754
PowerPC
Z
Z
Z Z
Z1 Z2
Z Z1 Z2
3-19 Z Z1 Z2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-27
3.3 浮動小数点実行モデル─ UISA
図図図図 3-19 Z1 とととと Z2 の関係の関係の関係の関係
3-8 FPSCR[RN] 4
☞ C.1 IEEE
☞ 3.3.6.2.2
3-20 FPSCR[RN] 4
Z1 Z2
表表表表 3-8 FRSCR[RN] の設定の設定の設定の設定
RN 丸め丸め丸め丸め モード規則モード規則モード規則モード規則
00 Z1 Z20
01 Z1 Z2
10 + Z1
11 - Z2
負の値�
ZのLSBをインクリメント�無限に正確な値�LSB以降を切り捨て�
Z2 Z1 0 Z2 Z1
Z Z正の値�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-28 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
図図図図 3-20 4 つの丸めモードに対するつの丸めモードに対するつの丸めモードに対するつの丸めモードに対する Z1 とととと Z2 の選択の選択の選択の選択
FI
FR 3-21
FPSCR FR FI FI
FR
FR FI fresx frsqrtex
FI FR FR
FI
Zは無限に正確な�結果またはオペランド�
frD ← ZZ2 < Z < Z1 図3-19参照�
frD ← Z2frD ← Z1frD ← Z2
frD ← Z1frD ← 最適な近似値(Z1またはZ2)�同値の場合、偶数を選択(LSBが0のZ1またはZ2)�
Zはターゲット・�フォーマットで表記可能�
FPSCR[RN] = 01(0方向への丸め)�
Z > 0Z < 0FPSCR[RN] = 11(-∞方向への丸め)�
FPSCR[RN] = 00(近似値への丸め)
FPSCR[RN] = 10(+∞方向への丸め)�
それ以外�
それ以外�
それ以外�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-29
3.3 浮動小数点実行モデル─ UISA
図図図図 3-21 FPSCR の丸めフラグの丸めフラグの丸めフラグの丸めフラグ
3.3.6 浮動小数点プログラム例外浮動小数点プログラム例外浮動小数点プログラム例外浮動小数点プログラム例外
☞ 2
FPSCR
IEEE
☞ 6.4.7 0x00700
3-22 FPSCR
図図図図 3-22 浮動小数点ステータス制御レジスタ(浮動小数点ステータス制御レジスタ(浮動小数点ステータス制御レジスタ(浮動小数点ステータス制御レジスタ(FPSCR))))
Zroundは丸めの結果�
FI ← 0FR ← 0
FI ← 1
FR ← 1 FR ← 0
それ以外�仮数部が�インクリメントされた�
Zround ≠ Zそれ以外�
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 19 20 21 22 23 24 25 26 27 28 29 30 31
VXIDIVXISIVXSNAN
VXZDZVXIMZVXVC
VXSOFTVXSQRTVXCVI
Reserved
FX FEX VX OX UX ZX XX FR FI FPRF 0 VE OE UE ZE XE NI RN
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-30 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
FPSCR 3-9
表表表表 3-9 FPSCR のビット設定のビット設定のビット設定のビット設定
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0 FX mtfsfi mtfsfFPSCR 0 1
FPSCR[FX] mcrfs mtfsf mtfsfi mtfsb0mtfsb1 FPSCR[FX]
1 FEX
ORFEX=(VX & VE) ^ (OX & OE) ^ (UX & UE) ^ (ZX & ZE) ^ (XX &
XE) mcrfs mtfsf mtfsfi mtfsb0 mtfsb1FPSCR[FEX]
2 VX
OR ☞ 3.3.6.1.1 mcrfs mtfsf mtfsfi
mtfsb0 mtfsb1 FPSCR[VX]
3 OX ☞ 3.3.6.2
4 UX ☞ 3.3.6.2.2
5 ZX ☞ 3.3.6.1.2
6 XX ☞ 3.3.6.2.3 XX FPSCR[FI]
XXFPSCR[FI] FPSCR[XX]
FPSCR[FI] OR FPSCR[XX]FPSCR[FI] FPSCR[XX]
7 VXSNAN
SNaN☞ 3.3.6.1.1
8 VXISI -☞ 3.3.6.1.1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-31
3.3 浮動小数点実行モデル─ UISA
9 VXIDI
☞ 3.3.6.1.1
10 VXZDZ 0 0☞ 3.3.6.1.1
11 VXIMZ × 0☞ 3.3.6.1.1
12 VXVC
☞ 3.3.6.1.1
13 FR
☞ 3.3.5
14 FI
☞ 3.3.5 FPSCR[FI] FPSCR[XX]
FPSCR[XX]
15-19 FPRF
15 CFPCC
3-1016 19 FPCC
FPCC 1 13 0
FPCC CFPCC 3
16 FL17 FG18 FE =19 NaN FU ?
20
表表表表 3-9 FPSCR のビット設定(続き)のビット設定(続き)のビット設定(続き)のビット設定(続き)
ビットビットビットビット 名前名前名前名前 説明説明説明説明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-32 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
21 VXSOFT
mcrfs mtfsfi mtfsf mtfsb0mtfsb1 ☞ 3.3.6.1.1
22 VXSQRT
☞ 3.3.6.1.1
23 VXCVI
☞ 3.3.6.1.1
24 VE ☞ 3.3.6.1.1
25 OE IEEE ☞ 3.3.6.2
26 UE IEEE ☞ 3.3.6.2.2
27 ZE ☞ 3.3.6.1.2
28 XE ☞ 3.3.6.2.3
29 NI IEEEIEEE FPSCR
IEEE
30-31 RN ☞ 3.3.5 000110 +11 -
表表表表 3-9 FPSCR のビット設定(続き)のビット設定(続き)のビット設定(続き)のビット設定(続き)
ビットビットビットビット 名前名前名前名前 説明説明説明説明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-33
3.3 浮動小数点実行モデル─ UISA
3-10 FPSCR[FPRF]
FPSCR
• VX
SNaN VXSNAN
- VXISI
VXIDI
VXZDZ
× VXIMZ
VXVC
VXSOFT
VXCVI
VXSQRT
☞ 3.3.6.1.1
• ZX ☞ 3.3.6.1.2
表表表表 3-10 浮動小数点結果フラグ─浮動小数点結果フラグ─浮動小数点結果フラグ─浮動小数点結果フラグ─ FPSCR[FPRF]
結果フラグ(ビット結果フラグ(ビット結果フラグ(ビット結果フラグ(ビット 15-19))))結果値クラス結果値クラス結果値クラス結果値クラス
C <<<< >>>> = ?
1 0 0 0 1 NaN
0 1 0 0 1 -
0 1 0 0 0 -
1 1 0 0 0 -
1 0 0 1 0 -
0 0 0 1 0 +
1 0 1 0 0 +
0 0 1 0 0 +
0 0 1 0 1 +
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-34 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
• OX ☞ 3.3.6.2.1
• UX ☞ 3.3.6.2.2
• XX ☞ 3.3.6.2.3
IEEE
FPSCR
1
FPSCR IEEE
FPSCR[FX]
FPSCR[FX] 0 MSR[FE0] MSR[FE1]
FPR
MSR[FE0,FE1]
FPSCR[FX] FPSCR 0 1
mtfsfi mtfsf
mtfsfi mtfsf mtfsb1
FPSCR[FEX]
1
• FPSCR[XX]
FPSCR[OX]
• FPSCR[XX]
FPSCR[UX]
• IEEE SNaN
IEEE
× 0 FPSCR[VXIMZ
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-35
3.3 浮動小数点実行モデル─ UISA
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-36 Freescale Semiconductor
• IEEE SNaN
IEEE
FPSCR[VXVC]
• IEEE SNaN
IEEE
FPSCR[VXCVI]
1
• IEEE
•
• IEEE
•
•
•
•
•
•
•
IEEE
FPSCR
IEEE
FPSCR 0
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
IEEE
3-11
FPSCR
FPSCR
FPSCR
3-11 MSR FE0 FE1
表表表表 3-11 FP 例外に対する例外に対する例外に対する例外に対する MSR[FE0] およびおよびおよびおよび MSR[FE1] のビット設定のビット設定のビット設定のビット設定
FE0 FE1 説明説明説明説明
0 0
0 1
1 0
1 1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-37
3.3 浮動小数点実行モデル─ UISA
FPSCR
FPSCR FPSCR
FPSCR FPSCR
FPSCR
FPSCR
FPSCR
• IEEE FE0 FE1
FPSCR
• IEEE FPSCR
• FPSCR
•
3.3.6.1 無効オペレーションおよびゼロ除算の例外条件無効オペレーションおよびゼロ除算の例外条件無効オペレーションおよびゼロ除算の例外条件無効オペレーションおよびゼロ除算の例外条件
3-23
FPSCR[FEX] MSR[FE0,FE1] 00
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-38 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
図図図図 3-23 浮動小数点例外条件の初期フロー浮動小数点例外条件の初期フロー浮動小数点例外条件の初期フロー浮動小数点例外条件の初期フロー
☞ 6
3.3.6.1.1に示す通り実行�
FP例外条件をチェック� FP算術命令�
オーバフロー、アンダフロー�および不正確例外条件をチェック�
(図 3-24参照)�
3.3.6.1.2に示す通り実行�
• xround← 丸められた x(FPSCR[RN]による)�• frD←xround• FPSCR[FI, FR, FPRF] を適切にセット�
命令実行を継続�
FPイネーブル�プログラム例外処理�
FPイネーブル�プログラム例外処理�
(無効オペレーションのため)�
(ゼロ除算のため)�
(FPSCR[FEX] = 1) & (MSR[FE0-FE1] ≠ 00)
x = (0) or (±∞) それ以外�
それ以外�
それ以外� ゼロ除算例外条件�
それ以外�
それ以外�
(FPSCR[FEX] = 1) & (MSR[FE0-FE1] ≠ 00)
無効オペランド例外条件�
命令実行�x ← 中間結果�(無限に正確で範囲が無制限)�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-39
3.3 浮動小数点実行モデル─ UISA
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-40 Freescale Semiconductor
3.3.6.1.1 無効オペレーション例外条件無効オペレーション例外条件無効オペレーション例外条件無効オペレーション例外条件
• NaN SNaN
mtfsf
• -
•
• 0 0
• × 0
•
•
FPSCR[VXSQRT]
•
FPSCR[VXSOFT]
FPSCR[VXSOFT]
FPSCR[VE]
• 1 2
FPSCR[VXSNAN] SNaN
FPSCR[VXISI] -
FPSCR[VXIDI]
FPSCR[VXZDZ] 0 0
FPSCR[VXIMZ] × 0
FPSCR[VXVC]
FPSCR[VXSOFT]
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
FPSCR[VXSQRT]
FPSCR[VXCVI]
•
FPSCR[FR,FI,C]
FPSCR[FPCC]
•
FPSCR[FR,FI,FPRF] mtfsfi mtfsf mtfsb1
3-12 FPSCR[VE]
表表表表 3-12 無効の無効の無効の無効の FP オペレーションで実行される処理オペレーションで実行される処理オペレーションで実行される処理オペレーションで実行される処理
無効オペレーション無効オペレーション無効オペレーション無効オペレーション 結果カテゴリ結果カテゴリ結果カテゴリ結果カテゴリ FPSCR[VE]=1 での処理での処理での処理での処理 FPSCR[VE]=0 での処理での処理での処理での処理
frD QNaN
FPSCR[FR, FI]
FPSCR[FPRF] QNaN
64+
frD[0ñ63] 64
FPSCR[FR, FI]
FPSCR[FPRF] QNaN
64NaN -
frD[0-63] 64
FPSCR[FR, FI]
FPSCR[FPRF] QNaN
32+
frD[0-31]
frD[32ñ63] 32
FPSCR[FR, FI]
FPSCR[FPRF] QNaN
32NaN -
frD[0-31]
frD[32-63] 32
FPSCR[FR, FI]
FPSCR[FPRF] QNaN
FPSCR[FEX]
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-41
3.3 浮動小数点実行モデル─ UISA
3.3.6.1.2 ゼロ除算例外条件ゼロ除算例外条件ゼロ除算例外条件ゼロ除算例外条件
fres frsqrte
fres
frsqrte
• FPSCR[ZX]=1
• FPSCR[FR,FI]
3-13 FPSCR[ZE]
3.3.6.2 オーバフロー、アンダフロー、および不正確例外条件オーバフロー、アンダフロー、および不正確例外条件オーバフロー、アンダフロー、および不正確例外条件オーバフロー、アンダフロー、および不正確例外条件
3-24
3-23
表表表表 3-13 ゼロ除算で実行される処理ゼロ除算で実行される処理ゼロ除算で実行される処理ゼロ除算で実行される処理
結果カテゴリ結果カテゴリ結果カテゴリ結果カテゴリ FPSCR[VE]=1 での処理での処理での処理での処理 FPSCR[VE]=0 での処理での処理での処理での処理
frD XOR
FPSCR[FEX]
FPSCR[FPRF]
3
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-42 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-43
図図図図 3-24 残りの浮動小数点例外条件のチェック残りの浮動小数点例外条件のチェック残りの浮動小数点例外条件のチェック残りの浮動小数点例外条件のチェック
xnorm ← 正規化された x(xnorm 無限に正確で範囲が無制限)�
オーバフロー、アンダフロー、�不正確のチェック� (図 3-23の続き)�
FPSCR[FPRF]を適切にセット�
それ以外�
もし(FPSCR[FEX] = 1) & (MSR[FE0-FE1]=00)ならFPプログラム例外。それ以外の場合は継続�
それ以外�FPSCR[UE] = 0(アンダフローがディセーブル)�
xround > 結果の精度の最大有限数�
FPSCR[OX] ← 1
それ以外� FPSCR[OE] = 0(オーバフローがディセーブル)�
• FPSCR[FEX] = 1(暗黙に)�• 表3-15の通り指数を調整• frD ← xround(調整済み)�• 不正確 ← xround ≠ xnor m
FPSCR[XX] ← 1
• 表3-15の通りデフォルト結果を得る�• frD ← デフォルト�• FPSCR[FI] ← 1• FPSCR[FR] ← 未定義�
それ以外�
FPSCR[XE] = 0(不正確がディセーブル)�
xnorm は極小値�
それ以外�• xdenor m← 非正規化された xnor m• xdenor mを丸め(FPSCR[RN]による)�• frD ← xround ←丸められた xdenor m• 不正確 ← xround ≠ xdenor m• もし不正確なら, FPSCR[UX] 1
• FPSCR[UX] ← 1• FPSCR[FEX] = 1(暗黙に)�• xadjust ←表3-15の通り xnor m の調整指数• xadjustを丸め(FPSCR[RN]による)• frD ← xround ← 丸められた xadjust• 不正確 ← xround ≠ xadjust
それ以外�
• frD ← xround• 不正確 ← xround ≠ xnor m
不正確 = 1
FPSCR[FEX] =1(暗黙に)�
(不正確)�FPSCR[XX] ← 1
xround ←丸められた xnor m(FPSCR[RN]による)�
3.3 浮動小数点実行モデル─ UISA
FPSCR[FEX]
3-9 MSR[FE0,FE1] 00
☞ 6
3.3.6.2.1 オーバフロー例外条件オーバフロー例外条件オーバフロー例外条件オーバフロー例外条件
FPSCR[OX] FPSCR[OE]
3-14 FPSCR[OE]
FPSCR[OE]=0
FPSCR[RN] 3-15
表表表表 3-14 オーバフロー例外条件で実行される処理オーバフロー例外条件で実行される処理オーバフロー例外条件で実行される処理オーバフロー例外条件で実行される処理
条件条件条件条件 結果カテゴリ結果カテゴリ結果カテゴリ結果カテゴリ FPSCR[OE]=1 での処理での処理での処理での処理 FPSCR[OE]=0 での処理での処理での処理での処理
1536
frspx192
frD 3-15
FPSCR[XX]
FPSCR[FEX]
FPSCR[FPRF]
FPSCR[FI]
FPSCR[FR]
表表表表 3-15 オーバフロー例外がディセーブルの場合のデフォルト結果オーバフロー例外がディセーブルの場合のデフォルト結果オーバフロー例外がディセーブルの場合のデフォルト結果オーバフロー例外がディセーブルの場合のデフォルト結果
FPSCR[RN] 中間結果の符号中間結果の符号中間結果の符号中間結果の符号 frD
+
-
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-44 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
3.3.6.2.2 アンダフロー例外条件アンダフロー例外条件アンダフロー例外条件アンダフロー例外条件
•
•
3-24
FPSCR[UE]
☞ 3.3.3
☞ 3.3.5 FPR
FPSCR[UX]
3-16
+ +
-
-
表表表表 3-15 オーバフロー例外がディセーブルの場合のデフォルト結果(続き)オーバフロー例外がディセーブルの場合のデフォルト結果(続き)オーバフロー例外がディセーブルの場合のデフォルト結果(続き)オーバフロー例外がディセーブルの場合のデフォルト結果(続き)
FPSCR[RN] 中間結果の符号中間結果の符号中間結果の符号中間結果の符号 frD
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-45
3.3 浮動小数点実行モデル─ UISA
3
3
FPSCR[FR,FI]
FR FI
.3.6.2.3 不正確例外条件不正確例外条件不正確例外条件不正確例外条件
2
•
•
表表表表 3-16 アンダフロー条件で実行される処理アンダフロー条件で実行される処理アンダフロー条件で実行される処理アンダフロー条件で実行される処理
条件条件条件条件 結果カテゴリ結果カテゴリ結果カテゴリ結果カテゴリ
実行される処理実行される処理実行される処理実行される処理
FPSCR[UE]=1 FPSCR[UE]=0
1536
frspx192
frD
FPSCR[XX]
FPSCR[UX]
FPSCR[FPRF] 0
FPSCR[FEX]
FPSCR[FI]
FPSCR[FR]
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-46 Freescale Semiconductor
3.3 浮動小数点実行モデル─ UISA
第3章
オペランド規約
FPSCR
• FPSCR FPSCR[XX]=1
• FPR
• FPSCR[FPRF]
FPSCR[XE]
FPSCR[FEX]
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 3-47
3.3 浮動小数点実行モデル─ UISA
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
3-48 Freescale Semiconductor
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
第第第第 4 章章章章 アドレッシング・モードと命令セット・アドレッシング・モードと命令セット・アドレッシング・モードと命令セット・アドレッシング・モードと命令セット・サマリサマリサマリサマリ
PowerPC 3
UISA VEA
OEA
• ☞
4.2.1
•
FPSCR
☞ 4.2.2
•
☞ 4.2.3
•
☞ 4.2.4
•
TLB ☞
4.2.5 UISA ☞ 4.3.1
VEA ☞ 4.4.2 OEA
•
☞ 4.2.6 UISA ☞ 4.3.2
VEA
•
☞ 4.3.3
VEA ☞ 4.4.3 OEA
UV
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-1
•
☞ 4.3.4
PowerPC 4
32 GPR
32 FPR
FPR
64 GPR 32
☞ E
☞ 1.1.1 PowerPC 3
U
UV
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-2 Freescale Semiconductor
4.1 規約
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.1 規約規約規約規約
4.1.1 順次実行モデル順次実行モデル順次実行モデル順次実行モデル
PowerPC
☞ 6
☞ 4.2.3.3 ☞ 5.2.5.2
☞ 5.3.1.5
G
4.1.2 命令クラス命令クラス命令クラス命令クラス
3
•
•
•
1
U
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-3
4.1 規約
4.1.2.1 境界未定義の定義境界未定義の定義境界未定義の定義境界未定義の定義
boundedly undefined
4.1.2.2 定義済み命令クラス定義済み命令クラス定義済み命令クラス定義済み命令クラス
UISA VEA OEA
☞ 8
☞ 4.1.2.2.2
4.1.2.2.1 推奨する命令形式推奨する命令形式推奨する命令形式推奨する命令形式
•
•
•
4.1.2.2.2 無効な命令形式無効な命令形式無効な命令形式無効な命令形式
1 1
☞
8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-4 Freescale Semiconductor
4.1 規約
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
0 1
•
•
•
•
• 32
•
4.1.2.2.3 オプションの命令オプションの命令オプションの命令オプションの命令
• fsqrt fsqrts
• fres frsqrte fsel
• eciwx ecowx
• tlbia tlbie tlbsync
☞ 8
stfiwx
☞
8
V
U
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-5
4.1 規約
4.1.2.3 不当な命令クラス不当な命令クラス不当な命令クラス不当な命令クラス
•
1
1 4 5 6 56 57 60 61
•
1 64
32
2 30 58 62
•
☞ A.4 ☞ 4.1.2.4
64
32
1
19 31 59 63 1 30 62 32
64
•
1 ☞ 4.1.2.4
☞ 6.4.7 0x00700
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-6 Freescale Semiconductor
4.1 規約
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.1.2.4 予約済み命令予約済み命令予約済み命令予約済み命令
☞ 6.4.7
0x00700
• POWER
• UISA VEA
OEA
Load Data TLB Entry tlbld Load Instruction
TLB Entry tlbli
• 1
4.1.3 メモリ・アドレッシングメモリ・アドレッシングメモリ・アドレッシングメモリ・アドレッシング
4.1.3.1 メモリ・オペランドメモリ・オペランドメモリ・オペランドメモリ・オペランド
☞ 3.1.2
UV
O
U
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-7
4.1 規約
☞ 3
4.1.3.2 実効アドレスの計算実効アドレスの計算実効アドレスの計算実効アドレスの計算
EA
32
0
32
0
3
☞ 3.1.2
3
•
•
•
☞ 4.2.3.1
3
•
•
•
☞ 4.2.4.1
+4 LR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-8 Freescale Semiconductor
4.1 規約
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.1.4 同期化命令同期化命令同期化命令同期化命令
☞ 6.1.2
4.1.4.1 コンテキスト同期化命令コンテキスト同期化命令コンテキスト同期化命令コンテキスト同期化命令
System Call sc Return from Interrupt rfi Instruction
Synchronize isync
1. sc
2.
3.
4. sc rfi isync
4.1.4.2 実行同期化命令実行同期化命令実行同期化命令実行同期化命令
2
sync 2 isync
2 sync
sync mtmsr
4.1.5 例外のサマリ例外のサマリ例外のサマリ例外のサマリ
OEA
2
O
U
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-9
4.1 規約
•
dcbi mfmsr mfspr
mfsr mfsrin mtmsr mtspr mtsr mtsrin rfi tlbia tlbie
tlbsync OEA mfspr mtspr
SPR
•
•
•
DSI ISI
•
• sc
•
•
•
•
☞ 6
UV
O
U
4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-10 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-11
4.2 UISA の命令の命令の命令の命令
UISA
PowerPC UISA
4.2.1 整数命令整数命令整数命令整数命令
•
•
•
•
GPR GPR
XER Rc
CR
Multiply
High-Word Unsigned mulhwu Divide Word Unsigned divwu
addic. CR
0 3 CR0 CR0
addic addic. subfic addc subfc adde subfe addme
subfme addze subfze 0 XER[CA]
OE o
XER[SO] XER[OV]
4.2 UISA の命令
XER[OV]
XER CA
CR0 XER
4.2.1.1 整数演算命令整数演算命令整数演算命令整数演算命令
4-1
表表表表 4-1 整数演算命令整数演算命令整数演算命令整数演算命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Add Immediate addi rD,rA,SIMM rA|0 + SIMM rD
Add Immediate Shifted
addis rD,rA,SIMM rA|0 + SIMM||0x0000 rD
Add addadd.addoaddo.
rD,rA,rB rA + rB rDadd Add
add. Add with CR Update CR
addo Add with Overflow Enabled o XEROV
addo. Add with Overflow and CR Update o. CRXER OV
Subtract From subfsubf.subfosubfo.
rD,rA,rB rA + rB +1 rDsubf Subtract from
subf. Subtract from with CR Update CR
subfo Subtract from with Overflow Enabled oXER OV
subfo. Subtract from with Overflow and CR Updateo. CR XER
OV
Add ImmediateCarrying
addic rD,rA,SIMM rA + SIMM rD
Add Immediate Carrying and Record
addic. rD,rA,SIMM rA + SIMM rD CR
Subtract from Immediate Carrying
subfic rD,rA,SIMM rA + SIMM + 1 rD
4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-12 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
Add Carrying addcaddc.addcoaddco.
rD,rA,rB rA + rB rDaddc Add Carrying
addc. Add Carrying with CR Update CR
addco Add Carrying with Overflow Enabled oXER OV
addco. Add Carrying with Overflow and CR Updateo. CR XER
OV
Subtract from Carrying
subfcsubfc.subfcosubfco.
rD,rA,rB rA + rB +1 rDsubfc Subtract from Carrying
subfc. Subtract from Carrying with CR UpdateCR
subfco Subtract from Carrying with Overflow oXER OV
subfco. Subtract from Carrying with Overflow and CR
Update o. CR XEROV
Add Extended addeadde.addeoaddeo.
rD,rA,rB rA + rB +XER[CA] rDadde Add Extended
adde. Add Extended with CR UpdateCR
addeo Add Extended with Overflow o XEROV
addeo. Add Extended with Overflow and CR Updateo. CR XER
OV
Subtract from Extended
subfesubfe.subfeosubfeo.
rD,rA,rB rA + rB + XER[CA] rDsubfe Subtract from Extended
subfe. Subtract from Extended with CR UpdateCR
subfeo Subtract Extended with Overflow o XEROV
subfeo. Subtract from Extended with Overflow and CR
Update o. CR XEROV
表表表表 4-1 整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-13
4.2 UISA の命令
4
Add to Minus One Extended
addmeaddme.addmeoaddmeo.
rD,rA rA + XER[CA] + 0xFFFF_FFFF rDaddme Add to Minus One Extended
addme. Add to Minus One Extended with CR UpdateCR
addmeo Add to Minus One Extended with Overflowo XER OV
addmeo. Add to Minus One Extended with Overflow and CR
Update o. CR XEROV
Subtract from Minus One Extended
subfmesubfme.subfmeosubfmeo.
rD,rA rA + XER[CA] + 0xFFFF_FFFF rDsubfme Subtract from Minus One Extendedsubfme. Subtract from Minus One Extended with CR Update
CR
subfmeo Subtract from Minus One Extended with Overflowo XER OV
subfmeo. Subtract from Minus One Extended with Overflow
and CR Update o. CR XEROV
Add to Zero Extended
addzeaddze.addzeoaddzeo.
rD,rA rA + XER[CA] rDaddze Add to Zero Extended
addze. Add to Zero Extended with CR UpdateCR
Addzeo Add to Zero Extended with Overflow oXER OV
addzeo. Add to Zero Extended with Overflow and CR Update
o. CR XEROV
Subtract from Zero Extended
subfzesubfze.subfzeosubfzeo.
rD,rA rA + XER[CA] rDsubfze Subtract from Zero Extended
subfze. Subtract from Zero Extended with CR UpdateCR
subfzeo Subtract from Zero Extended with Overflowo XER OV
subfzeo. Subtract from Zero Extended with Overflow and CR
Update o. CR XEROV
表表表表 4-1 整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-14 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-15
Negate negneg.negonego.
rD,rA rA +1 rDneg Negate
neg. Negate with CR Update CR
nego Negate with Overflow o XEROV
nego. Negate with Overflow and CR Update o.CR XER OV
Multiply Low Immediate
mulli rD,rA,SIMM rA *SIMM 32 rDmulhdx mulhwx 64
Multiply Low mullwmullw.mullwomullwo.
rD,rA,rB rA * rB 32 rDmulhwx 64
mullw Multiply Low
mullw. Multiply Low with CR Update CR
mullwo Multiply Low with Overflow o XEROV
mullwo. Multiply Low with Overflow and CR Updateo. CR XER
OV
Multiply High Word
mulhwmulhw.
rD,rA,rB rA rB 3264 64 32
rDmulhw Multiply High Word
mulhw. Multiply High Word with CR UpdateCR
Multiply High Word Unsigned
mulhwumulhwu.
rD,rA,rB rA rB 3264 64 32
rDmulhwu Multiply High Word Unsigned
mulhwu. Multiply High Word Unsigned with CR UpdateCR
表表表表 4-1 整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
4.2 UISA の命令
Subtract Immediate addi
subf 3
rB 2 rA 2 3
☞
E
4.2.1.2 整数比較命令整数比較命令整数比較命令整数比較命令
rA UIMM
SIMM rB
cmpi cmp
cmpli cmpl
4-2
32 L
Divide Word divwdivw.divwodivwo.
rD,rA,rB rA rBrD
divw Divide Word
divw. Divide Word with CR Update CR
divwo Divide Word with Overflow o XEROV
divwo. Divide Word with Overflow and CR Updateo. CR XER
OV
Divide Word Unsigned
divwudivwu.divwuodivwuo.
rD,rA,rB rA rBrD
divwu Divide Word Unsigned
divwu. Divide Word Unsigned with CR UpdateCR
divwuo Divide Word Unsigned with Overflow oXER OV
divwuo. Divide Word Unsigned with Overflow and CR
Update o. CR XEROV
表表表表 4-1 整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-16 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4-2 CR 3
1 2 XER[SO]
CR 3
CR0 crfD
crfD CR
☞ E
4.2.1.3 整数論理命令整数論理命令整数論理命令整数論理命令
4-3 32
CR
andi. andis. CR CR0
0 2 CR
CR
XER[SO,OV,CA]
表表表表 4-2 整数比較命令整数比較命令整数比較命令整数比較命令
名 前名 前名 前名 前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Compare Immediate
cmpi crfD,L,rA,SIMM rA SIMM
crfD CR
Compare cmp crfD,L,rA,rB rA rB
crfD CR
Compare Logical Immediate
cmpli crfD,L,rA,UIMM rA 0x0000|| UIMM
crfD CR
Compare Logical
cmpl crfD,L,rA,rB rA rB
crfD CR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-17
4.2 UISA の命令
☞ E
表表表表 4-3 整数論理命令整数論理命令整数論理命令整数論理命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
AND Immediate
andi. rA,rS,UIMM rS 0x0000||UIMM AND rA
CR
AND Immediate Shifted
andis. rA,rS,UIMM rS UIMM||0x0000 AND rA
CR
OR Immediate ori rA,rS,UIMM rS 0x0000||UIMM OR rA
ori 0,0,0
OR Immediate Shifted
oris rA,rS,UIMM rS UIMM||0x0000 OR rA
XOR Immediate
xori rA,rS,UIMM rS 0x0000||UIMM XOR rA
XOR Immediate Shifted
xoris rA,rS,UIMM rS UIMM||0x0000 XOR rA
AND andand.
rA,rS,rB rS rB AND rA
and AND
and. AND with CR Update CR
OR oror.
rA,rS,rB rS rB OR rA
or OR
or. OR with CR Update CR
XOR xorxor.
rA,rS,rB rS rB XOR rA
xor XOR
xor. XOR with CR Update CR
NAND nandnand.
rA,rS,rB rS rB AND 1rAnand NAND
nand. NAND with CR Update CR
rS=rB nandx 1
4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-18 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-19
NOR nornor.
rA,rS,rB rS rB OR 1rAnor NOR
nor. NOR with CR Update CR
rS=rB norx 1
Equivalent eqveqv.
rA,rS,rB rS rB XOR rA
eqv Equivalent
eqv. Equivalent with CR Update CR
AND with Complement
andcandc.
rA,rS,rB rS rB 1 ANDrAandc AND with Complement
andc. AND with Complement with CR UpdateCR
OR with Complement
orcorc.
rA,rS,rB rS rB OR rA
orc OR with Complement
orc. OR with Complement with CR UpdayteCR
Extend Sign Byte
extsbextsb.
rA,rS rS 8 rA 8rS 24 rA
extsb Extend Sign Byte
extsb. Extend Sign Byte with CR UpdateCR
Extend Sign Half Word
extshextsh.
rA,rS rS 16 rA 16rS 16 rA
extsh Extend Sign Half Word
extsh. Extend Sign Half Word with CR UpdateCR
Count LeadingZeros Word
cntlzwcntlzw.
rA,rS rS 0rA 0 32Rc=1 CR0 LT
cntlzw Count Leading Zeros Word
cntlzw. Count Leading Zeros Word with CR UpdateCR
表表表表 4-3 整数論理命令(続き)整数論理命令(続き)整数論理命令(続き)整数論理命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
4.2 UISA の命令
4.2.1.4 整数ローテート/シフト命令整数ローテート/シフト命令整数ローテート/シフト命令整数ローテート/シフト命令
GPR
GPR 32
0 31
32 Mstart
Mstop 1
0 Mstart Mstop 0
31 Mstart Mstop 1 31 0
Mstart ≤ Mstop
[mstart-mstop]=1
[ ]=0
[mstart-31]=1
[0-mstop]=1
[ ]=0
CR
rA CR0[0-2]
XER[OV] XER[CA]
XER[CA]
☞ E
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-20 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.1.4.1 整数ローテート命令整数ローテート命令整数ローテート命令整数ローテート命令
1
0
AND
64-n n
32-n n
32
4-4
表表表表 4-4 整数ローテート命令整数ローテート命令整数ローテート命令整数ローテート命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Rotate Left Word Immediate then AND with Mask
rlwinmrlwinm.
rA,rS,SH,MB,ME
rS SHMB
ME1 0
AND rArlwinm Rotate Left Word Immediate then AND with
Maskrlwinm. Rotate Left Word Immediate then AND with
Mask with CR Update CR
Rotate Left Word then AND with Mask
rlwnmrlwnm.
rA,rS,rB,MB,ME
rS rB 5
MB ME1 0
AND rA
rlwnm Rotate Left Word then AND with Maskrlwnm. Rotate Left Word then AND with Mask with CR
Update CR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-21
4.2 UISA の命令
4.2.1.4.2 整数シフト命令整数シフト命令整数シフト命令整数シフト命令
☞ E
Shift Right Algebraic addze 2n
Shift Right Algebraic XER[CA]
☞ B
4-5
Rotate Left Word Immediate then Mask Insert
rlwimirlwimi.
rA,rS,SH,MB,ME
rS SH
MB ME1 0
rArlwimi Rotate Left Word Immediate then Maskrlwimi. Rotate Left Word Immediate then Mask Insert
with CR Up date CR
表表表表 4-5 整数シフト命令整数シフト命令整数シフト命令整数シフト命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Shift Left Word slwslw.
rA,rS,rB rS rB 60
32rA
slw Shift Left Word
slw. Shift Left Word with CR UpdateCR
表表表表 4-4 整数ローテート命令(続き)整数ローテート命令(続き)整数ローテート命令(続き)整数ローテート命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-22 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.2 浮動小数点命令浮動小数点命令浮動小数点命令浮動小数点命令
•
•
•
•
•
•
MSR[FP]
MSR[FP]=0
☞ 6.4.8
0x00800 ☞ 4.2.3
Shift Right Word
srwsrw.
rA,rS,rB rS rB 631
32rA
srw Shift Right Word
srw. Shift Right Word with CR UpdateCR
Shift Right Algebraic Word Immediate
srawisrawi.
rA,rS,SH rS SH31
rAsrawi Shift Right Algebraic Word Immediatesrawi. Shift Right Algebraic Word Immediate with CR
Update CR
Shift Right Algebraic Word
srawsraw.
rA,rS,rB rS rB 6 31
32 rAsraw Shift Right Algebraic Word
sraw. Shift Right Algebraic Word with CR UpdateCR
表表表表 4-5 整数シフト命令(続き)整数シフト命令(続き)整数シフト命令(続き)整数シフト命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-23
4.2 UISA の命令
IEEE-754
fmadd fres fsel frsqrte
IEEE FPSCR[NI]
IEEE-754
☞ 3.3 UISA ☞
C
4.2.2.1 浮動小数点演算命令浮動小数点演算命令浮動小数点演算命令浮動小数点演算命令
4-6
表表表表 4-6 浮動小数点演算命令浮動小数点演算命令浮動小数点演算命令浮動小数点演算命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Floating Add faddfadd.
frD,frA,frB frA frB 1
FPSCRRN
frDfadd Floating Addfadd. Floating Add with CR Update
CR
Floating Add Single
faddsfadds.
frD,frA,frB frA frB 1
FPSCRRN
frDfadds Floating Add Single
fadds. Floating Add Single with CR UpdateCR
Floating Subtract
fsubfsub.
frD,frA,frB frA frB1
FPSCRRN
frDfsub Floating Subtractfsub. Floating Subtract with CR Update
CR
4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-24 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
Floating Subtract Single
fsubsfsubs.
frD,frA,frB frA frB1
FPSCRRN
frDfsubs Floating Subtract Single
fsubs. Floating Subtract Single with CR UpdateCR
Floating Multiply
fmulfmul.
frD,frA,frC frA frC
fmul Floating Multiplyfmul. Floating Multiply with CR Update
CR
Floating Multiply Single
fmulsfmuls.
frD,frA,frC frA frC
fmuls Floating Multiply Single
fmuls. Floating Multiply Single with CR UpdateCR
Floating Divide fdivfdiv.
frD,frA,frB frA frB
fdiv Floating Dividefdiv. Floating Divide with CR Update
CR
Floating DivideSingle
fdivsfdivs.
frD,frA,frB frA frB
fdivs Floating Divide Single
fdivs. Floating Divide Single with CR UpdateCR
Floating SquareRoot
fsqrtfsqrt.
frD,frB frB frD
fsqrt Floating Square Rootfsqrt. Floating Square Root with CR Update
CR
Floating SquareRoot Single
fsqrtsfsqrts.
frD,frB frB frD
fsqrts Floating Square Root Single
fsqrts. Floating Square Root Single with CR UpdateCR
表表表表 4-6 浮動小数点演算命令(続き)浮動小数点演算命令(続き)浮動小数点演算命令(続き)浮動小数点演算命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-25
4.2 UISA の命令
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-26 Freescale Semiconductor
4.2.2.2 浮動小数点積和演算命令浮動小数点積和演算命令浮動小数点積和演算命令浮動小数点積和演算命令
106 106
•
FPSCR[FR,FI,FPRF]
• 2
fmuls fadds fsubs
SNaN
SNaN
Floating Reciprocal Estimate Single
fresfres.
frD,frB frB frDfrD frB
256 1fres Floating Reciprocal Estimate Singlefres. Floating Reciprocal Estimate Single with CR
Update CR
Floating Reciprocal Square Root Estimate
frsqrtefrsqrte.
frD,frB frBfrD frD frB
32 1frsqrte Floating Reciprocal Square Root Estimatefrsqrte. Floating Reciprocal Square Root Estimate with CR
Update CR
Floating Select fselfsel.
frD,frA,frC,frB
frA frC
frD 0 NaNfrB frD
+0 -0fsel Floating Select
fsel. Floating Select with CR UpdateCR
表表表表 4-6 浮動小数点演算命令(続き)浮動小数点演算命令(続き)浮動小数点演算命令(続き)浮動小数点演算命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4-7
表表表表 4-7 浮動小数点積和演算命令浮動小数点積和演算命令浮動小数点積和演算命令浮動小数点積和演算命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Floating Multiply-Add
fmaddfmadd.
frD,frA,frC,frB frA frCfrB
fmadd Floating Multiply-Addfmadd. Floating Multiply-Add with CR Update
CR
Floating Multiply-Add Single
fmaddsfmadds.
frD,frA,frC,frB frA frCfrB
fmadds Floating Multiply-Add Single
fmadds. Floating Multiply-Add Single with CR UpdateCR
Floating Multiply-Subtract
fmsubfmsub.
frD,frA,frC,frB frA frCfrB
fmsub Floating Multiply-Subtractfmsub. Floating Multiply-Subtract with CR
Update CR
Floating Multiply-Subtract Single
fmsubsfmsubs.
frD,frA,frC,frB frA frCfrB
fmsubs Floating Multiply-Subtract Singlefmsubs. Floating Multiply-Subtract Single with CR
Update CR
Floating Negative Multiply-Add
fnmaddfnmadd.
frD,frA,frC,frB frA frC frB
fnmadd Floating Negative Multiply-Addfnmadd. Floating Negative Multiply-Add with
CR Update CR
Floating Negative Multiply-Add Single
fnmaddsfnmadds.
frD,frA,frC,frB frA frCfrB
fnmadds Floating Negative Multiply-Add Singlefnmadds.Floating Negative Multiply-Add Single with CR
Update CR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-27
4.2 UISA の命令
☞ C.2
4.2.2.3 浮動小数点丸め変換命令浮動小数点丸め変換命令浮動小数点丸め変換命令浮動小数点丸め変換命令
Floating Round to Single-Precision frsp 64 32
64 32
Floating Convert to Integer Word fctiw Floating
Convert to Integer Word with Round toward Zero fctiwz frD[0-
31] 4-8
☞ C
Floating Negative Multiply-Subtract
fnmsubfnmsub.
frD,frA,frC,frB frA frCfrB
fnmsub Floating Negative Multiply-Subtractnmsub. Floating Negative Multiply-Subtract
with CR Update CR
Floating Negative Multiply-Subtract Single
fnmsubsfnmsubs.
frD,frA,frC,frB frA frCfrB
fnmsubs Floating Negative Multiply-Subtract Singlefnmsubs. Floating Negative Multiply-Subtract Single with
CR Update CR
表表表表 4-8 浮動小数点丸め変換命令浮動小数点丸め変換命令浮動小数点丸め変換命令浮動小数点丸め変換命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Floating Round to Single-Precision
frspfrsp.
frD,frB frB FPSCR[RN]frD
frsp Floating Round to Single-Precisionfrsp. Floating Round to Single-Precision with CR Update
CR
表表表表 4-7 浮動小数点積和演算命令(続き)浮動小数点積和演算命令(続き)浮動小数点積和演算命令(続き)浮動小数点積和演算命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-28 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.2.4 浮動小数点比較命令浮動小数点比較命令浮動小数点比較命令浮動小数点比較命令
2 FPR
+0=-0
CR 1
3 FPSCD[16-19] FPCC
CR FPCC 4-9
Floating Convert to Integer Word
fctiwfctiw.
frD,frB frB FPSCR[RN]32
frD 32 frD 0 31
fctiw Floating Convert to Integer Word
fctiw. Floating Convert to Integer Word with CR UpdateCR
Floating Convert to Integer Word with Round toward Zero
fctiwzfctiwz.
frD,frB frB Round toward Zero32
frD 32 frD 0 31
fctiwz Floating Convert to Integer Word with Round towardZero
fctiwz. Floating Convert to Integer Word with Round toward
Zero with CR Update CR
表表表表 4-9 CR のビット設定のビット設定のビット設定のビット設定
ビットビットビットビット 名前名前名前名前 説明説明説明説明
0 FL frA frB
1 FG frA frB
2 FE frA = frB
3 FU frA ? frB
表表表表 4-8 浮動小数点丸め変換命令(続き)浮動小数点丸め変換命令(続き)浮動小数点丸め変換命令(続き)浮動小数点丸め変換命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-29
4.2 UISA の命令
4-10
4.2.2.5 浮動小数点ステータス制御レジスタ命令浮動小数点ステータス制御レジスタ命令浮動小数点ステータス制御レジスタ命令浮動小数点ステータス制御レジスタ命令
FPSCR
FPSCR
FPSCR
FPSCR
• FPSCR
FPSCR
•
FPSCR
• FPSCR
FPSCR
FPSCR
4-11 FPSCR
表表表表 4-10 浮動小数点比較命令浮動小数点比較命令浮動小数点比較命令浮動小数点比較命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Floating Compare Unordered
fcmpu crfD,frA,frB frA frBcrfD FPCC
Floating Compare Ordered
fcmpo crfD,frA,frB frA frBcrfD FPCC
表表表表 4-11 浮動小数点ステータス制御レジスタ命令浮動小数点ステータス制御レジスタ命令浮動小数点ステータス制御レジスタ命令浮動小数点ステータス制御レジスタ命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Move from FPSCR
mffsmffs.
frD FPSCR frD 32 63 frD[0-31]mffs Move from FPSCR
mffs. Move from FPSCR with CR UpdateCR
Move to Condition Register from FPSCR
mcrfs crfD,crfS crfS FPSCRcrfD CR
FEX VXFPSCR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-30 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.2.6 浮動小数点移動命令浮動小数点移動命令浮動小数点移動命令浮動小数点移動命令
0 4-12 fneg fabs fnabs
fneg fabs fnabs
NaN FPSCR
CR CR1
CR CR1
CR1
Move to FPSCR Field Immediate
mtfsfimtfsfi.
crfD,IMM IMM FPSCR crfDFPSCR[FX] crfD=0
mtfsfi Move to FPSCR Field Immediate
mtfsfi. Move to FPSCR Field Immediate with CR Update CR
Move toFPSCR Fields
mtfsfmtfsf.
FM,frB frB 32 63 FMFPSCR4
i 0 7 FM[i]=1 FPSCRi FPSCR 4*i 4*i+3
frB 32
FPSCR[FX] FM[0]=1mtfsf Move to FPSCR Fields
mtfsf. Move to FPSCR Fields with CR UpdateCR
Move toFPSCR Bit 0
mtfsb0mtfsb0.
crbD crbD FPSCR
1 2 FEX VX
mtfsb0 Move to FPSCR Bit 0
mtfsb0. Move to FPSCR Bit 0 with CR UpdateCR
Move toFPSCR Bit 1
mtfsb1mtfsb1.
crbD crbD FPSCR
1 2 FEX VX
mtfsb1 Move to FPSCR Bit 1
mtfsb1. Move to FPSCR Bit 1 with CR UpdateCR
表表表表 4-11 浮動小数点ステータス制御レジスタ命令(続き)浮動小数点ステータス制御レジスタ命令(続き)浮動小数点ステータス制御レジスタ命令(続き)浮動小数点ステータス制御レジスタ命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-31
4.2 UISA の命令
4-12
4.2.3 ロード命令およびストア命令ロード命令およびストア命令ロード命令およびストア命令ロード命令およびストア命令
•
•
•
•
•
•
•
表表表表 4-12 浮動小数点移動命令浮動小数点移動命令浮動小数点移動命令浮動小数点移動命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Floating Move Register
fmrfmr.
frD,frB frB frDfmr Floating Move Register
fmr. Floating Move Register with CR UpdateCR
Floating Negate fnegfneg.
frD,frB frB 0 frDfneg Floating Negate
fneg. Floating Negate with CR UpdateCR
Floating Absolute Value
fabsfabs.
frD,frB frB 0 frDfabs Floating Absolute Value
fabs. Floating Absolute Value with CR UpdateCR
Floating Negative Absolute Value
fnabsfnabs.
frD,frB frB 0 frDfnabs Floating Negative Absolute Value
fnabs. Floating Negative Absolute Value with CR UpdateCR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-32 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.3.1 整数ロード/ストアのアドレス生成整数ロード/ストアのアドレス生成整数ロード/ストアのアドレス生成整数ロード/ストアのアドレス生成
☞ 4.1.2.2
☞ 6.4.6.1
4.2.3.1.1 整数ロード/ストアのイミディエイト・インデックス付きレジスタ間整数ロード/ストアのイミディエイト・インデックス付きレジスタ間整数ロード/ストアのイミディエイト・インデックス付きレジスタ間整数ロード/ストアのイミディエイト・インデックス付きレジスタ間接アドレッシング接アドレッシング接アドレッシング接アドレッシング
16
d
rA
rA r0
r0 d
rA 0 rA|0
4-1
図図図図 4-1 整数ロード/ストアのイミディエイト・インデックス付きレジスタ間接アドレッシング整数ロード/ストアのイミディエイト・インデックス付きレジスタ間接アドレッシング整数ロード/ストアのイミディエイト・インデックス付きレジスタ間接アドレッシング整数ロード/ストアのイミディエイト・インデックス付きレジスタ間接アドレッシング
No
0 47 48 63
符号拡張� d
0 63
GPR (rA)
0
0 63
GPR (rD/rS)ストア�ロード�
Yes
命令エンコーディング:�
0 65 1011 15 16 31
オペコード�rD/rS rA d
+0 63
実効アドレス�
rA=0?
メモリ�インタフェース�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-33
4.2 UISA の命令
4.2.3.1.2 整数ロード/ストアのインデックス付きレジスタ間接アドレッシング整数ロード/ストアのインデックス付きレジスタ間接アドレッシング整数ロード/ストアのインデックス付きレジスタ間接アドレッシング整数ロード/ストアのインデックス付きレジスタ間接アドレッシング
2
rA rB rA
rB
lswi stswi
rA 0 rA|0
4-2
図図図図 4-2 整数ロード/ストアのインデックス付きレジスタ間接アドレッシング整数ロード/ストアのインデックス付きレジスタ間接アドレッシング整数ロード/ストアのインデックス付きレジスタ間接アドレッシング整数ロード/ストアのインデックス付きレジスタ間接アドレッシング
4.2.3.1.3 整数ロード/ストアのレジスタ間接アドレッシング整数ロード/ストアのレジスタ間接アドレッシング整数ロード/ストアのレジスタ間接アドレッシング整数ロード/ストアのレジスタ間接アドレッシング
rA
GPR rA
rA 0
rA|0
4-3
No
0 63
GPR (rA)
0
+
0 63
GPR (rD/rS)メモリ�インタフェース�
ストア�ロード�
Yes
0 63
GPR (rB)
命令エンコーディング:�
rA=0?
0 63
実効アドレス�
0 5 6 10 11 15 16 20 21 30 31
オペコード�rD/rS rA rB サブオペコード�0Reserved
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-34 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
図図図図 4-3 整数ロード/ストアのレジスタ間接アドレッシング整数ロード/ストアのレジスタ間接アドレッシング整数ロード/ストアのレジスタ間接アドレッシング整数ロード/ストアのレジスタ間接アドレッシング
4.2.3.2 整数ロード命令整数ロード命令整数ロード命令整数ロード命令
EA
rD
rA
rA 0 rA rD
EA rA EA
rD
rA=0 rA=rD
☞ 3.1.2
No
ストア�ロード�
Yes0 63
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
命令エンコーディング:�
0 5 6 10 11 15 16 20 21 30 31
rA=0?
0 63
GPR (rA)
0 63
実効アドレス�
オペコード�rD/rS rA NB サブオペコード�0
0 63
GPR (rD/rS)メモリ�インタフェース�
Reserved
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-35
4.2 UISA の命令
lha lhax
lwa lwax lbzu lbzux lhzu lhzux lhau
lhaux lwaux ldu ldux
4-13
表表表表 4-13 整数ロード命令整数ロード命令整数ロード命令整数ロード命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Load Byte and Zero
lbz rD,d(rA) EA rA|0 + d EArD 8 rD
Load Byte and Zero Indexed
lbzx rD,rA,rB EA rA|0 + rB EArD 8 rD
Load Byte andZero with Update
lbzu rD,d(rA) EA rA + d EA rD8 rD
EA rA
Load Byte andZero with Update Indexed
lbzux rD,rA,rB EA rA + rB EArD 8 rD
EA rA
Load Half Word and Zero
lhz rD,d(rA) EA rA|0 + d EArD 16 rD
Load Half Word and Zero Indexed
lhzx rD,rA,rB EA rA|0 + rB EArD 16 rD
Load Half Word and Zerowith Update
lhzu rD,d(rA) EA rA + d EArD 16 rD
EA rA
Load Half Word and Zerowith Update Indexed
lhzux rD,rA,rB EA rA + rB EArD 16 rD
EA rA
Load Half Word Algebraic
lha rD,d(rA) EA rA|0 + d EArD 16 rD
4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-36 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-37
4.2.3.3 整数ストア命令整数ストア命令整数ストア命令整数ストア命令
rS EA
rA EA
• rA 0 EA rA
• rS rA rS
EA rA rS
Load Half Word Algebraic Indexed
lhax rD,rA,rB EA rA|0 + rB EArD 16 rD
EA rA
Load Half Word Algebraic with Update
lhau rD,d(rA) EA rA + d EArD 16 rD
EA rA
Load Half Word Algebraic with Update Indexed
lhaux rD,rA,rB EA rA + rB EArD 16 rD
EA rA
Load Word and Zero
lwz rD,d(rA) EA rA|0 + d EArD
Load Word andZero Indexed
lwzx rD,rA,rB EA rA|0 + rB EArD
Load Word andZero with Update
lwzu rD,d(rA) EA rA + d EA rDEA rA
Load Word andZero with Update Indexed
lwzux rD,rA,rB EA rA + rB EArD EA rA
表表表表 4-13 整数ロード命令(続き)整数ロード命令(続き)整数ロード命令(続き)整数ロード命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
4.2 UISA の命令
rA=0
CR
Rc 31=1
4-14
表表表表 4-14 整数ストア命令整数ストア命令整数ストア命令整数ストア命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Store Byte stb rS,d(rA) EA rA|0 + d rS 8 EA
Store Byte Indexed
stbx rS,rA,rB EA rA|0 + rB rS 8EA
Store Byte withUpdate
stbu rS,d(rA) EA rA + d rS 8 EAEA rA
Store Byte withUpdate Indexed
stbux rS,rA,rB EA rA + rB rS 8 EAEA rA
Store Half Word
sth rS,d(rA) EA rA|0 + d rS 16 EA
Store Half Word Indexed
sthx rS,rA,rB EA rA|0 + rB rS 16EA
Store Half Word with Update
sthu rS,d(rA) EA rA + d rS 16 EAEA
rA
Store Half Word with Update Indexed
sthux rS,rA,rB EA rA + rB rS 16EAEA rA
Store Word stw rS,d(rA) EA rA|0 + d rS EA
Store Word Indexed
stwx rS,rA,rB EA rA|0 + rB rS EA
Store Word with Update
stwu rS,d(rA) EA rA + d rS EAEA rA
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-38 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.3.4 バイト反転付き整数ロード/ストア命令バイト反転付き整数ロード/ストア命令バイト反転付き整数ロード/ストア命令バイト反転付き整数ロード/ストア命令
4-15
☞ 3.1.2
Store Word with Update Indexed
stwux rS,rA,rB EA rA + rB rS EAEA rA
表表表表 4-15 バイト反転付き整数ロード/ストア命令バイト反転付き整数ロード/ストア命令バイト反転付き整数ロード/ストア命令バイト反転付き整数ロード/ストア命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Load Half Word Byte-Reverse Indexed
lhbrx rD,rA,rB EA rA|0 + rB EA8 rD 8
EA 8rD 8 rD
Load Word Byte-ReverseIndexed
lwbrx rD,rA,rB EA rA|0 + rB EA 0 7 rD 8
EA 8 15 rD16 23 EA
16 23 rD 8 15EA 24 31 rD
0 7 rD
Store Half Word Byte-Reverse Indexed
sthbrx rS,rA,rB EA rA|0 + rB rS 8EA 8
rS 8 EA8
表表表表 4-14 整数ストア命令(続き)整数ストア命令(続き)整数ストア命令(続き)整数ストア命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-39
4.2 UISA の命令
4.2.3.5 整数ロード/ストア・マルチプル命令整数ロード/ストア・マルチプル命令整数ロード/ストア・マルチプル命令整数ロード/ストア・マルチプル命令
GPR
4K
2
DSI 4-16
EA rD rS GPR31
EA
lmw stmw
☞ 3.1.2
rA Load Multiple
Word lmw rA=0
Store Word Byte-Reverse Indexed
stwbrx rS,rA,rB EA rA|0 + rB rS 8EA 0 7
rS 8 EA8 15 rS
8 EA16 23 rS 8
EA 24 31
表表表表 4-16 整数ロード/ストア・マルチプル命令整数ロード/ストア・マルチプル命令整数ロード/ストア・マルチプル命令整数ロード/ストア・マルチプル命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Load Multiple Word
lmw rD,d(rA) EA rA|0 + d n = 32-rD
Store Multiple Wordstmw
rS,d(rA) EA rA|0 + d n = 32-rS
表表表表 4-15 バイト反転付き整数ロード/ストア命令(続き)バイト反転付き整数ロード/ストア命令(続き)バイト反転付き整数ロード/ストア命令(続き)バイト反転付き整数ロード/ストア命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-40 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.3.6 整数ロード/ストア・ストリング命令整数ロード/ストア・ストリング命令整数ロード/ストア・ストリング命令整数ロード/ストア・ストリング命令
4-17
rD rS = 5
12
☞ 3.1.2
☞ 6.4.6
0x00600
表表表表 4-17 整数ロード/ストア・ストリング命令整数ロード/ストア・ストリング命令整数ロード/ストア・ストリング命令整数ロード/ストア・ストリング命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Load String Word Immediate
lswi rD,rA,NB EA rA|0
Load String Word Indexed
lswx rD,rA,rB EA rA|0 + rB
Store String Word Immediate
stswi rS,rA,NB EA rA|0
Store String Word Indexed
stswx rS,rA,rB EA rA|0 + rB
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-41
4.2 UISA の命令
4.2.3.7 浮動小数点ロード/ストアのアドレスの生成浮動小数点ロード/ストアのアドレスの生成浮動小数点ロード/ストアのアドレスの生成浮動小数点ロード/ストアのアドレスの生成
4.2.3.7.1 浮動小数点ロード/ストアのイミディエイト・インデックス付きレジ浮動小数点ロード/ストアのイミディエイト・インデックス付きレジ浮動小数点ロード/ストアのイミディエイト・インデックス付きレジ浮動小数点ロード/ストアのイミディエイト・インデックス付きレジスタ間接アドレッシングスタ間接アドレッシングスタ間接アドレッシングスタ間接アドレッシング
16
d
32 rA
rA r0
r0 d
rA 0
rA|0
4-4
図図図図 4-4 浮動小数点ロード/ストアのイミディエイト・インデックス付きレジスタ間接アドレッシング浮動小数点ロード/ストアのイミディエイト・インデックス付きレジスタ間接アドレッシング浮動小数点ロード/ストアのイミディエイト・インデックス付きレジスタ間接アドレッシング浮動小数点ロード/ストアのイミディエイト・インデックス付きレジスタ間接アドレッシング
No
0 47 48 63
符号拡張� d
0
+
ストア�ロード�
Yes
命令エンコーディング:�
0 5 6 1011 15 16 31
オペコード� frD/frS rA d
0 63
実効アドレス�
rA=0
メモリ�アクセス�
0 63
FPR (frD/frS)
0 63
GPR (rA)
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-42 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.3.7.2 浮動小数点ロード/ストアのインデックス付きレジスタ間接アドレッシ浮動小数点ロード/ストアのインデックス付きレジスタ間接アドレッシ浮動小数点ロード/ストアのインデックス付きレジスタ間接アドレッシ浮動小数点ロード/ストアのインデックス付きレジスタ間接アドレッシングングングング
2
rA rB rA
rB
rA|0
4-5
図図図図 4-5 浮動小数点ロード/ストアのインデックス付きレジスタ間接アドレッシング浮動小数点ロード/ストアのインデックス付きレジスタ間接アドレッシング浮動小数点ロード/ストアのインデックス付きレジスタ間接アドレッシング浮動小数点ロード/ストアのインデックス付きレジスタ間接アドレッシング
rA=0
lfsu lfsux lfdu lfdux stfsu stfsux stfdu stfdux
CR
FPSCR[UE]
No
0 63
GPR (rA)
0
+
0 63
FPR (frD/frS)
Yes
0 63
GPR (rB)
0 63
0 5 6 1011 1516 20 21 30 31
rA = 0?
frD/frS rA rB サブオペコード�0Reserved
ストア�ロード�
命令エンコーディング:�オペコード�
実効アドレス�
メモリ�アクセス�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-43
4.2 UISA の命令
4.2.3.8 浮動小数点ロード命令浮動小数点ロード命令浮動小数点ロード命令浮動小数点ロード命令
2
FPR
FPR
☞ C.6 4-18
rA=0
表表表表 4-18 浮動小数点ロード命令浮動小数点ロード命令浮動小数点ロード命令浮動小数点ロード命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Load Floating-Point Single
lfs frD,d(rA) EA rA|0 + dEA
frD
Load Floating-Point Single Indexed
lfsx frD,rA,rB EA rA|0 + rBEA
frD
Load Floating-Point Single with Update
lfsu frD,d(rA) EA rA + dEA
frDEA rA
Load Floating-Point Single with Update Indexed
lfsux frD,rA,rB EA rA + rBEA
frDEA rA
Load Floating-Point Double
lfd frD,d(rA) EA rA|0 + dEA frD
Load Floating-Point Double Indexed
lfdx frD,rA,rB EA rA|0 + rBEA frD
Load Floating-Point Double with Update
lfdu frD,d(rA) EA rA|0 + dEA frDEA rA
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-44 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.3.9 浮動小数点ストア命令浮動小数点ストア命令浮動小数点ストア命令浮動小数点ストア命令
3 stfiwx
FPR
☞ C.7
rA=0
4-19
Load Floating-Point Double with Update Indexed
lfdux frD,rA,rB EA rA|0 + rBEA frDEA rA
表表表表 4-19 浮動小数点ストア命令浮動小数点ストア命令浮動小数点ストア命令浮動小数点ストア命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Store Floating- Point Single
stfs frS,d(rA) EA rA|0 + dfrS EA
Store Floating-Point Single Indexed
stfsx frS,rA,rB EA rA|0 + rBfrS EA
Store Floating-Point Single with Update
stfsu frS,d(rA) EA rA + dfrS EA
EA rA
Store Floating-Point Single with Update Indexed
stfsux frS,rA,rB EA rA + rBfrS EA
EA rA
Store Floating-Point Double
stfd frS,d(rA) EA rA|0 + dfrS EA
表表表表 4-18 浮動小数点ロード命令(続き)浮動小数点ロード命令(続き)浮動小数点ロード命令(続き)浮動小数点ロード命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-45
4.2 UISA の命令
4.2.4 分岐命令およびフロー制御命令分岐命令およびフロー制御命令分岐命令およびフロー制御命令分岐命令およびフロー制御命令
CR
CR
CR
y
4-20
CR
Store Floating-Point Double Indexed
stfdx frS,rA,rB EA rA|0 + rBfrS EA
Store Floating-Point Double with Update
stfdu frS,d(rA) EA rA + dfrS EA
EA rA
Store Floating-Point Double with Update Indexed
stfdux frS,rA,rB EA rA + rBfrS EA
EA rA
Store Floating-Point as IntegerWord Indexed
stfiwx frS,rA,rB EA rA|0 + rBfrS 32 EA
stfiwx
表表表表 4-19 浮動小数点ストア命令(続き)浮動小数点ストア命令(続き)浮動小数点ストア命令(続き)浮動小数点ストア命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-46 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.4.1 分岐命令のアドレス計算分岐命令のアドレス計算分岐命令のアドレス計算分岐命令のアドレス計算
2
EA
•
•
•
•
•
•
4.2.4.1.1 相対分岐アドレッシング・モード相対分岐アドレッシング・モード相対分岐アドレッシング・モード相対分岐アドレッシング・モード
0b00
LI
AA 30=0
LR
LK 31=1
LR
4-6
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-47
4.2 UISA の命令
図図図図 4-6 相対分岐アドレッシング相対分岐アドレッシング相対分岐アドレッシング相対分岐アドレッシング
4.2.4.1.2 条件付き相対分岐アドレッシング・モード条件付き相対分岐アドレッシング・モード条件付き相対分岐アドレッシング・モード条件付き相対分岐アドレッシング・モード
0b00
BD
AA 30=0
LK
31=1 LR
4-7
0 5 6 29 30 31
18 LI AA LK
0 63
分岐ターゲット・アドレス�
命令エンコーディング:�
+0 63
現在の命令アドレス�
0 37 38 61 62 63
LI 0 0符号拡張�
Reserved
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-48 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
図図図図 4-7 条件付き相対分岐アドレッシング条件付き相対分岐アドレッシング条件付き相対分岐アドレッシング条件付き相対分岐アドレッシング
4.2.4.1.3 絶対アドレスへの分岐アドレッシング・モード絶対アドレスへの分岐アドレッシング・モード絶対アドレスへの分岐アドレッシング・モード絶対アドレスへの分岐アドレッシング・モード
0b00
LI
AA
30=1
LK 31=1
LR
4-8
0 5 6 1011 1516 3029 31
16 BO BI BD AA LK
Yes
0 63
分岐ターゲット・アドレス�
命令エンコーディング:�
No
+0 63
現在の命令アドレス�
0 63
次の命令アドレス�
0 47 48 61 62 63
符号拡張� BD 0 0
条件一致�
Reserved
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-49
4.2 UISA の命令
図図図図 4-8 絶対分岐アドレッシング絶対分岐アドレッシング絶対分岐アドレッシング絶対分岐アドレッシング
4.2.4.1.4 絶対アドレスへの条件分岐アドレッシング・モード絶対アドレスへの条件分岐アドレッシング・モード絶対アドレスへの条件分岐アドレッシング・モード絶対アドレスへの条件分岐アドレッシング・モード
0b00 BD
AA 30=1
LK 31=1
LR
4-9
図図図図 4-9 絶対アドレスへの条件分岐アドレッシング絶対アドレスへの条件分岐アドレッシング絶対アドレスへの条件分岐アドレッシング絶対アドレスへの条件分岐アドレッシング
0 5 6 29 30 31
18 LI AA LK
0 37 38 61 62 63
0 61 62 63
分岐ターゲット・アドレス�
命令エンコーディング:�
LI 0 0符号拡張�
0 0
0 5 6 1011 1516 29 30 31
16 BO BI BD AA LK
0 47 48 61 62 63
0 61 62 63
分岐ターゲット・アドレス�
命令エンコーディング:�
No0 63
次の命令アドレス�
符号拡張� BD 0 0
0 0
条件一致�
Yes
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-50 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.4.1.5 リンク・レジスタへの条件分岐アドレッシング・モードリンク・レジスタへの条件分岐アドレッシング・モードリンク・レジスタへの条件分岐アドレッシング・モードリンク・レジスタへの条件分岐アドレッシング・モード
LR
2
LK 31=1
LR
4-10
図図図図 4-10 リンク・レジスタへの条件分岐アドレッシングリンク・レジスタへの条件分岐アドレッシングリンク・レジスタへの条件分岐アドレッシングリンク・レジスタへの条件分岐アドレッシング
4.2.4.1.6 カウント・レジスタへの条件分岐アドレッシング・モードカウント・レジスタへの条件分岐アドレッシング・モードカウント・レジスタへの条件分岐アドレッシング・モードカウント・レジスタへの条件分岐アドレッシング・モード
CTR 2
LK 31=1
LR
4-11
0 5 6 10 11 15 16 20 21 30 31
条件一致�
0 0
62 63
LR
0 61
0 63
分岐ターゲット・アドレス�
命令エンコーディング:�
No0 63
次の命令アドレス�
Yes
19 BO BI 0 0 0 0 0 16 LK
||
Reserved
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-51
4.2 UISA の命令
図図図図 4-11 カウント・レジスタへの条件分岐アドレッシングカウント・レジスタへの条件分岐アドレッシングカウント・レジスタへの条件分岐アドレッシングカウント・レジスタへの条件分岐アドレッシング
4.2.4.2 条件分岐の制御条件分岐の制御条件分岐の制御条件分岐の制御
BO BO
4
4-21 y
5
4-20 BO
表表表表 4-20 BO オペランドのエンコーディングオペランドのエンコーディングオペランドのエンコーディングオペランドのエンコーディング
BO 説 明説 明説 明説 明
0000y CTR CTR 0 FALSE
0001y CTR CTR = 0 FALSE
001zy FALSE
0100y CTR CTR 0 TRUE
0 0
62 63
CTR
0 61
0 63
分岐ターゲット・アドレス�
命令エンコーディング:�
条件一致?No
Yes
0 63
次の命令アドレス�
0 5 6 1011 15 16 20 21 30 31
19 BO BI 00000 528 LK
||
Reserved
4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-52 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
BO y
y
• bcx
•
bcx bclrx bcctrx
y 1
y 0 y=1
y=0
y 1
y
1
0
0101y CTR CTR = 0 TRUE
011zy TRUE
1z00y CTR CTR 0
1z01y CTR CTR = 0
1z1zz
zz
y
表表表表 4-20 BO オペランドのエンコーディング(続き)オペランドのエンコーディング(続き)オペランドのエンコーディング(続き)オペランドのエンコーディング(続き)
BO 説 明説 明説 明説 明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-53
4.2 UISA の命令
4
((BO[0] & BO[2] | S ≈ BO[4]
S 16
0 BO[4] y
BO 0
bclrx bcctrx 16
0
5 BI CR 32
LR
A B Glue
•
bcl 20,31,$+4
•
1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-54 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-55
• GOTO CASE
LK=0 bcctr
• A B B A
2
A B LK=1
B A
LK=0 bclr
•
A Glue Glue B B Glue
A
B
glue 3
A Glue
LK=1
Glue B B
KL=0
bcctr
B A
LK=0 bclr
4.2 UISA の命令
4.2.4.3 分岐命令分岐命令分岐命令分岐命令
4-21
表表表表 4-21 分岐命令分岐命令分岐命令分岐命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Branch bbablbla
target_addr b Branch
ba Branch Absolute
bl Branch then Link
LR
bla Branch Absolute then Link
LR
Branch Conditional
bcbcabclbcla
BO,BI,target_addr BI CRBO 4-20
bc Branch Conditional
bca Branch Conditional Absolute
bcl Branch Conditional then Link
LR
bcla Branch Conditional Absolute then Link
LR
Branch Conditional to Link Register
bclrbclrl
BO,BI BI CRBO 4-20
bclr Branch Conditional to Link Register LR
bclrl Branch Conditional to Link Register then Link
LR
LR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-56 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.4.4 分岐プロセッサ命令の簡略ニーモニック分岐プロセッサ命令の簡略ニーモニック分岐プロセッサ命令の簡略ニーモニック分岐プロセッサ命令の簡略ニーモニック
☞ E
4.2.4.5 コンディション・レジスタ論理命令コンディション・レジスタ論理命令コンディション・レジスタ論理命令コンディション・レジスタ論理命令
4-22 Move Condition
Register Field mcrf
LR
Branch Conditional to Count Register
bcctrbcctrl
BO,BI BI CRBO 4-20
bcctr Branch Conditional to Count Register
bcctrl Branch Conditional to Count Register then Link
LRCTR
BO[2]=0
表表表表 4-22 コンディション・レジスタ論理命令コンディション・レジスタ論理命令コンディション・レジスタ論理命令コンディション・レジスタ論理命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Condition Register AND
crand crbD,crbA,crbB crbA CR crbBCR AND
crbD CR
Condition Register OR
cror crbD,crbA,crbB crbA CR crbBCR OR
crbD CR
Condition Register XOR
crxor crbD,crbA,crbB crbA CR crbBCR XOR
crbD CR
表表表表 4-21 分岐命令(続き)分岐命令(続き)分岐命令(続き)分岐命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-57
4.2 UISA の命令
4.2.4.6 トラップ命令トラップ命令トラップ命令トラップ命令
4-23
☞ E
Condition Register NAND
crnand crbD,crbA,crbB crbA CR crbBCR AND
crbD CR
Condition Register NOR
crnor crbD,crbA,crbB crbA CR crbBCR OR
crbD CR
Condition Register Equivalent
creqv crbD,crbA, crbB crbA CR crbBCR XOR
crbD CR
Condition Register AND with Complement
crandc crbD,crbA, crbB crbA CR crbBCR AND
crbD CR
Condition Register OR with Complement
crorc crbD,crbA, crbB crbA CR crbBCR OR
crbD CR
Move Condition Register Field
mcrf crfD,crfS crfS crfD CR
表表表表 4-23 トラップ命令トラップ命令トラップ命令トラップ命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Trap Word Immediate
twi TO,rA,SIMM
rA SIMMTO 1
Trap Word tw TO,rA,rB rA rB TO1
表表表表 4-22 コンディション・レジスタ論理命令(続き)コンディション・レジスタ論理命令(続き)コンディション・レジスタ論理命令(続き)コンディション・レジスタ論理命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-58 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.4.7 システム結合命令─システム結合命令─システム結合命令─システム結合命令─ UISA
4-24
System Call sc sc ☞ 4.4.1
OEA
4.2.5 プロセッサ制御命令─プロセッサ制御命令─プロセッサ制御命令─プロセッサ制御命令─ UISA
CR
MSR SPR
mftb ☞ 4.3.1
VEA MSR SPR
☞ 4.4.2 OEA
4.2.5.1 コンディション・レジスタ間移動命令コンディション・レジスタ間移動命令コンディション・レジスタ間移動命令コンディション・レジスタ間移動命令
4-25
表表表表 4-24 システム結合命令システム結合命令システム結合命令システム結合命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
System Call sc
☞ 4.1.4.1
sc ☞ 4.4.1 OEA
表表表表 4-25 コンディション・レジスタ間移動命令コンディション・レジスタ間移動命令コンディション・レジスタ間移動命令コンディション・レジスタ間移動命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Move to Condition Register Field
mtcrf CRM,rS rS CRMCR4 i
0 7 CRM i =1 CRi CR 4*i 4*i+3 rS
Move to Condition Register from XER
mcrxr crfD XER[0-3] crfDCR
XER[0-3]
UV
O
U
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-59
4.2 UISA の命令
4.2.5.2 スペシャル・パーパス・レジスタ間移動命令(スペシャル・パーパス・レジスタ間移動命令(スペシャル・パーパス・レジスタ間移動命令(スペシャル・パーパス・レジスタ間移動命令(UISA))))
4-26 mtspr mfspr
☞ 8
4.2.6 メモリ同期化命令─メモリ同期化命令─メモリ同期化命令─メモリ同期化命令─ UISA
sync
sync
eieio
CR Rc
31=1 sync
Move from Condition Register
mfcr rD CR rD
表表表表 4-26 スペシャル・パーパス・レジスタ間ムーブ命令スペシャル・パーパス・レジスタ間ムーブ命令スペシャル・パーパス・レジスタ間ムーブ命令スペシャル・パーパス・レジスタ間ムーブ命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Move to Special Purpose Register
mtspr SPR,rS rS SPR
Move from Special Purpose Register
mfspr rD,SPR SPR rD
表表表表 4-25 コンディション・レジスタ間移動命令(続き)コンディション・レジスタ間移動命令(続き)コンディション・レジスタ間移動命令(続き)コンディション・レジスタ間移動命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-60 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
lwarx stwcx.
☞ D
lwarx stwcx.
stwcx.
lwarx stwcx.
lwarx
CR
CR
lwarx stwcx.
lwarx stwcx. EA
lwarx stwcx.
1
lwarx
lwarx
UV
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-61
4.2 UISA の命令
4 5
• lwarx
• lwarx
stwcx.
• dcbz
• dcbtst dcbst dcbf
dcbi
• dcba
•
4-27 UISA
eieio isync ☞ 4.3.2
VEA
表表表表 4-27 メモリ同期化命令─メモリ同期化命令─メモリ同期化命令─メモリ同期化命令─ UISA
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Load Word andReserve Indexed
lwarx rD,rA,rB EA rA|0 + rB EArD
U
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-62 Freescale Semiconductor
4.2 UISA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.2.7 推奨する簡略ニーモニック推奨する簡略ニーモニック推奨する簡略ニーモニック推奨する簡略ニーモニック
☞ E.9
☞ E
Store Word Conditional Indexed
stwcx. rS,rA,rB EA rA|0 + fBstwcx. EA
rS EA
stwcx. EA
rS EA
Synchronize sync sync syncsync
sync sync
☞ 8
表表表表 4-27 メモリ同期化命令─メモリ同期化命令─メモリ同期化命令─メモリ同期化命令─ UISA(続き)(続き)(続き)(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-63
4.3 VEA の命令
4.3 VEA の命令の命令の命令の命令
VEA
VEA UISA
OEA
VEA
4.3.1 プロセッサ制御命令─プロセッサ制御命令─プロセッサ制御命令─プロセッサ制御命令─ VEA
VEA mftb
☞ 5
4-28
mftb
mftb ☞ E.8
TBR
Move from Time Base mftb Move from Time
Base Upper mftbu mfspr mftb mftb
2 mftb 1
mftb
32 1 64
mftb
TBL GPR mftbu
TBU GPR
表表表表 4-28 Move from Time Base 命令命令命令命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Move from Time Base
mftb rD, TBR TRB 4-29 4-30
rD
UV
O
V
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-64 Freescale Semiconductor
4.3 VEA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4-29 mftb
TBL TBU VEA
4-30 mtspr
TBL TBU
4.3.2 メモリ同期化命令─メモリ同期化命令─メモリ同期化命令─メモリ同期化命令─ VEA
☞ 5
2 sync
2
VEA sync UISA Enforce In-Order Execution
of I/O eieio Instruction Synchronize isync
4-31 eieio
表表表表 4-29 ユーザ・レベルのユーザ・レベルのユーザ・レベルのユーザ・レベルの TBR エンコーディング(エンコーディング(エンコーディング(エンコーディング(VEA))))
TBR フィールドのフィールドのフィールドのフィールドの
10 進値進値進値進値tbr[0-4] tbr[5-9] レジスタ名レジスタ名レジスタ名レジスタ名 説明説明説明説明
268 01100 01000 TBL
269 01101 01000 TBU
表表表表 4-30 スーパバイザ・レベルのスーパバイザ・レベルのスーパバイザ・レベルのスーパバイザ・レベルの TBR エンコーディングエンコーディングエンコーディングエンコーディング
SPR フィールドのフィールドのフィールドのフィールドの
10 進値進値進値進値
spr[0-4] spr[5-9] レジスタ名レジスタ名レジスタ名レジスタ名 説明説明説明説明
284 11100 01000 TBL1
1 mftb 命令によるタイム・ベース(TBL および TBU)からの移動も可能です。
285 11101 01000 TBU1
U
V
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-65
4.3 VEA の命令
isync
isync
4.3.3 メモリ制御命令─メモリ制御命令─メモリ制御命令─メモリ制御命令─ VEA
•
•
•
•
VEA
☞ 4.4.3
OEA
4.3.3.1 ユーザ・レベルのキャッシュ命令─ユーザ・レベルのキャッシュ命令─ユーザ・レベルのキャッシュ命令─ユーザ・レベルのキャッシュ命令─ VEA
☞ 5
表表表表 4-31 メモリ同期化命令─メモリ同期化命令─メモリ同期化命令─メモリ同期化命令─ VEA
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Enforce In-Order Execution of I/O
eieio eieio
Instruction Synchronize
isync isync isync
isync
isync
O
V
V
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-66 Freescale Semiconductor
4.3 VEA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
sync
MSR[DR]=0 Data Cache Block
Clear to Zero dcbz Data Cache Block Allocate dcba
Data Cache Block Store dcbst
SR[T]=1
4-32 VEA
表表表表 4-32 ユーザ・レベルのキャッシュ命令ユーザ・レベルのキャッシュ命令ユーザ・レベルのキャッシュ命令ユーザ・レベルのキャッシュ命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Data Cache Block Touch
dcbt rA,rB EA rA|0 + rBEA
Data Cache Block Touch for Store
dcbtst rA,rB EA rA|0 + rBEA
O
V
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-67
4.3 VEA の命令
4
Data Cache Block Allocate
dcba rA,rB EA rA|0 + rBEA
EA
I=0
EAWIM=x1x
EAWIM=xx1
dcbaeieio
OEA dcba
表表表表 4-32 ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-68 Freescale Semiconductor
4.3 VEA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
Data Cache Block Clear to Zero
dcbz rA,rB EA rA|0 + rBEA
EA
I=0
EAWIM=x1x WIM=1xx
EAWIM=xx1
dcbzeieio
Data Cache Block Store
dcbst rA,rB EA rA|0 + rBEA
WIM=xx1 EA
EAWIM=xx0
EA
EA
dcbst
表表表表 4-32 ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-69
4.3 VEA の命令
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-70 Freescale Semiconductor
Data Cache Block Flush
dcbf rA,rB EA rA|0 + rB
WIM=xx1
WIM=xx0
EA
dcbf
表表表表 4-32 ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
4.3 VEA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.3.4 外部制御命令外部制御命令外部制御命令外部制御命令4-33 2
Instruction Cache Block Invalidate
icbi rA,rB EA rA|0 + rBEA
WIM=xx0EA
EA
icbi
表表表表 4-33 外部制御命令外部制御命令外部制御命令外部制御命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
External Control In Word Indexed
eciwx rD,rA,rB EA rA|0 + rBEAEAR[RID] 26 31
rD EA
eieio
表表表表 4-32 ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-71
4.3 VEA の命令
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-72 Freescale Semiconductor
External Control Out Word Indexed
ecowx rS,rA,rB EA rA|0 + rBEA rS
EAR[RID] 26 31
EA
eieio
ecowx
表表表表 4-33 外部制御命令(続き)外部制御命令(続き)外部制御命令(続き)外部制御命令(続き)
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
4.4 OEA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.4 OEA の命令の命令の命令の命令
OEA
OEA
UISA VEA OEA
4.4.1 システム結合命令─システム結合命令─システム結合命令─システム結合命令─ OEA
4-34 sc
rfi
表表表表 4-34 システム結合命令─システム結合命令─システム結合命令─システム結合命令─ OEA
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
System Call sc sc EA SRR0SRR1 1 4 10 15MSR 16 23 25 27 30 31
SRR1MSR SRR1
MSR ☞ 6.4
MSR[IP]0xC00
Return from Interrupt
rfi SRR1 16 23 25 27 30 31 MSR
MSR SRR1MSR
MSRSRR0[0-29]||0b00
MSR 1
SRR0 0
32
UV
O
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-73
4.4 OEA の命令
4.4.2 プロセッサ制御命令─プロセッサ制御命令─プロセッサ制御命令─プロセッサ制御命令─ OEA
MSR SPR
4.4.2.1 マシン・ステート・レジスタ間ムーブ命令マシン・ステート・レジスタ間ムーブ命令マシン・ステート・レジスタ間ムーブ命令マシン・ステート・レジスタ間ムーブ命令
4-35 MSR
表表表表 4-35 マシン・ステート・レジスタ間ムーブ命令マシン・ステート・レジスタ間ムーブ命令マシン・ステート・レジスタ間ムーブ命令マシン・ステート・レジスタ間ムーブ命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Move to Machine State Register
mtmsr rS rS MSRPOW LE
☞ 2.3.17
Move from Machine State Register
mfmsr rD MSR rD
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-74 Freescale Semiconductor
4.4 OEA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
4.4.2.2 スペシャル・パーパス・レジスタ間ムーブ命令(スペシャル・パーパス・レジスタ間ムーブ命令(スペシャル・パーパス・レジスタ間ムーブ命令(スペシャル・パーパス・レジスタ間ムーブ命令(OEA))))
mtspr mfspr 4-36
☞ 8 mtspr
mfspr ☞ E
SPR
☞ D
mtspr mfspr SPR
10
2
5 5
16 20 5 11 15
SPR
☞ 8
SPR SPR
表表表表 4-36 スペシャル・パーパス・レジスタ間ムーブ命令スペシャル・パーパス・レジスタ間ムーブ命令スペシャル・パーパス・レジスタ間ムーブ命令スペシャル・パーパス・レジスタ間ムーブ命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Move to Special-Purpose Register
mtspr SPR,rS SPRrS SPR 32SPR rS SPR
SPR TBL TBU 32
Move from Special-Purpose Register
mfspr rD,SPR SPRSPR rD
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-75
4.4 OEA の命令
4.4.3 メモリ制御命令─メモリ制御命令─メモリ制御命令─メモリ制御命令─ OEA
•
•
•
OEA
☞ 4.3.3
VEA
4.4.3.1 スーパバイザ・レベルのキャッシュ管理命令スーパバイザ・レベルのキャッシュ管理命令スーパバイザ・レベルのキャッシュ管理命令スーパバイザ・レベルのキャッシュ管理命令
4-37
☞ 4.4.3.1
4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-76 Freescale Semiconductor
4.4 OEA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-77
SR[T]=1
表表表表 4-37 スーパバイザ・レベルのキャッシュ管理命令スーパバイザ・レベルのキャッシュ管理命令スーパバイザ・レベルのキャッシュ管理命令スーパバイザ・レベルのキャッシュ管理命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Data Cache Block Invalidate
dcbi rA,rB EA rA|0 + rB
EA
WIM=xx1
WIM=xx0
MSR[DT]=1
EAWIM
dcbf
4.4 OEA の命令
4.4.3.2 セグメント・レジスタ操作命令セグメント・レジスタ操作命令セグメント・レジスタ操作命令セグメント・レジスタ操作命令
4-38 32
MSR[IR] MSR[DR]
☞ 2.3.17
4.4.3.3 変換ルックアサイド・バッファ管理命令変換ルックアサイド・バッファ管理命令変換ルックアサイド・バッファ管理命令変換ルックアサイド・バッファ管理命令
PTE
PTE
1
TLB
TLB TLB
TLB TLB
TLB
表表表表 4-38 セグメント・レジスタ操作命令セグメント・レジスタ操作命令セグメント・レジスタ操作命令セグメント・レジスタ操作命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
Move to Segment Register
mtsr SR,rS rS SR
Move to Segment Register Indirect
mtsrin rS,rB rS rB 0 3
Move from Segment Register
mfsr rD,SR SRrD
Move from Segment Register Indirect
mfsrin rD,rB rB 0 3rD
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
4-78 Freescale Semiconductor
4.4 OEA の命令
第4章
アドレッシング・モ
ドと命令セット・サマリ
ー
TLB tlbie tlbia tlbsync
TLB ☞ 7
4-39 TLB
表表表表 4-39 変換ルックアサイド・バッファ管理命令変換ルックアサイド・バッファ管理命令変換ルックアサイド・バッファ管理命令変換ルックアサイド・バッファ管理命令
名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション
TLB Invalidate Entry
tlbie rB EA rB TLB EATLB TLB
MSR[IR,DR] EA
TLB
eieio
TLB InvalidateAll
tlbia TLB MSR[IR,DR]TLB
TLB Synchronize
tlbsync tlbsynctlbie
eieio
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 4-79
4.4 OEA の命令
4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-80 Freescale Semiconductor
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
第第第第 5 章章章章 キャッシュ・モデルおよびメモリ・コキャッシュ・モデルおよびメモリ・コキャッシュ・モデルおよびメモリ・コキャッシュ・モデルおよびメモリ・コヒーレンシヒーレンシヒーレンシヒーレンシ
VEA
OEA
UV
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-1
5.1 概要
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
5-2 Freescale Semiconductor
5.1 概要概要概要概要
PowerPC
VEA
BAT
5.2 仮想環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
5.2 仮想環境仮想環境仮想環境仮想環境
UISA 232
VEA
VEA
1
VEA
VEA
OEA OEA
☞ 7
5.2.1 メモリ・アクセス順序メモリ・アクセス順序メモリ・アクセス順序メモリ・アクセス順序
VEA
I/O
V
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-3
5.2 仮想環境
☞ 5.2.4 ☞ 5.3.1
eieio sync
2
eieio sync ☞ 8
5.2.1.1 I/O 命令の順次実行の強制命令の順次実行の強制命令の順次実行の強制命令の順次実行の強制
eieio eieio
dcbz dcba
2 dcbz dcba
eieio
☞ 8
eieio I/O
eieio
sync
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
5-4 Freescale Semiconductor
5.2 仮想環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
5.2.1.2 同期化命令同期化命令同期化命令同期化命令
sync
sync
sync ☞ 8
5.2.2 アトミック性アトミック性アトミック性アトミック性
•
•
•
•
• lmw stmw lswi lswx stswi stswx
• 32
•
lwarx stwcx.
lwarx 2
1. stwcx.
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-5
5.2 仮想環境
2. lwarx
stwcx. lwarx
lwarx stwcx.
lwarx stwcx.
DSI
lwarx stwcx. ☞ 4.3.2
VEA ☞ 8
5.2.3 キャッシュ・モデルキャッシュ・モデルキャッシュ・モデルキャッシュ・モデル
PowerPC
dcbz
icbi
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
5-6 Freescale Semiconductor
5.2 仮想環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
5.2.4 メモリ・コヒーレンシメモリ・コヒーレンシメモリ・コヒーレンシメモリ・コヒーレンシ
1
VEA OEA
sync eieio lwarx stwcx.
VEA
OEA 4K
VEA
5.2.4.1 メモリ/キャッシュ・アクセス・モードメモリ/キャッシュ・アクセス・モードメモリ/キャッシュ・アクセス・モードメモリ/キャッシュ・アクセス・モード
OEA
☞
5.3.1 VEA
•
•
•
•
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-7
5.2 仮想環境
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
5-8 Freescale Semiconductor
5.2.4.1.1 ライトスルー指定のページライトスルー指定のページライトスルー指定のページライトスルー指定のページ
dcbst
dcbf
5.2.4.1.2 キャッシュ禁止指定のページキャッシュ禁止指定のページキャッシュ禁止指定のページキャッシュ禁止指定のページ
5.2 仮想環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
5.2.4.1.3 メモリ・コヒーレンシ強制指定のページメモリ・コヒーレンシ強制指定のページメモリ・コヒーレンシ強制指定のページメモリ・コヒーレンシ強制指定のページ
1 1
dcbst
1
sync
5.2.4.1.4 メモリ・コヒーレンシ非強制指定のページメモリ・コヒーレンシ非強制指定のページメモリ・コヒーレンシ非強制指定のページメモリ・コヒーレンシ非強制指定のページ
dcbst dcbf
5.2.4.1.5 保護指定のページ保護指定のページ保護指定のページ保護指定のページ
☞ 5.3.1.5.4
☞ 5.3.1.5.1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-9
5.2 仮想環境
5.2.4.2 コヒーレンシの留意点コヒーレンシの留意点コヒーレンシの留意点コヒーレンシの留意点
5.2.5 VEA のキャッシュ管理命令のキャッシュ管理命令のキャッシュ管理命令のキャッシュ管理命令
VEA
SR[T]=1 EA
VEA
☞ 4
☞ 8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
5-10 Freescale Semiconductor
5.2 仮想環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
5.2.5.1 データ・キャッシュ命令データ・キャッシュ命令データ・キャッシュ命令データ・キャッシュ命令
I/O
2
5.2.5.1.1 データ・キャッシュ・ブロック・タッチ(データ・キャッシュ・ブロック・タッチ(データ・キャッシュ・ブロック・タッチ(データ・キャッシュ・ブロック・タッチ(dcbt)命令およびデータ・)命令およびデータ・)命令およびデータ・)命令およびデータ・キャッシュ・ブロック・タッチ・ストア(キャッシュ・ブロック・タッチ・ストア(キャッシュ・ブロック・タッチ・ストア(キャッシュ・ブロック・タッチ・ストア(dcbtst)命令)命令)命令)命令
2
dcbt
dcbtst dcbt dcbtst
EA
R C ☞ 7.6.3
dcbt dcbtst
2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-11
5.2 仮想環境
5.2.5.1.2 データ・キャッシュ・ブロック・ゼロ・セット(データ・キャッシュ・ブロック・ゼロ・セット(データ・キャッシュ・ブロック・ゼロ・セット(データ・キャッシュ・ブロック・ゼロ・セット(dcbz)命令)命令)命令)命令
dcbz
•
•
•
•
dcbz eieio
dcbz
☞ 6
5.2.5.1.3 データ・キャッシュ・ブロック・ストア(データ・キャッシュ・ブロック・ストア(データ・キャッシュ・ブロック・ストア(データ・キャッシュ・ブロック・ストア(dcbst)命令)命令)命令)命令
dcbst
dcbst
•
• dcbst
5
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-12 Freescale Semiconductor
5.2 仮想環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
dcbst
5.2.5.1.4 データ・キャッシュ・ブロック・フラッシュ(データ・キャッシュ・ブロック・フラッシュ(データ・キャッシュ・ブロック・フラッシュ(データ・キャッシュ・ブロック・フラッシュ(dcbf)命令)命令)命令)命令
•
dcbf
dcbf
•
dcbf
dcbf
dcbf
5.2.5.2 命令キャッシュ命令命令キャッシュ命令命令キャッシュ命令命令キャッシュ命令
I/O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-13
5.2 仮想環境
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
5-14 Freescale Semiconductor
1. dcbst
2. sync
3. icbi
4. isync
icbi
dcbst dcbf
5.2.5.2.1 命令キャッシュ・ブロック無効化(命令キャッシュ・ブロック無効化(命令キャッシュ・ブロック無効化(命令キャッシュ・ブロック無効化(icbi)命令)命令)命令)命令
icbi
•
•
icbi
icbi
5.2 仮想環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
icbi
☞ 7
DSI
icbi
icbi
5.2.5.2.2 命令同期(命令同期(命令同期(命令同期(isync)命令)命令)命令)命令
isync
isync isync
isync isync
isync
isync
isync
5.2.6 共有メモリ共有メモリ共有メモリ共有メモリ
1
1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-15
5.2 仮想環境
sync eieio
☞ 5.2.6.2
5.2.6.1 メモリ・アクセスの順序メモリ・アクセスの順序メモリ・アクセスの順序メモリ・アクセスの順序
I/O
• 2
•
AND
• P1 sync eieio
G1 G2 2
G1
G2
5-1 2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
5-16 Freescale Semiconductor
5.2 仮想環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
図図図図 5-1 コヒーレンシ強制(コヒーレンシ強制(コヒーレンシ強制(コヒーレンシ強制(M=1)でのメモリ・バリア)でのメモリ・バリア)でのメモリ・バリア)でのメモリ・バリア
G1
G2
P1
•
P1 G1
•
G2
G2
5-2 2
プロセッサ 1 (P1) メモリ・アクセス・グループ G1 および G2 プロセッサ 2 (P2)
Instruction 1
Instruction 2
Instruction 3
Instruction 4
Instruction 5 (sync or eieio)-メモリ・バリア�
Instruction 6
Instruction 7
Instruction 8
Instruction 9
Instruction 10
G1: メモリ・バリアの前にP1によって生成されたメモリ・アクセス・グループ�
P1によって生成されたメモリ・バリアは、他のP2の命令や関連するアクセスについては、順序を指定しません。�
メモリ・コヒーレンシが要求される場合、P2に影響をおよぼすG1のメモリ・アクセスもメモリ・バリア以前に実行されます。�
メモリ・コヒーレンシが要求される場合、P2に影響をおよぼすG2のメモリ・アクセスもメモリ・バリア以前に実行されます。�
G2: メモリ・バリアの後にP1によって生成されたメモリ・アクセス・グループ�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-17
5.2 仮想環境
図図図図 5-2 蓄積的メモリ・バリア蓄積的メモリ・バリア蓄積的メモリ・バリア蓄積的メモリ・バリア
sync sync
eieio
☞ 8 eieio
5.2.6.1.1 プログラミングの考慮事項プログラミングの考慮事項プログラミングの考慮事項プログラミングの考慮事項
OEA
プロセッサ 1 (P1) メモリ・アクセス・グループ G1 および G2 プロセッサ 2 (P2)
P1 Instruction 1
P2 Instruction L
P1 Instruction 2 P2 Instruction M
P1 Instruction 3 P2 Instruction N
P1 Instruction 4 P2 Instruction O
P2 Instruction P
P2 Instruction Q
P2 Instruction R
P1 Instruction 6 P2 Instruction S
P1 Instruction 7 P2 Instruction T
P1 Instruction 8 P2 Instruction U
P1 Instruction 9 P2 Instruction V
P1 Instruction 10 P2 Instruction W
P1 Instruction 10 P2 Instruction X
G1: P1とP2によって生成された、P1に影響をおよぼすメモリ・アクセス・グループ。P2の命令L-Oの実行によって生成されたメモリ・アクセスを含む(ただし命令Oによって生成されたメモリ・アクセスはP1のsync命令が実行される前に発生すると仮定する)。�
G2: P1とP2によって生成されたメモリ・アクセス。�P2の命令P-Xによって生成され、P2によって実行されたロード命令がG2にあるストア命令によってストアされた値を返した後に実行されるメモリ・アクセスを含む(ただし命令Pによって生成されたメモリ・アクセスはP1のsync命令が実行された後に発生すると仮定する)。�syncメモリ・バリアはsync以降の命令フェッチに関連するアクセスに影響しない。�
P1 Instruction 5 (sync)�蓄積的メモリ・バリアはsync以降の命令フェッチに関連するアクセスを除き、すべてのアクセスに適用される。�
5
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-18 Freescale Semiconductor
5.2 仮想環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-19
isync isync
isync isync
CRn[EQ]
•
2
•
CR0
stw bc
stwcx.
bc
stw
stwcx.
CR0
stwcx. stw
•
5.2 仮想環境
GPR CR LR
2
sync eieio
☞ D
5.2.6.1.2 プログラム例プログラム例プログラム例プログラム例
1 2
X Y Z 0
1
• A 1 X
• B X 1 sync
2 Y
• C Y 2 sync
X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
5-20 Freescale Semiconductor
5.2 仮想環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
2
• A 1 X sync
2 Y
• B 2 Y
3 Z
• C Z 3 sync
X
C X
1
5.2.6.2 ロックの取得およびインポート・バリアロックの取得およびインポート・バリアロックの取得およびインポート・バリアロックの取得およびインポート・バリア
sync
5.2.6.2.1 ロックおよびインポート共有メモリの取得ロックおよびインポート共有メモリの取得ロックおよびインポート共有メモリの取得ロックおよびインポート共有メモリの取得
lwarx stwcx. lwarx stwcx.
isync
Compare Swap ☞ D.2
GPR3
GPR4 GPR5 GPR6
GPR9
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-21
5.2 仮想環境
2 bne- stwcx. CR0 stwcx.
CR0 stwcx.
2 bne- isync
data1
5.2.6.2.2 ポインタおよびインポート共有メモリの取得ポインタおよびインポート共有メモリの取得ポインタおよびインポート共有メモリの取得ポインタおよびインポート共有メモリの取得
lwarx stwcx.
Fetch
Add ☞ D.2
GPR3 GPR4
GPR5
data1 lwarx GPR5
stwcx.
stwcx. data1
stwcx. data1
stwcx.
lwarx
loop: lwarx r6,0,r3 # load lock and reserve
cmpw r4,r6 # skip ahead if
bne- wait # lock not free
stwcx. r5,0,r3 # try to set lock
bne- loop # loop if lost reservation
isync # import barrier
lwz r7,data1(r9) # load shared data
.
.
wait: ... #wait for lock to free
loop: lwarx r5,0,r3 # load pointer and reserve
add r0,r4,r5 # increment the pointer
stwcx. r0,0,r3 # try to store new value
bne- loop # loop if lost reservation
lwz r7,data1(r5) # load shared data
5
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-22 Freescale Semiconductor
5.2 仮想環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-23
bne- lwz isync
lwarx isync
5.3 動作環境
5.3 動作環境動作環境動作環境動作環境
OEA ☞ 5.2.4.1
dcbi
OEA
☞ 5.3.1.5.1
OEA
☞ 7
PowerPC
•
•
I/O
•
•
PowerPC
PowerPC
dcbst dcbf icbi isync sync eieio lwarx stwcx.
O
5
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-24 Freescale Semiconductor
5.3 動作環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
5.3.1 メモリ/キャッシュ・アクセス属性メモリ/キャッシュ・アクセス属性メモリ/キャッシュ・アクセス属性メモリ/キャッシュ・アクセス属性
4
• W
• I
• M
• G
PTE
BAT W I
M
G
WIMG
BAT 4
PTE 4 WIMG
• mtspr
BAT WIMG
IBAT W G
IBAT
•
WIMG PTE
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-25
5.3 動作環境
5
5
MSR[DR]=0
WIMG 0b0011
MSR[IR]=0
WIMG 0b0001
.3.1.1 ライトスルー属性(ライトスルー属性(ライトスルー属性(ライトスルー属性(W))))
W=1
• RAM RAM RAM
• I/O I/O
1
sync eieio
W=0
W=0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-26 Freescale Semiconductor
5.3 動作環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
W 2
2
5.3.1.2 キャッシュ禁止属性(キャッシュ禁止属性(キャッシュ禁止属性(キャッシュ禁止属性(I))))
I=1
sync
eieio
I 2
dcbz
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-27
5.3 動作環境
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
5-28 Freescale Semiconductor
5.3.1.3 メモリ・コヒーレンシ属性(メモリ・コヒーレンシ属性(メモリ・コヒーレンシ属性(メモリ・コヒーレンシ属性(M))))
M=0
M=1
M
M
M 2
M=0 M=1
M=1
dcbf M=0
5.3 動作環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
5.3.1.4 W ビット、ビット、ビット、ビット、I ビット、およびビット、およびビット、およびビット、および M ビットの組合せビットの組合せビットの組合せビットの組合せ
5-1 OEA 6 WIM
WIM=11x WIM G
0 1
表表表表 5-1 W、、、、I、および、および、および、および M ビットの組合せビットの組合せビットの組合せビットの組合せ
WIM のののの
設定設定設定設定意 味意 味意 味意 味
000
001
010
011
100
101
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-29
5.3 動作環境
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
5-30 Freescale Semiconductor
5.3.1.5 保護属性(保護属性(保護属性(保護属性(G))))
5.3.1.5.1 投機的および順不同メモリ・アクセスの定義投機的および順不同メモリ・アクセスの定義投機的および順不同メモリ・アクセスの定義投機的および順不同メモリ・アクセスの定義
•
•
5.3.1.5.2 投機的オペレーションの実行投機的オペレーションの実行投機的オペレーションの実行投機的オペレーションの実行
rfi
5.3 動作環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
•
• ☞
5.3.1.5.4
• ☞ 7.6.3
•
5.3.1.5.3 保護メモリ保護メモリ保護メモリ保護メモリ
• PTE DBAT G 1
•
MSR[IR]=0
MSR[DR]=0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-31
5.3 動作環境
5
5
I/O
I/O
.3.1.5.4 保護メモリへの投機的アクセス保護メモリへの投機的アクセス保護メモリへの投機的アクセス保護メモリへの投機的アクセス
•
•
MSR[IR]=0
MSR[IR]=1
MSR[IR]=1
ISI
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-32 Freescale Semiconductor
5.3 動作環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-33
MSR[IR]=1
ISI
MSR[IR]=0
5.3.2 I/O インタフェースの考慮事項インタフェースの考慮事項インタフェースの考慮事項インタフェースの考慮事項
PowerPC I/O 2
• I/O SR[T]=0
I/O
WIMG eieio sync
I/O
• SR[T]=1
5.3 動作環境
5.3.3 OEA のキャッシュ管理命令─データ・キャッシュ・ブロック無効化のキャッシュ管理命令─データ・キャッシュ・ブロック無効化のキャッシュ管理命令─データ・キャッシュ・ブロック無効化のキャッシュ管理命令─データ・キャッシュ・ブロック無効化((((dcbi))))
☞ 5.2.5 VEA VEA
OEA
dcbi
dcbi
☞ 4
☞ 8
SR[T]=1 EA
dcbi
•
dcbi
•
dcbi
dcbi
5
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-34 Freescale Semiconductor
5.3 動作環境
第5章
キャッシュ・モデルおよびメモリ・コヒ
レンシ
ー
dcbi
2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 5-35
5.3 動作環境
5
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-36 Freescale Semiconductor
第6章
例外
第第第第 6 章章章章 例外例外例外例外PowerPC OEA PowerPC
UISA
OEA
PowerPC
1
DSISR FPSCR
PowerPC
1
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-2 Freescale Semiconductor
SRR0 SRR1
6.1 例外クラス
第6章
例外
6.1 例外クラス例外クラス例外クラス例外クラス
PowerPC
6-1 PowerPC
6-2
MSR[IP]
☞ 7.3.1.1
表表表表 6-1 PowerPC アーキテクチャの例外アーキテクチャの例外アーキテクチャの例外アーキテクチャの例外
種 類種 類種 類種 類 例 外例 外例 外例 外
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-3
6.1 例外クラス
表表表表 6-2 例外および条件─概要例外および条件─概要例外および条件─概要例外および条件─概要
例外の種類例外の種類例外の種類例外の種類ベクタ・オフベクタ・オフベクタ・オフベクタ・オフ
セット(セット(セット(セット(16 進)進)進)進)例外を引き起こす条件例外を引き起こす条件例外を引き起こす条件例外を引き起こす条件
00100
SRR0SRR1
MSR SRR1RI
00200
MSR[ME]=0ME
SRR0 SRR1
MSR SRR1RI
DSI 00300 ☞ 6.4.3 DSI 0x00300
ISI 00400 ☞ 6.4.4 ISI 0x00400
00500
MSR[EE]=1
00600 ☞ 6.4.6 0x00600
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-4 Freescale Semiconductor
6.1 例外クラス
第6章
例外
00700 SRR11
MSR[FE0-FE1] 00 FPSCR[FEX]FE0 FE1 6-3FPSCR[FEX]
FPSCRMove to FPSCR
☞ 3.3.6
☞ 4 ☞
6.4.7 0x00700
MSR MSR[PR]spr[0]=1 MSR[PR]=1
SPR mtspr mfspr
☞ 6.4.7 0x00700
00800 MSR[FP]=0
00900 MSR[EE]=10 1
00A00
00B00
00C00 System Call sc
00D00 MSR[SE]=1MSR[BE]=1☞ 6.4.11 0x00D00
表表表表 6-2 例外および条件─概要(続き)例外および条件─概要(続き)例外および条件─概要(続き)例外および条件─概要(続き)
例外の種類例外の種類例外の種類例外の種類ベクタ・オフベクタ・オフベクタ・オフベクタ・オフ
セット(セット(セット(セット(16 進)進)進)進)例外を引き起こす条件例外を引き起こす条件例外を引き起こす条件例外を引き起こす条件
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-5
6.1 例外クラス
6
6
6
.1.1 プリサイス例外プリサイス例外プリサイス例外プリサイス例外
SRR0
SRR0
1.
2.
3.
.1.2 同期化同期化同期化同期化
00E00
00E10 00FFF
01000-02FFF
表表表表 6-2 例外および条件─概要(続き)例外および条件─概要(続き)例外および条件─概要(続き)例外および条件─概要(続き)
例外の種類例外の種類例外の種類例外の種類ベクタ・オフベクタ・オフベクタ・オフベクタ・オフ
セット(セット(セット(セット(16 進)進)進)進)例外を引き起こす条件例外を引き起こす条件例外を引き起こす条件例外を引き起こす条件
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-6 Freescale Semiconductor
6.1 例外クラス
第6章
例外
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-7
6.1.2.1 コンテキスト同期コンテキスト同期コンテキスト同期コンテキスト同期
sc rfi
1.
2.
isync
3.
4. sc
sync
6.1.2.2 実行同期実行同期実行同期実行同期
2
sync 2 isync
sync
sync mtmsr
6.1.2.3 同期/プリサイス例外同期/プリサイス例外同期/プリサイス例外同期/プリサイス例外
6.1 例外クラス
• SRR0
•
•
☞ 6.1.4
•
1
☞ 6.1.5
6.1.2.4 非同期例外非同期例外非同期例外非同期例外
4 2
6.1.2.4.1 システム・リセット例外およびマシン・チェック例外システム・リセット例外およびマシン・チェック例外システム・リセット例外およびマシン・チェック例外システム・リセット例外およびマシン・チェック例外
2
MSR[RI] MSR SRR1 RI
MSR[EE]
MSR[ME]
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-8 Freescale Semiconductor
6.1 例外クラス
第6章
例外
1
• SRR0
• SRR0
• SRR0
MSR[RI]
6.1.2.4.2 外部割込みとデクリメンタ例外外部割込みとデクリメンタ例外外部割込みとデクリメンタ例外外部割込みとデクリメンタ例外
MSR[EE]
•
•
• SRR0
MSR[EE]=0 EE
EE
☞ 6.1.5
6.1.3 インプリサイス例外インプリサイス例外インプリサイス例外インプリサイス例外
PowerPC 1
1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-9
6.1 例外クラス
6.1.3.1 インプリサイス例外のステータスインプリサイス例外のステータスインプリサイス例外のステータスインプリサイス例外のステータス
SRR0
•
SRR0
• SRR0
•
DSI
SRR0
☞ 6.1.4
• sync isync
SRR0
sync
isync sync isync
SRR0
•
SRR0
• SRR0
6.1.3.2 インプリサイス浮動小数点例外の回復可能性インプリサイス浮動小数点例外の回復可能性インプリサイス浮動小数点例外の回復可能性インプリサイス浮動小数点例外の回復可能性
IEEE MSR[FE0,FE1] IEEE
2 6-
3 ☞ 3.3.6
表表表表 6-3 IEEE 浮動小数点プログラム例外モード・ビット浮動小数点プログラム例外モード・ビット浮動小数点プログラム例外モード・ビット浮動小数点プログラム例外モード・ビット
FE0 FE1 モードモードモードモード
0 0
6
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-10 Freescale Semiconductor
6.1 例外クラス
第6章
例外
6.1.4 部分的に実行された命令部分的に実行された命令部分的に実行された命令部分的に実行された命令
DSI
DSI
• DSI
• DSI
• DSI
CR0
stwcx. CR0
rA
• DSI
rA
0 1
1 0
1 1
表表表表 6-3 IEEE 浮動小数点プログラム例外モード・ビット(続き)浮動小数点プログラム例外モード・ビット(続き)浮動小数点プログラム例外モード・ビット(続き)浮動小数点プログラム例外モード・ビット(続き)
FE0 FE1 モードモードモードモード
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-11
6.1 例外クラス
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-12 Freescale Semiconductor
DSI
rA
6.1.5 例外の優先順位例外の優先順位例外の優先順位例外の優先順位
1.
2.
3.
4.
6.1 例外クラス
第6章
例外
6-4
表表表表 6-4 例外の優先順位例外の優先順位例外の優先順位例外の優先順位
例外クラス例外クラス例外クラス例外クラス 優先順位優先順位優先順位優先順位 例 外例 外例 外例 外
1
2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-13
6.1 例外クラス
3
1
A. a. b. DSI
c. B.
a. b. c. DSI
d.C.
a. b. c. d.
D. rfi mtmsra. b. c. mtmsr
IEEEFPSCR[FEX]
E. a. 1
sc
b. F. ISI
4
PowerPCMSR[FE0] MSR[FE1]
☞ 6.1.3
表表表表 6-4 例外の優先順位(続き)例外の優先順位(続き)例外の優先順位(続き)例外の優先順位(続き)
例外クラス例外クラス例外クラス例外クラス 優先順位優先順位優先順位優先順位 例 外例 外例 外例 外
6
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-14 Freescale Semiconductor
6.1 例外クラス
第6章
例外
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-15
1
5
MSR[EE] EE
6
MSR[EE] EE
表表表表 6-4 例外の優先順位(続き)例外の優先順位(続き)例外の優先順位(続き)例外の優先順位(続き)
例外クラス例外クラス例外クラス例外クラス 優先順位優先順位優先順位優先順位 例 外例 外例 外例 外
6.2 例外処理
6.2 例外処理例外処理例外処理例外処理
SRR0
SRR1 MSR
SRR0
SRR0
6-1
SRR0
図図図図 6-1 マシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタ 0
1 SRR1
MSR
rfi
6-2 SRR1
図図図図 6-2 マシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタマシン・ステータス・セーブ/リストア・レジスタ 1
SRR1 1 4 10 15
MSR 16 23 25 27 30 31 SRR1
MSR
SRR1
MSR[IR]=1
MSR[DR]=1 SRR0
SRR1
MSR 6-3 32
SRR0 (holds EA for instruction in interrupted program flow)
0 293031
0 0
Reserved
0 31
Exception-specific information and MSR bit values
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-16 Freescale Semiconductor
6.2 例外処理
第6章
例外
図図図図 6-3 マシン・ステート・レジスタ(マシン・ステート・レジスタ(マシン・ステート・レジスタ(マシン・ステート・レジスタ(MSR))))
6-5 MSR
表表表表 6-5 MSR のビット設定のビット設定のビット設定のビット設定
ビットビットビットビット 名称名称名称名称 説明説明説明説明
0-12
13 POW
01
14
15 ILE
MSR[LE]
16 EE
0
1
17 PR
0
1
18 FP
0
1
19 ME
01
20 FE0 0 2-9
21 SE
01
0 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2627282930 31
Reserved
0000 0000 0000 0 POW 0 ILE EE PR FP ME FE0 SE BE FE1 0 IP IR DR 00 RI LE
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-17
6.2 例外処理
22 BE
01
23 FE1 1 2-9
24
25 IP F0
nnnnn 6-20 0x000n_nnnn1 0xFFFn_nnnn
IP
26 IR
01
7
27 DR
01
☞ 7
28-29
30 RI
01
☞ 6.4.1 0x00100☞ 6.4.2 0x00200
31 LE
01
表表表表 6-5 MSR のビット設定(続き)のビット設定(続き)のビット設定(続き)のビット設定(続き)
ビットビットビットビット 名称名称名称名称 説明説明説明説明
6
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-18 Freescale Semiconductor
6.2 例外処理
第6章
例外
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-19
MSR SRR1
DAR DSI
6.2.1 例外のイネーブルおよびディセーブル例外のイネーブルおよびディセーブル例外のイネーブルおよびディセーブル例外のイネーブルおよびディセーブル
• IEEE 1 MSR[FE0]
MSR[FE1]
IEEE
• MSR[EE]
MSR[EE]=0
MSR[EE]
•
MSR[ME]
MSR[ME]
6.2.2 例外処理の手順例外処理の手順例外処理の手順例外処理の手順
1. 0 SRR0
2. SRR1 1 4 10 15
3. SRR1 16 23 25 27 30 31 MSR
MSR SRR1
6.2 例外処理
4. 6-6 MSR
MSR[IR] MSR[DR]
MSR[ILE] MSR[LE]
6-6
5. MSR
MSR[IP]
6-2 IP
0x000n_nnnn IP
0xFFFn_nnnn MSR[ME]=0
☞ 6.4.2
0x00200
MSR[IR]=1
MSR[DR]=1 SRR0 SRR1
6.2.3 例外ハンドラからの復帰例外ハンドラからの復帰例外ハンドラからの復帰例外ハンドラからの復帰
Return from Interrupt rfi
rfi
•
•
• rfi SRR1 MSR
•
☞ 6.1.2.1
6
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-20 Freescale Semiconductor
6.3 プロセスの切替え
第6章
例外
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-21
6.3 プロセスの切替えプロセスの切替えプロセスの切替えプロセスの切替え
• sync
sync sync
• isync
• stwcx. lwarx
stwcx.
MSR[RI]
• MSR[RI]
SRR1
•
MSR[RI]
• MSR[RI] SRR0 SRR1
rfi
RI
6.4 例外の定義
6.4 例外の定義例外の定義例外の定義例外の定義
6-6 MSR
SRR1
0 クリアされます。
1 セットされます。
ILE ILE から MSR にコピーされます。
─ 変化しません。
予約ビットは 1 を書き込んでも読み出すと 0 が返ります。
表表表表 6-6 例外による例外による例外による例外による MSR のビット設定のビット設定のビット設定のビット設定
例外の種類例外の種類例外の種類例外の種類
MSR ビットビットビットビット
POW ILE EE PR FP ME FE0 SE BE FE1 IP IR DR RI LE
0 0 0 0 0 0 0 0 0 0 0 ILE
0 0 0 0 0 0 0 0 0 0 0 0 ILE
0 0 0 0 0 0 0 0 0 0 0 ILE
0 0 0 0 0 0 0 0 0 0 0 ILE
0 0 0 0 0 0 0 0 0 0 0 ILE
0 0 0 0 0 0 0 0 0 0 0 ILE
0 0 0 0 0 0 0 0 0 0 0 ILE
0 0 0 0 0 0 0 0 0 0 0 ILE
0 0 0 0 0 0 0 0 0 0 0 ILE
0 0 0 0 0 0 0 0 0 0 0 ILE
0 0 0 0 0 0 0 0 0 0 0 ILE
0 0 0 0 0 0 0 0 0 0 0 ILE
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-22 Freescale Semiconductor
6.4 例外の定義
第6章
例外
6.4.1 システム・リセット例外(システム・リセット例外(システム・リセット例外(システム・リセット例外(0x00100))))
6-7
MSR[IP]
0x00100
MSR[RI] SRR1
•
•
MSR[RI] SRR1
表表表表 6-7 システム・リセット例外─レジスタ設定システム・リセット例外─レジスタ設定システム・リセット例外─レジスタ設定システム・リセット例外─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0
SRR1 1 4
10 15
16 23 MSR
25 27 MSR
30 MSR MSR[RI]
31 MSR
MSR SRR1MSR[RI]
SRR1[30]
MSR POW 0 FP 0 BE 0 DR 0
ILE ME FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-23
6.4 例外の定義
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-24 Freescale Semiconductor
6.4.2 マシン・チェック例外(マシン・チェック例外(マシン・チェック例外(マシン・チェック例外(0x00200))))
MSR[ME]
MSR[ME]
ECC
•
•
MSR[RI] SRR1
MSR[RI] SRR1
MSR[RI] SRR1
6.4 例外の定義
第6章
例外
MSR[IR]=0
MSR[DR]=0
dcbz dcba
dcbst
6-8
MSR[RI]
MSR[IP]
0x00200
表表表表 6-8 マシン・チェック例外─レジスタ設定マシン・チェック例外─レジスタ設定マシン・チェック例外─レジスタ設定マシン・チェック例外─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0
EA
SRR1 MSR[RI] 30SRR1
MSR POW 0 FP 0 BE 0 DR 0
ILE ME 1
1 例外ハンドラは、マシン・チェック例外の処理中に、他のマシン・チェック例外の処理を実行すべき
時点で MSR[ME] をセットしなければなりません。それ以外は、それ以降のマシン・チェック例外によ
り、プロセッサは自動的にチェックストップ・ステートに移行します。
FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-25
6.4 例外の定義
6.4.3 DSI 例外(例外(例外(例外(0x00300))))
DSI
DSI mfspr
SPR SPR18 DSISR
6-9
DAR DSI
icbi dcbi dcbz dcbst dcbf
eciwx ecowx
•
DSI
•
lwarx
stwcx.
•
• eciwx ecowx
EAR[E]
• DABR
DABR PowerPC
3
EA[0-28]=DABR[DAB]
MSR[DR]=DABR[BT]
DABR[DW]=1 DABR[DR]=1
DABR ☞ 2.3.14
DABR 6-9 DAR
dcbz eciwx ecowx
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-26 Freescale Semiconductor
6.4 例外の定義
第6章
例外
dcbz dcbz
eciwx ecowx dcbz
stwcx. EA DSI
lwarx DSI
XER[25-31]
DSI
DSISR 6-9
DAR
表表表表 6-9 DSI 例外─レジスタ設定例外─レジスタ設定例外─レジスタ設定例外─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0
SRR1 1 410 1516 2325 2730 31
MSRMSRMSR
MSR SRR1
MSR POW 0 FP 0 BE 0 DR 0
ILE ME FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-27
6.4 例外の定義
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-28 Freescale Semiconductor
DSISR 0
1 1 HTEG 2 HTEGDBAT
2 3
4 BAT
5 eciwx ecowx lwarx stwcx.lwarx stwcx.
6
7 8
9 DABR
10
11 eciwx ecowx EAR[E]=0
12 31
DSISR
1 114 54 115 11
6 ecowx dcbz dcba dcbi9 DABR
DAR
BATDSI 1
BATDSI 1
1EAR[EA] eciwx ecowx EA
DABR DAR A BA EA
BEA
表表表表 6-9 DSI 例外─レジスタ設定(続き)例外─レジスタ設定(続き)例外─レジスタ設定(続き)例外─レジスタ設定(続き)
レジスタレジスタレジスタレジスタ 説明説明説明説明
6.4 例外の定義
第6章
例外
DSI MSR[IP]
0x00300
6.4.4 ISI 例外(例外(例外(例外(0x00400))))
ISI
•
ISI
•
• MSR[IR]=1
•
6-10 ISI
表表表表 6-10 ISI 例外─レジスタ設定例外─レジスタ設定例外─レジスタ設定例外─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0
SRR0
SRR1 1 HTEG 2 HTEGDBAT
2
3 SRT[T]=1N MSR[IR]=1
4 BAT☞ 7
10 15
16 23 MSR
25 27 MSR
30 31 MSR
1 3 4 1MSR SRR1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-29
6.4 例外の定義
ISI MSR[IP]
0x00400
6.4.5 外部割込み(外部割込み(外部割込み(外部割込み(0x00500))))
MSR[EE]
6-11
MSR[IP]
0x00500
MSR POW 0 FP 0 BE 0 DR 0
ILE ME FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0 LE
表表表表 6-11 外部割込み─レジスタ設定外部割込み─レジスタ設定外部割込み─レジスタ設定外部割込み─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0
SRR1 1 4
10 15
16 23 MSR
25 27 MSR
30 31 MSR
MSR SRR1
MSR POW 0 FP 0 BE 0 DR 0
ILE ME FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0
表表表表 6-10 ISI 例外─レジスタ設定(続き)例外─レジスタ設定(続き)例外─レジスタ設定(続き)例外─レジスタ設定(続き)
レジスタレジスタレジスタレジスタ 説明説明説明説明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-30 Freescale Semiconductor
6.4 例外の定義
第6章
例外
6.4.6 アライメント例外(アライメント例外(アライメント例外(アライメント例外(0x00600))))
DSI
SRR0 SRR1 DSISR
•
• lmw stmw lwarx stwcx. eciwx ecowx
• lmw stmw lswi lswx stswi stswx
•
• lmw stmw BAT
• dcbz
dcbz
lmw stmw lswi lswx stswi
stswx
lmw stmw
lwarx stwcx. eciwx ecowx
EAR[E]=0 eciwx ecowx
DSI
dcbz
PowerPC
☞ 3.1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-31
6.4 例外の定義
BAT 4K
MSR[IR]=1 MSR[DR]=1
6-12
表表表表 6-12 アライメント例外─レジスタ設定アライメント例外─レジスタ設定アライメント例外─レジスタ設定アライメント例外─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0
SRR1 1 4
10 15
16 23 MSR
25 27 MSR
30 31 MSR
MSR SRR1
MSR POW 0 FP 0 BE 0 DR 0
ILE ME FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0
6
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-32 Freescale Semiconductor
6.4 例外の定義
第6章
例外
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-33
DSISR 0 14
15 1629 30
17
25
5
18 2121 24
1 4
22 26 6 10dcbz
27 31 11 15 rAlmw lswi lswx 11 15
DSISR
DSISRlwarx
DSISR000000000000 00 0 01 0 0101 ttttt ?????
ttttt ?????lwa
000000000000 10 0 00 0 1101 ttttt ?????
DSISRlbz/lbzxlbzu/lbzuxlhz/lhzxlhzu/lhzuxlha/lhaxlhau/lhaux lwz/lwzxlwzu/lwzuxlwa/lwaxstb/stbxstbu/stbuxsth/sthxsthu/sthuxstw/stwxstwu/stwuxlfs/lfsxlfsu/lfsuxstfs/stfsxstfsu/stfsux
DAR EA
表表表表 6-12 アライメント例外─レジスタ設定(続き)アライメント例外─レジスタ設定(続き)アライメント例外─レジスタ設定(続き)アライメント例外─レジスタ設定(続き)
レジスタレジスタレジスタレジスタ 説明説明説明説明
6.4 例外の定義
eciwx ecowx
EA
EA
6.4.6.1 整数アライメント例外整数アライメント例外整数アライメント例外整数アライメント例外
6.4.6.1.1 ページ・アドレス変換アクセスの考慮事項ページ・アドレス変換アクセスの考慮事項ページ・アドレス変換アクセスの考慮事項ページ・アドレス変換アクセスの考慮事項
MSR[DR] SR[T] BAT
dcbz W
I
6.4.6.2 リトル・エンディアン・モードのアライメント例外リトル・エンディアン・モードのアライメント例外リトル・エンディアン・モードのアライメント例外リトル・エンディアン・モードのアライメント例外
OEA
☞
3.1.4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-34 Freescale Semiconductor
6.4 例外の定義
第6章
例外
6.4.6.3 アライメント例外の設定するアライメント例外の設定するアライメント例外の設定するアライメント例外の設定する DSISR の解釈の解釈の解釈の解釈
•
•
•
•
•
•
• dcbz
PowerPC
DSISR
6-13 DSISR
表表表表 6-13 ミスアライン命令の判定のためのミスアライン命令の判定のためのミスアライン命令の判定のためのミスアライン命令の判定のための DSISR((((15 ~~~~ 21)設定)設定)設定)設定
DSISR[15-21] 命令命令命令命令 DSISR[15-21] 命令命令命令命令
00 0 0000 lwarx, lwz, 1 01 1 0010
00 0 0010 01 1 0101 lwaux
00 0 0010 stw 10 0 0010 stwcx.
00 0 0100 lhz 10 0 0011
00 0 0101 lha 10 0 1000 lwbrx
00 0 0110 sth 10 0 1010 stwbrx
00 0 0111 lmw 10 0 1100 lhbrx
00 0 1000 lfs 10 0 1110 sthbrx
00 0 1001 10 1 0100 eciwx
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-35
6.4 例外の定義
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-36 Freescale Semiconductor
00 0 1010 stfs 10 1 0110 ecowx
00 0 1011 10 1 1111 dcbz
00 0 1101 ld,lwa2 11 0 0000 lwzx
00 0 1111 std 11 0 0010 stwx
00 1 0000 lwzu 11 0 0100 lhzx
00 1 0010 stwu 11 0 0101 lhax
00 1 0100 lhzu 11 0 0110 sthx
00 1 0101 lhau 11 0 1000 lfsx
00 1 0110 sthu 11 0 1001
00 1 0111 stmw 11 0 1010 stfsx
00 1 1000 lfsu 11 0 1011
00 1 1001 11 0 1111 stfiwx
00 1 1010 stfsu 11 1 0000 lwzux
00 1 1011 11 1 0010 stwux
01 0 0000 11 1 0100 lhzux
01 0 0010 11 1 0101 lhaux
01 0 0101 lwax 11 1 0110 sthux
01 0 1000 lswx 11 1 1000 lfsux
01 0 1001 lswi 11 1 1001
01 0 1010 stswx 11 1 1010 stfsux
01 0 1011 stswi 11 1 1011
01 1 0000
1 lwz 命令と lwarx 命令の DSISR ビットは同じ(すべてゼロ)です。ただし、lwarx 命
令がアライメント例外を引き起こした場合は、例外は無効形式であるため正確な方法
でエミュレートする必要はありません。アライメント例外ハンドラは、命令を lwz と
見なしてエミュレートするだけで十分です。lwz と lwarx は異なるアドレッシング・
モードを使用するため、エミュレータが rA / rB / D からアドレスを計算するのでは
なく、DAR のアドレスを使用することが重要です。
オペコード 0(「不当または予約済み」)でアライメント例外が発生する場合は、lwarxまたは lwz による例外ハンドラと区別できます。
2 これらの命令は DSISR[12-13] で識別されます(この表には示してありません)。
表表表表 6-13 ミスアライン命令の判定のためのミスアライン命令の判定のためのミスアライン命令の判定のためのミスアライン命令の判定のための DSISR((((15 ~~~~ 21)設定(続き))設定(続き))設定(続き))設定(続き)
DSISR[15-21] 命令命令命令命令 DSISR[15-21] 命令命令命令命令
6.4 例外の定義
第6章
例外
6.4.7 プログラム例外(プログラム例外(プログラム例外(プログラム例外(0x00700))))
1 SRR1
• IEEE FPSCR[FEX]
MSR[FE0] MSR[FE1]
FPSCR[FEX]
move to FPSCR
☞ 3.3.6
•
PowerPC
rA rB lswx
SPR SPR
MSR[PR]=1 spr[0]=1
MSR[PR]=0 spr[0]=0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-37
6.4 例外の定義
•
MSR[PR]
spr[0]=1 MSR[PR]=1 SPR
mtspr mfspr
SPR move to/from
SPR
spr[0]=1
•
☞ 4.2.4.6
6-14
表表表表 6-14 プログラム例外─レジスタ設定プログラム例外─レジスタ設定プログラム例外─レジスタ設定プログラム例外─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0
MSR[FE0] MSR[FE1]SRR0 EA
SRR0EA sync isync SRR0 sync
isync 4FPSCR[FEX]=1 IEEE (MSR[FE0]=MSR[FE1]=0)
SRR0 MSR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-38 Freescale Semiconductor
6.4 例外の定義
第6章
例外
MSR[IP]
0x00700
6.4.8 浮動小数点使用不可例外(浮動小数点使用不可例外(浮動小数点使用不可例外(浮動小数点使用不可例外(0x00800))))
MSR MSR[FP]=0
6-15
SRR1 1 4
10
11 IEEE
12
13
14
15 SRR0
16 23 MSR
25 27 MSR
30 31 MSR
MSR SRR1
MSR POW 0 FP 0 BE 0 DR 0
ILE ME FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0
表表表表 6-14 プログラム例外─レジスタ設定(続き)プログラム例外─レジスタ設定(続き)プログラム例外─レジスタ設定(続き)プログラム例外─レジスタ設定(続き)
レジスタレジスタレジスタレジスタ 説明説明説明説明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-39
6.4 例外の定義
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-40 Freescale Semiconductor
MSR[IP]
0x00800
6.4.9 デクリメンタ例外(デクリメンタ例外(デクリメンタ例外(デクリメンタ例外(0x00900))))
MSE[EE]=1
•
• GPR
• GPR GPR
• 0 0 1
1
表表表表 6-15 浮動小数点使用不可例外─レジスタ設定浮動小数点使用不可例外─レジスタ設定浮動小数点使用不可例外─レジスタ設定浮動小数点使用不可例外─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0
SRR1 1 4
10 15
16 23 MSR
25 27 MSR
30 31 MSR
MSR SRR1
MSR POW 0 FP 0 BE 0 DR 0
ILE ME FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0
6.4 例外の定義
第6章
例外
• 0 0 1
6-16
MSR[IP]
0x00900
6.4.10 システム・コール例外(システム・コール例外(システム・コール例外(システム・コール例外(0x00C00))))
System Call sc sc
SRR0 MSR SRR1
6-17
MSR[IP]
0x00C00
☞ 6.1.2.1
表表表表 6-16 デクリメンタ例外─レジスタ設定デクリメンタ例外─レジスタ設定デクリメンタ例外─レジスタ設定デクリメンタ例外─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0
SRR1 1 4
10 15
16 23 MSR
25 27 MSR
30 31 MSR
MSR SRR1
MSR POW 0 FP 0 BE 0 DR 0
ILE ME FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-41
6.4 例外の定義
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
6-42 Freescale Semiconductor
MSR[IP]
0x00C00
6.4.11 トレース例外(トレース例外(トレース例外(トレース例外(0x00D00))))
PowerPC
MSR[SE,BE]
• MSR[SE]=1 1
sc rfi
• MSR[BE]=1
• rfi
• sc
表表表表 6-17 システム・コール例外─レジスタ設定システム・コール例外─レジスタ設定システム・コール例外─レジスタ設定システム・コール例外─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0 sc
SRR1 1 4
10 15
16 23 MSR
25 27 MSR
30 31 MSR
MSR SRR1
MSR POW 0 FP 0 BE 0 DR 0
ILE ME FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0
6.4 例外の定義
第6章
例外
•
•
•
MSR[SE,BE]
rfi
MSR[SE,BE]
6-18
MSR[IP]
0x00D00
6.4.12 浮動小数点補助例外(浮動小数点補助例外(浮動小数点補助例外(浮動小数点補助例外(0x00E00))))
PowerPC
•
•
表表表表 6-18 トレース例外─レジスタ設定トレース例外─レジスタ設定トレース例外─レジスタ設定トレース例外─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0
SRR1 1 4
10 15
16 23 MSR
25 27 MSR
30 31 MSR
MSR SRR1
MSR POW 0 FP 0 BE 0 DR 0
ILE ME FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 6-43
6.4 例外の定義
6-19
MSR[IP]
0x00E00
表表表表 6-19 浮動小数点補助例外─レジスタ設定浮動小数点補助例外─レジスタ設定浮動小数点補助例外─レジスタ設定浮動小数点補助例外─レジスタ設定
レジスタレジスタレジスタレジスタ 説明説明説明説明
SRR0
SRR1 1 4
10 15
16 23 MSR
25 27 MSR
30 31 MSR
MSR SRR1
MSR POW 0 FP 0 BE 0 DR 0
ILE ME FE1 0 RI 0
EE 0 FE0 0 IP LE ILE
PR 0 SE 0 IR 0
6
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-44 Freescale Semiconductor
第7章
メモリ管理
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-1
第第第第 7 章章章章 メモリ管理メモリ管理メモリ管理メモリ管理
7.1 概要
7.1 概要概要概要概要
2
2
TLB
OEA
32
BAT
BAT
SPR BAT
MMU
☞ 6 MMU
MSR ☞ 2.3.1
MSR
7
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-2 Freescale Semiconductor
7.2 MMU の機能
第7章
メモリ管理
7.2 MMU の機能の機能の機能の機能
32 MMU 4G 52
32
MMU MMU
MMU
MMU
OEA
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-3
7.3 MMU の概要
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-4 Freescale Semiconductor
7.3 MMU の概要の概要の概要の概要
MMU
32
52
32
MMU
BAT SDR1
MMU
7.3 MMU の概要
第7章
メモリ管理
256M
128K 256M
4K
PTE
BAT MMU
PTE
MMU PTE
TLB MMU
BAT BAT
MMU MMU
☞ 2.3.1
MSR ☞ 7.5.3 BAT BAT ☞ 7.6.2.1
☞ 7.7.1.1 SDR1
7.3.1 メモリ・アドレッシングメモリ・アドレッシングメモリ・アドレッシングメモリ・アドレッシング
7.3.1.1 定義済みの物理メモリ・ロケーション定義済みの物理メモリ・ロケーション定義済みの物理メモリ・ロケーション定義済みの物理メモリ・ロケーション
4
256 MSR[IP]=1
0xFFF0_0000 256
MSR[IP]
3
2 3
0xFFF0_1000 2 3 MSR[IP]=1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-5
7.3 MMU の概要
4
7-1 Base
☞ 6
7.3.2 MMU の構成の構成の構成の構成
7-1 32 MMU
A20 A31
MMU
32
表表表表 7-1 定義済みの物理メモリ・ロケーション定義済みの物理メモリ・ロケーション定義済みの物理メモリ・ロケーション定義済みの物理メモリ・ロケーション
メモリ領域メモリ領域メモリ領域メモリ領域 物理アドレス範囲物理アドレス範囲物理アドレス範囲物理アドレス範囲 定義済みの用途定義済みの用途定義済みの用途定義済みの用途
1 Base1 || 0x0_0000–Base || 0x0_00FF
1 MSR[IP]=0, base=0x000; MSR[IP]=1, base=0xFFF
2 Base1 || 0x0_0100–Base || 0x0_0FFF
3 Base1 || 0x0_1000–Base || 0x0_2FFF
MSR[IP]=1
4
7
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-6 Freescale Semiconductor
7.3 MMU の概要
第7章
メモリ管理
図図図図 7-1 MMU の概念ブロック図の概念ブロック図の概念ブロック図の概念ブロック図
MMU(32ビット)
A20–A31
X
EA
0–E
A19
EA
0–E
A19
EA0–EA3
仮想アドレスの上位24ビット
0
15
セグメント・レジスタ�...
PA0–PA31
EA0–EA14
EA0–EA14
EA15–EA19
EA15–EA19
BAT�ヒット
PA15–PA19
SPR25
EA4–EA19
命令�アクセス�
オンチップ� TLB
ページ・テーブル・�
オプション�
サーチ・ロジック��
SDR1
DBAT0UDBAT0L
DBAT3UDBAT3L
DBAT0UDBAT0L
DBAT3UDBAT3L
PA0–PA14
PA0–PA19
A20
–EA
31
X
X
+
+
X
↓�
データ・アクセス�
�
�
�
�
�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-7
7.3 MMU の概要
7
7
.3.3 アドレス変換メカニズムアドレス変換メカニズムアドレス変換メカニズムアドレス変換メカニズム• 4K
• 128K 256M
•
POWER
7-2 MMU
16
1
I/O
I/O I/O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-8 Freescale Semiconductor
7.3 MMU の概要
第7章
メモリ管理
32
TLB
TLB MMU
17
TLB BAT BAT
BAT BAT
BAT
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-9
7.3 MMU の概要
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-10 Freescale Semiconductor
図図図図 7-2 アドレス変換の種類アドレス変換の種類アドレス変換の種類アドレス変換の種類
T
TLB
(T = 1) (T = 0)
実効アドレス�
仮想アドレス�
セグメント・�ディスクリプタを特定�
BATレジスタと一致�
物理アドレス�インプリメンテーション依存�
0 310 310 31
0 31
0 31
0 51
ページ・テーブル�を検索�
アドレス変換ディセーブル�
ページ・アドレス変換�
直接ストア・セグメント変換�(「7.8 直接ストア・セグメントの�
アドレス変換」参照) ��
ブロック・アドレス変換�(「7.5 ブロック・アドレス変換」�
参照)���
(MSR[IR]=0またはMSR[DR]=0)�
リアル・アドレッシング・モード 実効アドレス=物理アドレス��
�
物理アドレス� 物理アドレス�
7.3 MMU の概要
第7章
メモリ管理
MSR
MSR[IR] MSR[DR]
☞ 7.3.6.1
7.3.4 メモリ保護機能メモリ保護機能メモリ保護機能メモリ保護機能
MMU
7-2 MMU 8
表表表表 7-2 ページに対する保護オプションページに対する保護オプションページに対する保護オプションページに対する保護オプション
オプションオプションオプションオプション
ユーザ読出しユーザ読出しユーザ読出しユーザ読出しユーザユーザユーザユーザ
書込み書込み書込み書込み
スーパバイザスーパバイザスーパバイザスーパバイザ
読出し読出し読出し読出し スーパバイザスーパバイザスーパバイザスーパバイザ
書込み書込み書込み書込み命令命令命令命令
フェッチフェッチフェッチフェッチデータデータデータデータ
命令命令命令命令
フェッチフェッチフェッチフェッチデータデータデータデータ
— — — √ √ √
— — — — √ √
√ √ — √ √ √
— √ — — √ √
√ √ √ √ √ √
— √ √ — √ √
√ √ — √ √ —
— √ — — √ —
√—
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-11
7.3 MMU の概要
☞ 5.2.5.2
MMU
MMU
I/O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-12 Freescale Semiconductor
7.3 MMU の概要
第7章
メモリ管理
VEA OEA
I/O
☞ 5.3.1.5.1
☞ 5.3.1.5.4
7.3.5 ページ履歴情報ページ履歴情報ページ履歴情報ページ履歴情報
MMU R
C
R C
7.3.6 MMU アドレス変換の一般な手順アドレス変換の一般な手順アドレス変換の一般な手順アドレス変換の一般な手順
TLB
1
TLB TLB
7.3.6.1 リアル・アドレッシング・モードおよびブロック・アドレス変換の選択リアル・アドレッシング・モードおよびブロック・アドレス変換の選択リアル・アドレッシング・モードおよびブロック・アドレス変換の選択リアル・アドレッシング・モードおよびブロック・アドレス変換の選択
MSR[IR]=0 MSR[DR]=0
☞
7.4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-13
7.3 MMU の概要
7-3
MMU
図図図図 7-3 アドレス変換(リアル・アドレッシング・モードおよびブロック)の一般フローアドレス変換(リアル・アドレッシング・モードおよびブロック)の一般フローアドレス変換(リアル・アドレッシング・モードおよびブロック)の一般フローアドレス変換(リアル・アドレッシング・モードおよびブロック)の一般フロー
BAT
ISI
DSI
BAT アレイ�ミス�
BAT アレイ・�ヒット�
アクセスは保護�アクセスは許可�セグメント・ディスクリプタで�
アドレス変換を実行�
アクセスは失敗� アドレスを変換�
データ・アクセス�命令アクセス�
データ・アドレス�変換はディセーブル�
(MSR[DR] = 0)
命令アドレス変換は�ディセーブル (MSR[IR] = 0)
生成された�実効アドレス�
メモリ・サブシステム�でアクセスを継続�
命令アドレス変換は�イネーブル
(MSR[IR] = 1)
データ・アドレス�変換はイネーブル�
(MSR[DR] = 1)
�(図7-11参照)�
(図7-4参照)�
リアル・アドレッシング・�モード変換を実行� アドレスを命令または�
データBATアレイ�(該当する方)と比較�
(図7-6参照)�
リアル・アドレッシング・�モード変換を実行�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-14 Freescale Semiconductor
7.3 MMU の概要
第7章
メモリ管理
7.3.6.2 ページおよび直接ストアのアドレス変換の選択ページおよび直接ストアのアドレス変換の選択ページおよび直接ストアのアドレス変換の選択ページおよび直接ストアのアドレス変換の選択
BAT
T
7-4
N
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-15
7.3 MMU の概要
7
図図図図 7-4 ページおよび直接ストアのアドレス変換の一般的な手順ページおよび直接ストアのアドレス変換の一般的な手順ページおよび直接ストアのアドレス変換の一般的な手順ページおよび直接ストアのアドレス変換の一般的な手順
アクセスは失敗�
アクセスは失敗�
アクセスは保護�アクセスは許可�
メモリ・サブシステムで�アクセスを継続�
アドレスを変換�
直接ストア・�セグメント変換を実行�
直接ストア・セグメント・ アドレス(T = 1)*
ページ・アドレス 変換(T = 0)�
EA0~EA3で16個の�セグメント・�
レジスタの1つを選択�
セグメント・ディスクリプタ�でアドレス変換�
セグメント・ディスクリプタの Tビットをチェック�
セグメント・ディスクリプタ�から52ビットの�
仮想アドレスを生成�
セグメント・ディスクリプタの�Nビットがセットで命令フェッチ�(非実行)��
�
それ以外の場合�
TLBミス�
仮想アドレスを�TLBエントリと比較�
(図7-16参照)�
(図7-25参照)�
TLBヒット�
ページ・テーブル検索�オペレーションを実行�
PTEを検出�PTEは�検出されず�
注:�*命令アクセスは不許可�(ISI例外を発生)�
インプリメンテーション依存�
TLBエントリを�ロード�
�
(図7-27参照)�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-16 Freescale Semiconductor
7.3 MMU の概要
第7章
メモリ管理
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-17
32
16 1
EA0 EA3 16 1
7.3.6.2.1 ページ・アドレス変換の選択ページ・アドレス変換の選択ページ・アドレス変換の選択ページ・アドレス変換の選択
SR[T]=0
52
PTE
TLB
PTE
1 TLB
TLB
MMU TLB
TLB
TLB PTE
ISI DSI
PTE ISI DSI
7.3.7 MMU の例外サマリの例外サマリの例外サマリの例外サマリ
•
BAT
• BAT
7.3 MMU の概要
•
ISI DSI 7-
3
SRR1
DSISR ☞ 6
MMU
7-4
MSR[DR]=0 MMU
☞ 6.4.6
0x00600 SRR1
DSISR ☞ 6
表表表表 7-3 変換例外条件変換例外条件変換例外条件変換例外条件
条 件条 件条 件条 件 説 明説 明説 明説 明 例 外例 外例 外例 外
PTE PTEBAT
ISISRR1[1]=1
DSIDSISR[1]=1
7-11 ISISRR1[4]=1
DSIDSISR[4]=1
7-18 ISISRR1[4]=1
DSIDSISR[4]=1
SR[N]=1 ISISRR1[3]=1
SR[T]=1 ISISRR1[3]=1
MSR[IR]=1
xBAT[G]=1 BATPTE[G]=1
ISISRR1[3]=1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-18 Freescale Semiconductor
7.3 MMU の概要
第7章
メモリ管理
7.3.8 MMU 命令とレジスタのサマリ命令とレジスタのサマリ命令とレジスタのサマリ命令とレジスタのサマリ
MMU
表表表表 7-4 他の他の他の他の MMU 例外条件例外条件例外条件例外条件
条 件条 件条 件条 件 説 明説 明説 明説 明 例 外例 外例 外例 外
W=1 I=1 dcbz
dcbz
W=1 lwarx stwcx. DSI
DSISR[5]=1
lwarx stwcx. eciwx ecowxSR[T]=1 DSI
DSISR[5]=1
SR[T]=1
DSIDSISR[0]=1
eciwxecowx
EAR[E]=0 eciwx ecowx DSIDSISR[11]=1
lmwstmw lswi lswx stswi stswx
MSR[LE]=1 lmw stmw lswilswx stswi stswx
☞ 6
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-19
7.3 MMU の概要
TLB TLB
TLB
OEA
TLB
• TLB
• TLB
TLB
1
TLB TLB
tlbie TLB
TLB TLB EA
TLB TLB
TLB
TLB
MMU
7-5 MMU
☞ 8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-20 Freescale Semiconductor
7.3 MMU の概要
第7章
メモリ管理
7-6 MMU
☞
2
表表表表 7-5 命令のサマリ─命令のサマリ─命令のサマリ─命令のサマリ─ MMU の制御の制御の制御の制御
命 令命 令命 令命 令 構文構文構文構文 説 明説 明説 明説 明
Move to Segment Register mtsr SR,rS SR[SR]← rS
Move to Segment Register Indirect
mtsrin rS,rB SR[rB[0–3]]←rS
Move from Segment Register mfsr rD,SR rD←SR[SR]
Move from Segment Register Indirect
mfsrin rD,rB rD←SR[rB[0–3]]
Translation Lookaside Buffer
Invalidate All
tlbia TLB TLB[V] 0tlbia TLB
Translation Lookaside Buffer
Invalidate Entry
tlbie rB rB TLB TLB[V] 0TLB
Translation Lookaside Buffer
Synchronize
tlbsync tlbsync tlbie
表表表表 7-6 MMU レジスタレジスタレジスタレジスタ
レジスタレジスタレジスタレジスタ 説 明説 明説 明説 明
SR0-SR15PowerPC 32 16 32
7-130
mtsr mtsrin mfsr mfsrin
BATIBAT0U-IBAT3U
I B AT 0 L - I B AT 3 LDBAT0U-DBAT3U
DBAT0L-DBAT3L
4 BAT IBAT0U-IBAT3U IBAT0L-IBAT3L 4BAT DBAT0U-DBAT3U DBAT0L-DBAT3L 16
BAT BAT 3232 SPR mtspr mfspr
SDR1 SDR1SDR1 32 32
mtspr mfspr
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-21
7.3 MMU の概要
7.3.9 TLB エントリの無効化エントリの無効化エントリの無効化エントリの無効化
PTE
TLB tlbie
tlbia TLB
TLB
PTE tlbie
tlbia ☞ 8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-22 Freescale Semiconductor
7.4 リアル・アドレッシング・モード
第7章
メモリ管理
7.4 リアル・アドレッシング・モードリアル・アドレッシング・モードリアル・アドレッシング・モードリアル・アドレッシング・モード
MSR[IR]=0
MSR[DR]=0
MSR[IR] MSR[DR] ☞ 2.3.17
☞
7.5.4 ☞ 7.6.4
☞ 7.6.3
WIMG 0b0011
W=0
I=0 I/O
M=1
WIMG 0b0001 0b0011
I=0
I/O
M=0 1
WIMG ☞ 5.3.1
MSR[DR]=0 eciwx ecowx
MSR[IR] MSR[DR]
MSR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-23
7.4 リアル・アドレッシング・モード
☞ 2
☞ 6.4.2
0x00200
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-24 Freescale Semiconductor
7.5 ブロック・アドレス変換
第7章
メモリ管理
7.5 ブロック・アドレス変換ブロック・アドレス変換ブロック・アドレス変換ブロック・アドレス変換
OEA BAT
7.5.1 BAT アレイの構成アレイの構成アレイの構成アレイの構成
BAT
BAT 8
BAT
16 SPR
BAT BAT 1 SPR
BAT mfspr mtspr
BAT BAT
☞ 7.5.3 BAT BAT
tlbie tlbia TLB
BAT
7-5 BAT
4 BAT 8
BAT 2 4 BAT
BAT 1 BAT
BAT BAT
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-25
7.5 ブロック・アドレス変換
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-26 Freescale Semiconductor
図図図図 7-5 BAT アレイの構成アレイの構成アレイの構成アレイの構成
BAT
1 BAT
128K 217 256M 228
IBAT DBAT
BAT
BAT
BEPI,Vs, Vp
BEPI,Vs, Vp
マスクされていないEA0~EA14、MSR[PR]命令アクセス�
BAT アレイ・ヒット/ミス�
比較� IBAT0U
IBAT0L
IBAT3U
IBAT3L
SPR 528
SPR 535
DBAT0U
DBAT0L
DBAT3UDBAT3L
SPR 536
SPR 543
比較�
比較�
比較�
比較�
比較�
比較�
比較�
BAT アレイ・ヒット/ミス�
マスクされていないEA0~EA14、MSR[PR]データ・アクセス�
7.5 ブロック・アドレス変換
第7章
メモリ管理
BAT_entry_valid = (Vs & ¬MSR[PR]) | (Vp & MSR[PR])
BAT
2 BAT
V[s] V[p]
BAT A Vs = 1, Vp = 0
BAT B Vs = 0, Vp = 1
7.5.2 BAT アレイのアドレスの認識アレイのアドレスの認識アレイのアドレスの認識アレイのアドレスの認識
BAT BAT
BAT
☞ 7.5.5
MSR[IR]=1
MSR[DR]=1 BAT
SR[T]
7-6 BAT
4 BAT
4 BAT BAT 4
BAT
7-6 BATL[PP]
☞ 7.5.4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-27
7.5 ブロック・アドレス変換
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-28 Freescale Semiconductor
図図図図 7-6 BAT アレイのヒット/ミス・フローアレイのヒット/ミス・フローアレイのヒット/ミス・フローアレイのヒット/ミス・フロー
アドレスと�BATアレイを比較�
命令アクセス� データ・アクセス�
EA0~EA14とDBAT0[BEPI]~DBAT3[BEPI]を比較�
EA0~EA14とIBAT0[BEPI]~IBAT3[BEPI]を比較�
それ以外の場合�
Matching_BAT←xBATx
ユーザ・アクセス�(MSR[PR] = 1)
スーパバイザ・アクセス�(MSR[PR] = 0)
それ以外の場合�Matching_BAT[Vs] = 1 それ以外の場合�
Matching_BAT[Vp] = 1
BAT アレイ・ミス�
BEPI (0–3) = EA0~EA3かつ�BEPI (4~14) = (EA4~EA14) & (¬ BL)
(図7-11参照)�
BAT アレイ・ミス�
BAT アレイ・ヒット�
7.5 ブロック・アドレス変換
第7章
メモリ管理
BAT BAT
2
BEPI 2
Vs Vp 1 MSR[PR]
128K BEPI
BEPI
BL ☞ 7.5.3 BAT
BAT
BAT
• 15 BAT
BEPI
• BAT
MSR[PR]=0
Vs
MSR[PR]=1 Vp
☞ 7.5.4
Vp=0 Vs=1
BAT BEPI
BAT
BAT
BAT
IBAT DBAT
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-29
7.5 ブロック・アドレス変換
BAT
PTE
BAT
PTE
7.5.3 BAT アレイのアレイのアレイのアレイの BAT レジスタ実装レジスタ実装レジスタ実装レジスタ実装
BAT
4 BAT
1 BAT BAT BAT
BAT mtspr mfspr
BAT ☞ E
7-7 7-8 BAT
図図図図 7-7 上位上位上位上位 BAT レジスタの形式レジスタの形式レジスタの形式レジスタの形式
図図図図 7-8 下位下位下位下位 BAT レジスタの形式レジスタの形式レジスタの形式レジスタの形式
BEPI 0 0 0 0 BL Vs Vp
予約済み�
0 14 15 18 19 29 30 31
予約済み�
0 14 15 24 25 28 29 30 31
BRPN 0 0 0 0 0 0 0 0 0 0 WIMG* 0 PP
*IBATレジスタのWビットおよびGビットは未定義で、書き込もうとすると結果は境界未定義となります。�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-30 Freescale Semiconductor
7.5 ブロック・アドレス変換
第7章
メモリ管理
BAT
WIMG
BRPN
BL
7-7 BAT BAT W
G BAT DBAT
IBAT W G
表表表表 7-7 BAT レジスタ─フィールドとビットの定義レジスタ─フィールドとビットの定義レジスタ─フィールドとビットの定義レジスタ─フィールドとビットの定義
上位/下位上位/下位上位/下位上位/下位BAT ビットビットビットビット 名前名前名前名前 説 明説 明説 明説 明
BAT 0 14 BEPI BAT
15 18 —
19 29 BL BL2-13
30 Vs MSR[PR]☞ 7.5.2 BAT
31 Vp MSR[PR]☞ 7.5.2 BAT
BAT 0 14 BRPN BL
15 24 —
25 28 WIMG
WIMGIBAT W G
WIMG ☞ 5.3.1
29 —
30 31 PP ☞ 7.5.4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-31
7.5 ブロック・アドレス変換
BAT BL
7-8 BAT BL
BL 7-8 BL
BAT BEPI
Vs Vp
BAT BAT
PP ☞ 7.5.4
BL BAT
BEPI
BL 14
BL 1
表表表表 7-8 上位上位上位上位 BAT レジスタのブロック・サイズ・マスクのエンコーディングレジスタのブロック・サイズ・マスクのエンコーディングレジスタのブロック・サイズ・マスクのエンコーディングレジスタのブロック・サイズ・マスクのエンコーディング
ブロック・サイズブロック・サイズブロック・サイズブロック・サイズ BL エンコーディングエンコーディングエンコーディングエンコーディング
128K 000 0000 0000
256K 000 0000 0001
512K 000 0000 0011
1M 000 0000 0111
2M 000 0000 1111
4M 000 0001 1111
8M 000 0011 1111
16M 000 0111 1111
32M 000 1111 1111
64M 001 1111 1111
128M 011 1111 1111
256M 111 1111 1111
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-32 Freescale Semiconductor
7.5 ブロック・アドレス変換
第7章
メモリ管理
BL
BEPI
BRPN BL 1
32
BRPN
7.5.4 ブロック・メモリ保護ブロック・メモリ保護ブロック・メモリ保護ブロック・メモリ保護
BAT
DSI ISI
128K
256M
☞ 7.6.4
BAT
PP PP
7-9 PP
表表表表 7-9 ブロックに対するアクセス保護制御ブロックに対するアクセス保護制御ブロックに対するアクセス保護制御ブロックに対するアクセス保護制御
PP アクセス許可アクセス許可アクセス許可アクセス許可
00
x1
10
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-33
7.5 ブロック・アドレス変換
PP=00
PP=x1
PP=10
• DSI DSISR 4
• ISI SRR1 4
☞ 6
7-10
BAT BAT
BAT
PP
Vs Vp BAT
表表表表 7-10 BAT アレイのアクセス保護サマリアレイのアクセス保護サマリアレイのアクセス保護サマリアレイのアクセス保護サマリ
Vs VpPP
フィーフィーフィーフィー
ルドルドルドルド
ブロック・タイプブロック・タイプブロック・タイプブロック・タイプユーザユーザユーザユーザ
読出し読出し読出し読出し
ユーザユーザユーザユーザ
書込み書込み書込み書込み
スーパバイザスーパバイザスーパバイザスーパバイザ
読出し読出し読出し読出し
スーパバイザスーパバイザスーパバイザスーパバイザ
書込み書込み書込み書込み
0 0 xx BAT
0 1 00
0 1 x1 √
0 1 10 √ √
1 0 00
1 0 x1 √
1 0 10 √ √
1 1 00
1 1 x1 √ √
1 1 10 √ √ √ √
注:注:注:注:「使用しない」は、アクセスが BAT アレイで変換されず、ページ・アドレス変換メカニズム(☞「7.6 メモリ・セグメント・モデル」参照)で変換されることを意味します。
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-34 Freescale Semiconductor
7.5 ブロック・アドレス変換
第7章
メモリ管理
BAT
7-9 dcbt
dcbtst
SRR1 DSISR ☞ 6
図図図図 7-9 ブロックのメモリ保護違反フローブロックのメモリ保護違反フローブロックのメモリ保護違反フローブロックのメモリ保護違反フロー
7.5.5 ブロック物理アドレスの生成ブロック物理アドレスの生成ブロック物理アドレスの生成ブロック物理アドレスの生成
BAT WIMG
☞ 5.3.1
DSI 例外�
ブロック・メモリ�保護違反�
DSISR[4]←1
アクセスを中止�
dcbt/dcbtst 命令�それ以外の場合�
命令アクセス� データ・アクセス�
SRR1[4] ←1
ISI 例外�
(図7-11から続く)�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-35
7.5 ブロック・アドレス変換
図図図図 7-10 ブロック物理アドレスの生成ブロック物理アドレスの生成ブロック物理アドレスの生成ブロック物理アドレスの生成
7.5.6 ブロック・アドレス変換サマリブロック・アドレス変換サマリブロック・アドレス変換サマリブロック・アドレス変換サマリ
7-11 7-3 BAT 32
7-5
物理ブロック番号�
実効アドレス�
物理アドレス�
11 ビット� 17 ビット�
11 ビット�
4 ビット�
11 ビット� 17 ビット�
OR
11 ビット� 17 ビット�
0 3 4 14 15 31
0 3 4 14 15 31
AND
ブロック・サイズ・�マスク�
0 . . . . . . . . . . . . . 1
4 ビット�
4 ビット�
7
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-36 Freescale Semiconductor
7.5 ブロック・アドレス変換
第7章
メモリ管理
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-37
図図図図 7-11 ブロック・アドレス変換フローブロック・アドレス変換フローブロック・アドレス変換フローブロック・アドレス変換フロー
下位BATレジスタのWIMGに従って、�メモリ・サブシステムで�アクセスを継続�
それ以外�読出しアクセス�
PP = 00で�
BAT アレイ・ヒット�
メモリ保護違反フロー�
(図7-9参照)�
PP=00またはPP=x1の�いずれかで書込みアクセス�
PA0–PA31 = BRPN (0–3) ||BRPN (4–14) OR((EA4–EA14) & (BL)) || EA15–EA31
7.6 メモリ・セグメント・モデル
7.6 メモリ・セグメント・モデルメモリ・セグメント・モデルメモリ・セグメント・モデルメモリ・セグメント・モデル
OEA 256M
4K
4K
52
☞ 7.5
2
1.
2.
7.6.1 セグメント内のアドレスの認識セグメント内のアドレスの認識セグメント内のアドレスの認識セグメント内のアドレスの認識
PTE
ID
PTE
OEA 2
•
•
☞ 7.8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-38 Freescale Semiconductor
7.6 メモリ・セグメント・モデル
第7章
メモリ管理
7-11 T
7.6.1.1 メモリ・セグメントの選択メモリ・セグメントの選択メモリ・セグメントの選択メモリ・セグメントの選択
MSR[IR]=0
MSR[DR]=0
☞ 7.4
T=0 BAT
PTE
I/O
I/O
7.6.1.2 直接ストア・セグメントの選択直接ストア・セグメントの選択直接ストア・セグメントの選択直接ストア・セグメントの選択
T=1
☞ 7.8
I/O
I/O I/O
表表表表 7-11 セグメント・ディスクリプタの種類セグメント・ディスクリプタの種類セグメント・ディスクリプタの種類セグメント・ディスクリプタの種類
セグメント・セグメント・セグメント・セグメント・
ディスクリプタのディスクリプタのディスクリプタのディスクリプタの T ビットビットビットビットセグメントの種類セグメントの種類セグメントの種類セグメントの種類
0
1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-39
7.6 メモリ・セグメント・モデル
7.6.2 ページ・アドレス変換の概要ページ・アドレス変換の概要ページ・アドレス変換の概要ページ・アドレス変換の概要
7-12
• 0 3
ID VSID
• 4 19
VSID VPN VPN
TLB PTE
PTE RPN
• 20 31
PTE RPN
図図図図 7-12 ページ・アドレス変換の概要ページ・アドレス変換の概要ページ・アドレス変換の概要ページ・アドレス変換の概要
52ビット仮想アドレス�
32ビット実効アドレス�
32ビット物理アドレス�
SR番号� API バイト・オフセット�(4 ビット) (6 ビット) (12 ビット)
仮想セグメント ID (VSID) ページ・インデックス� バイト・オフセット�(24 ビット) (16 ビット) (12 ビット)
物理ページ番号 (RPN) バイト・オフセット�(20 ビット) (12 ビット)
TLB/ページ�・テーブル�
ページ・インデックス�
PTE
0 3 4 19 20 31
セグメント・�レジスタ�
0 23 24 39 40 51
仮想ページ番号 (VPN)
0 19 20 31
(16ビット)
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-40 Freescale Semiconductor
7.6 メモリ・セグメント・モデル
第7章
メモリ管理
7.6.2.1 セグメント・ディスクリプタの定義セグメント・ディスクリプタの定義セグメント・ディスクリプタの定義セグメント・ディスクリプタの定義
T
T=1
☞ 7.8.1
7.6.2.1.1 セグメント・ディスクリプタの形式セグメント・ディスクリプタの形式セグメント・ディスクリプタの形式セグメント・ディスクリプタの形式
32 16
1 7-13 T=0
図図図図 7-13 ページ・アドレス変換に対するセグメント・レジスタの形式ページ・アドレス変換に対するセグメント・レジスタの形式ページ・アドレス変換に対するセグメント・レジスタの形式ページ・アドレス変換に対するセグメント・レジスタの形式
7-12
Ks Kp
OEA ☞ 7.6.4
7-12 ID
VPN
表表表表 7-12 ページ・アドレス変換に対するセグメント・レジスタのビット定義ページ・アドレス変換に対するセグメント・レジスタのビット定義ページ・アドレス変換に対するセグメント・レジスタのビット定義ページ・アドレス変換に対するセグメント・レジスタのビット定義
ビットビットビットビット 名 前名 前名 前名 前 説 明説 明説 明説 明
0 T T=0
1 Ks
2 Kp
3 N
4 7 —
8 31 VSID ID
0 1 2 3 4 7 8 31
T Ks Kp N 0 0 0 0 VSID
予約済み�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-41
7.6 メモリ・セグメント・モデル
7-5
☞ 2.3.17
☞ 8
7.6.2.2 ページ・テーブル・エントリ(ページ・テーブル・エントリ(ページ・テーブル・エントリ(ページ・テーブル・エントリ(PTE)の定義)の定義)の定義)の定義
PTE
☞ 7.7.1.3 OEA
64 PTE
• ID VPN
H V API PTE
PTE
• R C ☞ 7.6.3
• WIMG
• PP
☞ 7.6.4
TLB PTE
TLB PTE
TLB PTE
TLB
TLB
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-42 Freescale Semiconductor
7.6 メモリ・セグメント・モデル
第7章
メモリ管理
7.6.2.2.1 PTE の形式の形式の形式の形式
7-14 32 PTE 2
図図図図 7-14 ページ・テーブル・エントリ形式ページ・テーブル・エントリ形式ページ・テーブル・エントリ形式ページ・テーブル・エントリ形式
7-13 PTE
10 PTEG
PTEG PTE
PTE
10
PTEG PTE
表表表表 7-13 PTE のビット定義のビット定義のビット定義のビット定義
ワードワードワードワード ビットビットビットビット 名 前名 前名 前名 前 説 明説 明説 明説 明
0 0 V V=1 V=0
1 24 VSID ID
25 H
26 31 API
1 0 19 RPN
20 22 —
23 R
24 C
25 28 WIMG
29 —
30 31 PP
予約済み�
0 19 20 22 23 24 25 28 29 30 31
V VSID H API
0 1 24 25 26 31
RPN 000 R C WIMG 0 PP
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-43
7.6 メモリ・セグメント・モデル
7.6.3 ページ履歴の記録ページ履歴の記録ページ履歴の記録ページ履歴の記録
PTE R
C
BAT T=1
R C
MSR[IR]=1 MSR[DR]=1
7-14
TLB TLB R
C TLB
TLB C C
TLB R
R C 2
TLB
R C
☞ 7.7.3
R dcbt dcbtst
C
表表表表 7-14 履歴ビットを更新するテーブル検索処理履歴ビットを更新するテーブル検索処理履歴ビットを更新するテーブル検索処理履歴ビットを更新するテーブル検索処理
R ビット/ビット/ビット/ビット/
C ビットビットビットビットプロセッサの処理プロセッサの処理プロセッサの処理プロセッサの処理
00 RR C
01
10
C
11
7
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-44 Freescale Semiconductor
7.6 メモリ・セグメント・モデル
第7章
メモリ管理
7.6.3.1 参照ビット参照ビット参照ビット参照ビット
PTE
PTE TLB TLB
•
• lswx stswx
• stwcx.
•
7.6.3.2 変更ビット変更ビット変更ビット変更ビット
PTE TLB
PTE
TLB
TLB
TLB
0
PTE C
PTE
TLB
•
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-45
7.6 メモリ・セグメント・モデル
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-46 Freescale Semiconductor
•
•
C
• stwcx.
• stswx
• dcba dcbi
C
7.6.3.3 参照ビットと変更ビットの記録シナリオ参照ビットと変更ビットの記録シナリオ参照ビットと変更ビットの記録シナリオ参照ビットと変更ビットの記録シナリオ
OEA
R C WIMG
0b0010
R C
7.6 メモリ・セグメント・モデル
第7章
メモリ管理
7-15 R C
stwcx.
C
eciwx
ecowx
表表表表 7-15 保証された保証された保証された保証された R //// C ビット設定モデルビット設定モデルビット設定モデルビット設定モデル
優先優先優先優先
順位順位順位順位シナリオシナリオシナリオシナリオ
R ビットのビットのビットのビットの
セットセットセットセット
C ビットのビットのビットのビットの
セットセットセットセット
1
2
3
4 1
1 アーキテクチャでは順不同と呼びます。
2
2 C がセットされると R も必ずセットされます。
2
5 1 2
6 lswx
7 stswx 2 2
8 stwcx. 2 2
9 3
3 命令が投機的にフェッチされ、R がセットされなかった場合を含みます。
10 eciwx
11 ecowx dcbz dcba4
4 ターゲット・ブロックを変更しない dcba 命令では、いずれのビットもセットしないことがあります。
12 icbi dcbt dcbtst dcbst dcbf
13 dcbi 2 2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-47
7.6 メモリ・セグメント・モデル
7.6.3.4 メモリ・アクセスおよび参照ビットと変更ビットの更新の同期メモリ・アクセスおよび参照ビットと変更ビットの更新の同期メモリ・アクセスおよび参照ビットと変更ビットの更新の同期メモリ・アクセスおよび参照ビットと変更ビットの更新の同期
A
R C
• A sync A sync
• B
A TLB
A A
tlbie tlbsync
A tlbsync
7.6.4 ページ・メモリ保護ページ・メモリ保護ページ・メモリ保護ページ・メモリ保護
7-4
PP
☞
7.5.4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-48 Freescale Semiconductor
7.6 メモリ・セグメント・モデル
第7章
メモリ管理
• MSR[PR]
MSR[PR]=0
MSR[PR]=1
• Ks Kp
• PP
Ks Kp PP
• Ks Kp
• PP PTE
PP MSR[PR]
• 1
MSR[PR]=0 Ks
Kp
MSR[PR]=1 Kp Ks
Kp & MSR[PR]) | (Ks & MSR[PR]
• PP
7-16 N
Ks Kp
PP
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-49
7.6 メモリ・セグメント・モデル
7-17 7-17 =1 PP=00
=1 PP=01
PP=10 PP=11
ISI DSI
Ks Kp PP
Ks Kp 7-16
MSR[PR]
PTE Ks=0 Kp=1
PP 7-18
表表表表 7-16 キーによるアクセス保護制御キーによるアクセス保護制御キーによるアクセス保護制御キーによるアクセス保護制御
キーキーキーキー1
1 MSR[PR]の状態によって選択される Ksまたは Kp
PP2
2 PTE の PP 保護オプション・ビット
ページ・タイプページ・タイプページ・タイプページ・タイプ
0 00
0 01
0 10
0 11
1 00
1 01
1 10
1 11
表表表表 7-17 キーおよびキーおよびキーおよびキーおよび PP の組合せに対する例外条件の組合せに対する例外条件の組合せに対する例外条件の組合せに対する例外条件
キーキーキーキー PP 禁止アクセス禁止アクセス禁止アクセス禁止アクセス
0 0x
1 00
1 01
x 10
x 11
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-50 Freescale Semiconductor
7.6 メモリ・セグメント・モデル
第7章
メモリ管理
Ks=1 7-18
Kp=0
7-18
1
7-15
• DSI DSISR[4]
DSISR[6]
•
ISI SRR1[4]
ISI
SRR1[3]
7-15
N
ISI
☞ 6
表表表表 7-18 Ks=0 およびおよびおよびおよび Kp=1 の場合のの場合のの場合のの場合の PP ビットのアクセス保護エンコーディングビットのアクセス保護エンコーディングビットのアクセス保護エンコーディングビットのアクセス保護エンコーディング
PPフィーフィーフィーフィー
ルドルドルドルド
オプションオプションオプションオプションユーザ読出しユーザ読出しユーザ読出しユーザ読出し
(キー(キー(キー(キー =1))))ユーザ書込みユーザ書込みユーザ書込みユーザ書込み
(キー(キー(キー(キー =1))))スーパバイザスーパバイザスーパバイザスーパバイザ
読出し(キー読出し(キー読出し(キー読出し(キー =0))))スーパバイザスーパバイザスーパバイザスーパバイザ
書込み(キー書込み(キー書込み(キー書込み(キー =0))))
00 √ √
01 √ √ √
10 √ √ √ √
11 √ √
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-51
7.6 メモリ・セグメント・モデル
図図図図 7-15 ページのメモリ保護違反フローページのメモリ保護違反フローページのメモリ保護違反フローページのメモリ保護違反フロー
TLB
PTE TLB TLB
PTE
7.6.5 ページ・アドレス変換のまとめページ・アドレス変換のまとめページ・アドレス変換のまとめページ・アドレス変換のまとめ
7-16
N
7-4 TLB 7-4 TLB
☞ 7.7.2
7-17
7-16 TLB
TLB TLB
7-3 7-4
DSI 例外�
ページ・メモリ�保護違反�
DSISR[4] ←1
アクセスを中止�
dcbt/dcbtst 命令�それ以外の場合�
命令アクセス� データ・アクセス�
SRR1[4] ←1
ISI 例外�
セグメント・ディスクリプタの�Nビットがセット�
SRR1[3] ←1 それ以外の場合�
7
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-52 Freescale Semiconductor
7.6 メモリ・セグメント・モデル
第7章
メモリ管理
図図図図 7-16 ページ・アドレスの変換手順─ページ・アドレスの変換手順─ページ・アドレスの変換手順─ページ・アドレスの変換手順─ TLB ヒットヒットヒットヒット
(図7-25参照)�
(図7-17参照)�
TLBが�ヒットする場合�
実効アドレス�の生成�
ページ・テーブル�検索処理�
TLB エントリを無効化�
アクセスは許可�
ストア・アクセス�PTE [C] = 0で�
インプリメンテーション依存�注:�
PTEのWIMGビットに従って、�メモリ・サブシステムで�アクセスを継続�
PA0–PA31←RPN||A20–A31
ページ・メモリ�保護違反�
(図7-15参照)�
それ以外の場合�
それ以外の場合�
ページ・メモリ� 保護違反条件をチェック�
アクセスは禁止�
仮想アドレスと�TLB エントリを比較�
セグメント・ディスクリプタ�から52ビット仮想アドレス�
を生成�
ページ・�アドレス変換�
セグメント・ディスクリプタの�Nビットがセット(非実行)で�命令フェッチ��
��
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-53
7.6 メモリ・セグメント・モデル
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-54 Freescale Semiconductor
図図図図 7-17 ページ・アドレス変換に対するページ・メモリ保護違反条件ページ・アドレス変換に対するページ・メモリ保護違反条件ページ・アドレス変換に対するページ・メモリ保護違反条件ページ・アドレス変換に対するページ・メモリ保護違反条件
キーを選択:�MSR[PR]=0なら、キー=KsMSR[PR]=1なら、キー=Kp
ページ・メモリ�保護違反条件を�チェック�
アクセスは許可�
それ以外の場合�
キー || PP=100で�読出しアクセス�
キー || PP=011、100、101、111の�いずれかで書込みアクセス
アクセスは禁止� (図7-15参照)
7.7 ハッシュド・ページ・テーブル
第7章
メモリ管理
7.7 ハッシュド・ページ・テーブルハッシュド・ページ・テーブルハッシュド・ページ・テーブルハッシュド・ページ・テーブル
VPN PTE TLB TLB
TLB
PTE
PTE
M=1
MSR[DR]=0 M=1
MMU
7.7.1 ページ・テーブル定義ページ・テーブル定義ページ・テーブル定義ページ・テーブル定義
2 WIMG
0b0010
PTEG
32 1 PTEG 8
8 PTE PTEG 64
PTEG
7-18 PTE 2 PTEG
PTEGaddr1 PTEGaddr2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-55
7.7 ハッシュド・ページ・テーブル
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-56 Freescale Semiconductor
図図図図 7-18 ページ・テーブル定義ページ・テーブル定義ページ・テーブル定義ページ・テーブル定義
PTE 2 PTEG 1 PTEG 2 PTEG
PTEG PTE
PTE 16
PTE 1 2 PTEG
1 2 PTEG PTE
1
SDR1
1 PTEG
PTEG PTE 1
PTE 2 PTEG
2 PTEG PTE
8バイト�
PTE0 PTE1 PTE7 PTEG0
PTE0 PTE1 PTE7
PTE0 PTE1 PTE7
PTEGn
PTEGaddr1
PTEGaddr2
ページ・テーブル�
7.7 ハッシュド・ページ・テーブル
第7章
メモリ管理
PTE 16
1 PTEG 2
2 PTEG 16
2
1 PTE 2 PTE PTE 16
☞ 7.7.1.6
7.7.1.1 SDR1 レジスタの定義レジスタの定義レジスタの定義レジスタの定義
SDR1
SDR1 ☞ 2.3.17
SDR1
7-19 SDR
図図図図 7-19 SDR1 レジスタの形式レジスタの形式レジスタの形式レジスタの形式
7-19
表表表表 7-19 SDR1 レジスタのビット設定レジスタのビット設定レジスタのビット設定レジスタのビット設定
ビットビットビットビット 名 前名 前名 前名 前 説 明説 明説 明説 明
0 15 HTABORG
16 22
23 31 HTABMASK
0 0 0 0 0 0 0 0 0 0 0 0 0 HTABSIZE
予約済み�
0 45 46 58 59 63
HTABORG
0 0 0 0 0 0 0 HTABMASK
予約済み�
0 15 16 22 23 31
HTABORG
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-57
7.7 ハッシュド・ページ・テーブル
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-58 Freescale Semiconductor
SDR1 HTABORG 32
16
216 64K 32
HTABORG
2n 16 n 25 SDR1 HTABMASK
0b00...011...1 0 1
HTABMASK 1
10
HTABORG HTABMASK 1
0
16,384 214 64 PTEG
220 1M 14
10 4
HTABMASK 15
HTABORG 4 SDR[12-15] 0
2<4+10+6>=220=1M
7.7.1.2 ページ・テーブル・サイズページ・テーブル・サイズページ・テーブル・サイズページ・テーブル・サイズ
1 2 PTEG 16
7.7 ハッシュド・ページ・テーブル
第7章
メモリ管理
32
64K 64 210 PTEG
PTEG
1 PTEG 2 PTEG
7-20 32
HTABORG
HTABMASK 32
8M
64K
229 512M
229-212 4K =217 128K
2
216 PTEG 222
4M
表表表表 7-20 小の推奨ページ・テーブル・サイズ小の推奨ページ・テーブル・サイズ小の推奨ページ・テーブル・サイズ小の推奨ページ・テーブル・サイズ
メイン・メモリのメイン・メモリのメイン・メモリのメイン・メモリの
合計合計合計合計
推奨 小値推奨 小値推奨 小値推奨 小値 推奨 小値の設定推奨 小値の設定推奨 小値の設定推奨 小値の設定
ページ・ページ・ページ・ページ・
テーブルのメモリテーブルのメモリテーブルのメモリテーブルのメモリ
マッピングさマッピングさマッピングさマッピングさ
れるページれるページれるページれるページ
((((PTE)数)数)数)数
PTEG 数数数数
HTABORG(マスク可能(マスク可能(マスク可能(マスク可能
ビットビットビットビット
7 ~~~~ 15))))
HTABMASK
8M (223) 64 K (216) 213 210 x xxxx xxxx 0 0000 0000
16M (224) 128 K (217) 214 211 x xxxx xxx0 0 0000 0001
32M (225) 256 K (218) 215 212 x xxxx xx00 0 0000 0011
64M (226) 512 K (219) 216 213 x xxxx x000 0 0000 0111
128M (227) 1 M (220) 217 214 x xxxx 0000 0 0000 1111
256M (228) 2 M (221) 218 215 x xxx0 0000 0 0001 1111
512M (229) 4 M (222) 219 216 x xx00 0000 0 0011 1111
1 G (230) 8 M (223) 220 217 x x000 0000 0 0111 1111
2 G (231) 16 M (224) 221 218 x 0000 0000 0 1111 1111
4 G (232) 32 M (225) 222 219 0 0000 0000 1 1111 1111
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-59
7.7 ハッシュド・ページ・テーブル
7.7.1.3 ページ・テーブルのハッシュ関数ページ・テーブルのハッシュ関数ページ・テーブルのハッシュ関数ページ・テーブルのハッシュ関数
MMU 1
2 2 PTE
2 PTE
PTEG 2 PTEG
PTE 8 1
PTE 2 2 PTEG
2
PTE PTE
PTE 2 PTEG
PTE 1 2 PTEG
TLB TLB
PTE TLB
PTEG SDR1 HTABORG
1 PTEG 1 2 PTEG
2 HTABMASK
PTEG
7-20 OEA 32
1
VSID 19 52 5 23
24 39 3 2
XOR 1 1
2 1 1
2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-60 Freescale Semiconductor
7.7 ハッシュド・ページ・テーブル
第7章
メモリ管理
図図図図 7-20 ページ・テーブルのハッシュ関数ページ・テーブルのハッシュ関数ページ・テーブルのハッシュ関数ページ・テーブルのハッシュ関数
7.7.1.4 ページ・テーブル・アドレスページ・テーブル・アドレスページ・テーブル・アドレスページ・テーブル・アドレス
2 VSID
1 2
PTEG 1 2
☞ 7.7.1.3
(セグメント・レジスタの)VSIDの下位19ビット
VA5 VA23
4 19
1次ハッシュ:�
XOR
ハッシュ関数1の出力�
0 98
18
=
2次ハッシュ:
ハッシュ値1
0 18
ハッシュ関数2の出力
0 98
18
�ハッシュ値1
ハッシュ値2
1の補数関数
0 0 0 ページ・インデックス(仮想アドレス・ビット24~39または実効アドレス・ビット4~19)
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-61
7.7 ハッシュド・ページ・テーブル
MSR[DR]=1 MSR[IR]=1
BAT SDR1
☞ 7.3.1.1
32
SDR1[HTABORG]
PTEG 7 15
SDR1[HTABMASK] SDR1[HTABORG]
OR PTEG
16 25 10 PTEG
26 31 PTE 1 PTEG
8 PTE 2 PTEG 8 PTE
7-21 32
PTEG
7
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-62 Freescale Semiconductor
7.7 ハッシュド・ページ・テーブル
第7章
メモリ管理
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-63
図図図図 7-21 ページ・テーブルのアドレス生成ページ・テーブルのアドレス生成ページ・テーブルのアドレス生成ページ・テーブルのアドレス生成
仮想セグメントID(24ビット)
API(6ビット)�
バイト・オフセット�(12ビット)�
仮想ページ番号(VPN)
ページ・テーブル�
(3ビット)
0 4 5 23 24 29 30 39 40 51
SDR1
xxxx xx . . . . . . 00 00 . . . . 011. . .1(16ビット)� (9ビット)�
0 6 7 15 16 22 23 31 0 8 9 18
ページ・テーブル・エントリの32ビット物理アドレス
PTE0
64バイト�
52ビット仮想アドレス
PTE78バイト�
32ビット物理アドレス�
VSID API(24ビット)� (6ビット)�
V H
物理ページ番号(RPN)�(20ビット)�
0 1 9 23 25 29 31
WIMG
AND
OR
(7ビット)�(9ビット)� (10ビット)�
RPN バイト・オフセット�(20ビット)� (12ビット)�
(16ビット)�
ハッシュ関数�
ハッシュ値�(19ビット)�
PTEG0
PTEGn
ページ・インデックス(16ビット)
マスク�
0 6 7 15 16 25 26 31
PTEG選択�
PP
PTE0 1 24 25 26 31
9ビット� 10ビット�
0 0 0 0 0 0 0
000 0
0 0 0
0 0 0 0 0 0(6ビット)�
ベース・�アドレス�
CR
7.7 ハッシュド・ページ・テーブル
7.7.1.5 ページ・テーブル構造サマリページ・テーブル構造サマリページ・テーブル構造サマリページ・テーブル構造サマリ
PTE ☞ 7.6.2.2
PTE
VSID API
PTE
V H
PTE V
H
PTE
• 1 PTEG H=0
• 2 PTEG H=1
PTE 7-21 7-22
8 PTE 1 PTEG
16 PTE
1 PTEG 1 PTE0 PTE7
2 PTEG 2 PTE0 PTE7
PTE VSID API
V H
PTE
PTE
PTE
PTE
1 PTEG
PTE0 PTE1 PTE
PTEG 8
PTE 2 PTEG 2 PTEG PTE0
PTE PTEG
PTE 2 PTEG
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-64 Freescale Semiconductor
7.7 ハッシュド・ページ・テーブル
第7章
メモリ管理
RPN WIMG PP
R C PTE
PTE 1 R C
PTE PTE RPN
WIMG PP
R C
H
PTE 1 PTEG 2 PTEG
7.7.1.6 ページ・テーブル構造の例ページ・テーブル構造の例ページ・テーブル構造の例ページ・テーブル構造の例
7-22
SDR1[HTABORG] 16
SDR1[HTABORG] 0 13
HTABMASK 2 1 HTABORG 14
15
PTEG 14 25 0 13
4096 PTEG
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-65
7.7 ハッシュド・ページ・テーブル
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-66 Freescale Semiconductor
図図図図 7-22 ページ・テーブルの構造例ページ・テーブルの構造例ページ・テーブルの構造例ページ・テーブルの構造例
PTE0 PTE1 PTE7 PTEG0
PTE0 PTE1 PTE7
PTE0 PTE1 PTE7
PTEG4095
PTEGaddr1
PTEGaddr2
ページ・テーブル�
例:�
与えられた値:�SDR1 1010 0110 0000 0000 0000 0000 0000 0011
0 15 23 31
ベース・アドレス�
$A600 0000
PTEGaddr1 = 1010 0110 0000 00mm aaaa aaaa aa00 0000
0 14 25 31
PTEGaddr2= 1010 0110 0000 00nn bbbb bbbb bb00 0000
0 14 25 31
HTABORG HTABMASK
7.7 ハッシュド・ページ・テーブル
第7章
メモリ管理
2 PTEG PTEGaddr1 PTEGaddr2
PTEG 14 25
26 31 PTEG PTE0
PTEGaddr2 b PTEGaddr1 a 1
n m 1 2
7 8 HTABORG 14 15
OR
PTEGaddr1 14 25 1
PTEGaddr2 2 PTEG
PTEGaddr2 14 25
1
PTEGaddr1 2 PTEG
PTEG PTEG
1 PTEG
2 PTEG
PTE 1 2 PTE H
PTEG 1 PTEG PTE 2
PTEG PTE 1 PTEG H=0
PTE 2 PTEG H=1 PTE
7.7.1.7 PTEG アドレス・マッピングの例アドレス・マッピングの例アドレス・マッピングの例アドレス・マッピングの例
PTE
1 PTEG
PTEG
7-23 32 PTEG
SDR1 0x0F98_0000 8192 PTEG
4
0 SR0 SR0
4 31 52
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-67
7.7 ハッシュド・ページ・テーブル
1 PTEG 5 23
24 39 1 XOR
1 1 13 HTABORG
13 6 0 1 PTEG
0x0F9F_F980
図図図図 7-23 1 次次次次 PTEG アドレスの生成例アドレスの生成例アドレスの生成例アドレスの生成例
7-24 2 PTEG 2 PTEG
2 2 13
HTABORG 13 15 16 OR
6 0 2 PTEG 0x0F98_0640
例:�
与えられた値:�SDR1 0000 1111 1001 1000 0000 0000 0000 0111
0 15 23 31HTABORG HTABMASK
0000 0000 1111 1111 1010 0000 0001 1011
0 4 19 20 31
EA =
SR0
セグメント・レジスタ選択�
0010 0000 1100 1010 0111 0000 0001 1100
0xC A 7 0 1 C
8 31
1100 1010 0111 0000 0001 1100 0000 1111 1111 1010 0000 0001 1011
5 23 24 39
仮想アドレス�
バイト・オフセット�
ページ・インデックス�VSID
1次ハッシュ: 010 0111 0000 0001 1100
XOR
000 0000 1111 1111 1010ハッシュ値1 010 0111 1111 1110 0110
9ビット� 10ビット�
0000 1111 1001 1111 1111 1001 1000 0000
x’ 0 F 9 F F 9 8 0’
1次PTEGアドレス:�
PTE0から開始HTABORG 12 16 25
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-68 Freescale Semiconductor
7.7 ハッシュド・ページ・テーブル
第7章
メモリ管理
7-21 32
10 PTEG
PTE
API
10 PTE
1 2 PTEG
6 32
API PTEG PTE API
PTE PTE
図図図図 7-24 2 次次次次 PTEG アドレスの生成例アドレスの生成例アドレスの生成例アドレスの生成例
ハッシュ値2: 101 1000 0000 0001 1001
2次PTEGアドレス:
0000 1111 1001 1000 0000 0110 0100 0000
0x 0 F 9 8 0 6 4 0
9ビット� 10ビット�
1)最初に0x0F9F_F980で� 8つのPTEを比較
2)次に必要に応じて� 0x0F98_0640で8つの� PTEを比較
HTABORG
0x0F98_0000
0x0F98_0640
0x0F9F_F980
PTEG0
PTEG25
PTEG8166
PTEG8191
010 0111 1111 1110 0110
1の補数
2次ハッシュ:
010 0111 1111 1110 0110ハッシュ値1:
PTE0から開始
PTE0 PTE7
PTE0 PTE7
12 16 25
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-69
7.7 ハッシュド・ページ・テーブル
PTEG
PTEG 1 2 PTEG
☞ 7.7.1.6
24 26 PTEG
8
1 PTEG
API PTEG
PTE
1 2
PTEG
7.7.2 ページ・テーブル検索処理ページ・テーブル検索処理ページ・テーブル検索処理ページ・テーブル検索処理
32
1. 1 2 PTEG 32 ☞ 7.7.1.4
2. 1 PTEG 2 PTEG 16 PTE
PTE
WIM 0b001
3. PTEG PTE VPN
VPN
VSID
1 PTEG PTE[H]=0 2 PETG PTE[H]=1
PTE[V]=1
PTE[VSID]=VA[0-23]
PTE[API]=VA[24-29]
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-70 Freescale Semiconductor
7.7 ハッシュド・ページ・テーブル
第7章
メモリ管理
4. 1 PTEG 8 PTE 2 PTEG 8 PTE
8
5.
PTE[RPN]
PTE[WIMG]
PTE[PP]
6. 5
R C
R C 1
7. PTE TLB
PTE R
C
8. 1 2 PTEG
ISI DSI
WIMG=0b0010
7.7.2.1 ページ・テーブル検索処理のフローページ・テーブル検索処理のフローページ・テーブル検索処理のフローページ・テーブル検索処理のフロー
7-25 TLB
TLB TLB
7-25 R
C
R C 7-15
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-71
7.7 ハッシュド・ページ・テーブル
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-72 Freescale Semiconductor
図図図図 7-25 ページ・テーブル検索のフローページ・テーブル検索のフローページ・テーブル検索のフローページ・テーブル検索のフロー
それ以外の場合�
それ以外の場合�
PTE[R]を更新�(必要な場合)
1次と2次のPTEGの�アドレスを生成
ページ・テーブル�検索�
次のPTEを読み出す�ようにPAを調整
物理アドレスからPTEを�フェッチ
PTE [VSID, API, V] = Seg Desc [VSID], EA[API], 1PTE [H] = 0(1次PTEG)またはPTE [H] = 1(2次PTEG)
変換は未定義�
PTEをTLBに�書込み
メモリ保護違反条件を�チェック
それ以外の場合�
一致PTEの�R/Cビットも不定
DSI例外�ISI例外�
SRR1[1] ← 1 DSISR[1] ← 1
データ・アクセス� 命令アクセス�
アクセスは許可� アクセスは禁止
ページ・テーブル�検索を完了�
それ以外の場合�PTE[C] = 0で�ストア・オペレーション�
ページ・メモリ�保護違反
TLB[PTE[C]] ← 1
ページ・テーブル�検索を完了�
PTE[C] ← 1(メモリ内のPTE[C]を更新)
すべての一致PTEで�PTE[RPN、WIMG、PP]が等しい
16個すべてのPTEを�チェック�
(図7-17参照)
(図7-15参照)
ページ・�フォルト�
注:�
インプリメンテーション依存�
7.7 ハッシュド・ページ・テーブル
第7章
メモリ管理
7.7.3 ページ・テーブルの更新ページ・テーブルの更新ページ・テーブルの更新ページ・テーブルの更新
• PTE
• PTE
PTE
PTE
PTE PTEG
PTE
PTEG PTE
lwarx stwcx.
☞ D
TLB
PTE TLB tlbie TLB
tlbie tlbie
OEA TLB
tlbsync
tlbsync
tlbsync sync
tlbsync
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-73
7.7 ハッシュド・ページ・テーブル
PTE tlbie
tlbsync eieio tlbsync
sync
tlbie
TLB
PTE V=1
PTE
R C
PTE
PTE
MMU ☞ 2.3.17
7.7.3.1 ページ・テーブル・エントリの登録ページ・テーブル・エントリの登録ページ・テーブル・エントリの登録ページ・テーブル・エントリの登録
PTE PTE
sync
lock(PTE)
PTE[RPN,R,C,WIMG,RP] ← 新しい値
eieio /* 2つ目の前に 初の PTEの更新を指示
PTE[VSID,H,API,V] ← 新しい値(V= 1)
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-74 Freescale Semiconductor
7.7 ハッシュド・ページ・テーブル
第7章
メモリ管理
sync /*更新の完了を保証
unlock(PTE)
7.7.3.2 ページ・テーブル・エントリの削除ページ・テーブル・エントリの削除ページ・テーブル・エントリの削除ページ・テーブル・エントリの削除
TLB
tlbsync sync
lock(PTE)
PTE[V] ← 0 /* (他のフィールドは無関係)
sync /* 更新の完了を保証
tlbie(old_PTE) /* 古い変換を無効にする
eieio /* tlbsyncの前に tlbieを指示
tlbsync /* 全プロセッサで tlbieの完了を保証
sync /* tlbsyncの完了を保証
unlock(PTE)
7.7.4 セグメント・レジスタの更新セグメント・レジスタの更新セグメント・レジスタの更新セグメント・レジスタの更新
Move to Segment Register ☞ 2.3.17
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-75
7.8 直接ストア・セグメントのアドレス変換
7.8 直接ストア・セグメントのアドレス変換直接ストア・セグメントのアドレス変換直接ストア・セグメントのアドレス変換直接ストア・セグメントのアドレス変換
BAT
T=1
I/O
POWER
I/O
I/O
7.8.1 直接ストア・セグメントのセグメント・ディスクリプタ直接ストア・セグメントのセグメント・ディスクリプタ直接ストア・セグメントのセグメント・ディスクリプタ直接ストア・セグメントのセグメント・ディスクリプタ
T
32
16 1
7-26 T
図図図図 7-26 直接ストア・セグメントのセグメント・レジスタ形式直接ストア・セグメントのセグメント・レジスタ形式直接ストア・セグメントのセグメント・レジスタ形式直接ストア・セグメントのセグメント・レジスタ形式
7-21 32 T
T Ks Kp BUID CNTLR_SPEC
0 1 2 3 11 12 31
7
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-76 Freescale Semiconductor
7.8 直接ストア・セグメントのアドレス変換
第7章
メモリ管理
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-77
7.8.2 直接ストア・セグメント・アクセス直接ストア・セグメント・アクセス直接ストア・セグメント・アクセス直接ストア・セグメント・アクセス
T=1
WIMG 0b0101
OEA
MMU
• Kx 1 Ks Kp
MSR[PR]=0 Ks
Kp
MSR[PR]=1 Kp Ks
•
•
表表表表 7-21 直接ストア・セグメントのセグメント・レジスタのビット定義直接ストア・セグメントのセグメント・レジスタのビット定義直接ストア・セグメントのセグメント・レジスタのビット定義直接ストア・セグメントのセグメント・レジスタのビット定義
ビットビットビットビット 名 前名 前名 前名 前 説 明説 明説 明説 明
0 T T=1
1 Ks
2 Kp
3 11 BUID ID
12 31 CNTLR_SPEC I/O
7.8 直接ストア・セグメントのアドレス変換
7.8.3 直接ストア・セグメント保護直接ストア・セグメント保護直接ストア・セグメント保護直接ストア・セグメント保護
☞ 7.6.4
Ks Kp
7.8.4 直接ストア・セグメントでサポートされない命令直接ストア・セグメントでサポートされない命令直接ストア・セグメントでサポートされない命令直接ストア・セグメントでサポートされない命令
T=1
DSI
• lwarx
• stwcx.
• eciwx
• ecowx
7.8.5 直接ストア・セグメントに効果のない命令直接ストア・セグメントに効果のない命令直接ストア・セグメントに効果のない命令直接ストア・セグメントに効果のない命令
T=1
• dcba
• dcbt
• dcbtst
• dcbf
• dcbi
• dcbst
• dcbz
• icbi
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-78 Freescale Semiconductor
7.8 直接ストア・セグメントのアドレス変換
第7章
メモリ管理
7.8.6 直接ストア・セグメント変換のサマリ・フロー直接ストア・セグメント変換のサマリ・フロー直接ストア・セグメント変換のサマリ・フロー直接ストア・セグメント変換のサマリ・フロー
7-27 MMU
7-4
eciwx ecowx lwarx stwcx.
DSISR DSI
図図図図 7-27 直接ストア・セグメントの変換フロー直接ストア・セグメントの変換フロー直接ストア・セグメントの変換フロー直接ストア・セグメントの変換フロー
直接ストア・インタフェース・�アクセスを実行�
データ・アクセス�命令アクセス�
直接ストア・�セグメント変換�
T = 1
それ以外の場合�
浮動小数点�ロード/ストア�
アラインメント例外�
それ以外の場合�
キャッシュ命令(dcbt、dcbtst、�dcbf、dcbi、dcbst、dcbz、�またはicbi)��
ノー・オペレーション�
それ以外の場合�
DSI例外または�境界未定義な結果�
ISI例外�
DSISR[5] ← 1
eciwx、ecowx、lwarx,ldarx、またはstwcx. 命令�
SRR1[3] ← 1
注:�
インプリメンテーション依存�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 7-79
7.8 直接ストア・セグメントのアドレス変換
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
7-80 Freescale Semiconductor
第8章
命令セット
第第第第 8 章章章章 命令セット命令セット命令セット命令セット
UISA VEA OEA
32
☞ 4
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-1
8.1 命令形式
8.1 命令形式命令形式命令形式命令形式
4
2
2
0 5 1
1
☞
4
8.1.1 分割フィールドの表記分割フィールドの表記分割フィールドの表記分割フィールドの表記
8-1
spr tbr
MB ME SH 8-2
表表表表 8-1 分割フィールドの表記および規約分割フィールドの表記および規約分割フィールドの表記および規約分割フィールドの表記および規約
フィールドフィールドフィールドフィールド 説 明説 明説 明説 明
spr (11–20) mtspr mfspr spr
tbr (11–20) TBL TBU
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-2 Freescale Semiconductor
8.1 命令形式
第8章
命令セット
8.1.2 命令フィールド命令フィールド命令フィールド命令フィールド
8-2
表表表表 8-2 命令構文の規約命令構文の規約命令構文の規約命令構文の規約
フィールドフィールドフィールドフィールド 説 明説 明説 明説 明
AA 300 CIA
CIA 8-332 LI
32 BD1 EA
32 LI 32 BD
BD 16 29 0b00 32 14 2
BI 11 15 CR
BO 6 10 ☞ 4.2.4.2
crbA 11 15 CR
crbB 16 20 CR
crbD 6 10 CR FPSCR
crfD 6 8 CR FPSCR 1
crfS 11 13 CR FPSCR 1
CRM 12 19 mtcrf CR
d 16 31 32 16 2
FM 7 14 mtfsf FPSCR
frA 1 15 FPR
frB 16 20 FPR
frC 21 25 FPR
frD 6 10 FPR
frS 6 10 FPR
IMM 16 19 FPSCR
LI 6 29 0b00 32 24 2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-3
8.1 命令形式
LK 3101
MB 21 25
ME 26 30
32 ☞ 4.2.1.4
NB 16 20
OE 21 XER OV SO
OPCD 0 5 1
rA 11 15 GPR
rB 16 20 GPR
Rc 3101
CR[0-2] CR[3]XER[SO]
EQ CR[4-7]
rD 6 10 GPR
rS 6 10 GPR
SH 16 20
SIMM 1631
16
SR 12 15 16 1
TO 6 10 ☞ 4.2.4.6
U IM M 1631
16
XO 21 30,22 30,26 30
表表表表 8-2 命令構文の規約(続き)命令構文の規約(続き)命令構文の規約(続き)命令構文の規約(続き)
フィールドフィールドフィールドフィールド 説 明説 明説 明説 明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-4 Freescale Semiconductor
8.1 命令形式
第8章
命令セット
8.1.3 表記と規約表記と規約表記と規約表記と規約
8-3
表表表表 8-3 疑似コードの表記と規約疑似コードの表記と規約疑似コードの表記と規約疑似コードの表記と規約
表記/規約表記/規約表記/規約表記/規約 意 味意 味意 味意 味
iea
NOT
*
+ 2
– 2
=
. .
c c XER[CA]
e e XER[CA]XER[CA]
o o XER[OV]CR0[OV] CR1[SO]
U U
?
& | AND OR
2 010 111=010111
⊕ OR a b = a ⊕ b
0bnnnn 2
0xnnnn 16
(n)x n x x n-1 (n)0 (n)1(n)0 n 0 (5)0=0b00000(n)1 n 1 (5)1=0b11111
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-5
8.1 命令形式
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-6 Freescale Semiconductor
(rA|0) rA 1 31 rA rA 0 0
(rX) rX
x[n] n x
xn x n
ABS(x) x
CEIL(x) x
CIA
32NIA LK=1
Clear n
Clear left and shift left
b n
Cleared 0
Do
To byWhile
DOUBLE(x) x
Extract b n
EXTS(x) x
GPR(x) x
if...then...else else
Insert nb
Leave Do leave do
表表表表 8-3 疑似コードの表記と規約(続き)疑似コードの表記と規約(続き)疑似コードの表記と規約(続き)疑似コードの表記と規約(続き)
表記/規約表記/規約表記/規約表記/規約 意 味意 味意 味意 味
8.1 命令形式
第8章
命令セット
8-4
MASK(x,y) x y 1 0 x y
MEM(x,y) x y
NIA 32NIA
CIA+4
OEA
Rotate n
ROTL[64](x,y) 64 x y
ROTL[32](x,y) 64 x||x y x 32
Set 1
Shift n
SINGLE(x) x
SPR(x) x
TRAP
UISA
VEA
表表表表 8-4 命令フィールドの規約命令フィールドの規約命令フィールドの規約命令フィールドの規約
アーキテクチャ仕様アーキテクチャ仕様アーキテクチャ仕様アーキテクチャ仕様 本章の記述本章の記述本章の記述本章の記述
BA, BB, BT crbA, crbB, crbD
BF, BFA crfD, crfS
D d
DS ds
表表表表 8-3 疑似コードの表記と規約(続き)疑似コードの表記と規約(続き)疑似コードの表記と規約(続き)疑似コードの表記と規約(続き)
表記/規約表記/規約表記/規約表記/規約 意 味意 味意 味意 味
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-7
8.1 命令形式
8-5
-
a - b - c = a - b - c
8-5
FLM FM
FRA, FRB, FRC, FRT, FRS frA, frB, frC, frD, frS
FXM CRM
RA, RB, RT, RS rA, rB, rD, rS
SI SIMM
U IMM
UI UIMM
/, //, /// 0...0
表表表表 8-5 優先順位の規則優先順位の規則優先順位の規則優先順位の規則
優先順位優先順位優先順位優先順位 演算子演算子演算子演算子 結合順序結合順序結合順序結合順序
x[n]
(n)x x(n)
-
*
+ -
=U U ?
& #
-
iea
表表表表 8-4 命令フィールドの規約命令フィールドの規約命令フィールドの規約命令フィールドの規約
アーキテクチャ仕様アーキテクチャ仕様アーキテクチャ仕様アーキテクチャ仕様 本章の記述本章の記述本章の記述本章の記述
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-8 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
8.2 命令セット命令セット命令セット命令セット
8-1
図図図図 8-1 命令の説明命令の説明命令の説明命令の説明
命令名�
命令の構文�
対応するPOWERアーキテクチャ準拠の�ニーモニック�
命令エンコーディング�
命令オペレーションの説明�
命令によって変更されるレジスタ�
クィック・リファレンスの凡例�
addx addxAdd
add D,rA,rB (OE = 0 Rc = 0)add. D,rA,rB (OE = 0 Rc = 1) addo r
rD,rA,rB (OE = 1 Rc = 0)
addo. rD,rA,rB (OE = 1 Rc = 1) [POWERアーキテクチャ準拠ニーモニック�:�cax, cax., caxo, caxo.]
rD (rA) + (rB)
(�rA)�+(�rB)を�rDに格納します�。�
他の変更レジスタ�:�
• コンディション�・�レジスタ�(�CR0フィールド�)�:�
変更ビット�:�LT、�GT、�EQ、�SO (�Rc=1の場合�)�
注:�注:�注:�注:�CR0フィ�ール�ドは�、�オ�ーバ�フロ�ーの�発生�時に�は無�限に�プリ�サイ�ス�
の結果を示しません�(�次�の�XERの説明参照�)�。�
XER:�
変更ビット�:�SO、�OV (�OE=1の場合�)�
0 5 6 10 11 15 16 20 21 22
31 D A B OE 266 Rc
アーキテクチャ・レベル スーパバイザ・レベル オプション 形式
UISA XO
命令オペレーションの�疑似コード記述
r
←
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-9
8.2 命令セット
8
aA
ddx addxdd
add rD,rA,rB (OE = 0 Rc = 0)add. rD,rA,rB (OE = 0 Rc = 1) addo rD,rA,rB (OE = 1 Rc = 0) addo. rD,rA,rB (OE = 1 Rc = 1) [POWER cax, cax., caxo, caxo.]
rD ← (rA) + (rB)
rA + rB rD
add
• CR0
LT GT EQ SO Rc=1
CR0
XER
• XER
SO OV OE=1
0 5 6 10 11 15 16 20 21 22 30 31
31 D A B OE 266 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-10 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
addcx addcxAdd Carrying
addc rD,rA,rB (OE = 0 Rc = 0)addc. rD,rA,rB (OE = 0 Rc = 1) addco rD,rA,rB (OE = 1 Rc = 0) addco. rD,rA,rB (OE = 1 Rc = 1) [POWER a, a., ao, ao.]
rD ← (rA) + (rB)
rA + rB rD
• CR0
LT GT EQ SO Rc=1
CR0
XER
• XER
CA
SO OV OE=1
0 5 6 10 11 15 16 20 21 22 30 31
31 D A B OE 10 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-11
8.2 命令セット
8
aA
ddex addexdd Extended
adde rD,rA,rB (OE = 0 Rc = 0) adde. rD,rA,rB (OE = 0 Rc = 1) addeo rD,rA,rB (OE = 1 Rc = 0) addeo. rD,rA,rB (OE = 1 Rc = 1) [POWER ae, ae., aeo, aeo.]
rD ← (rA) + (rB) + XER[CA]
rA + rB + XER[CA] rD
• CR0
LT GT EQ SO Rc=1
CR0
XER
• XER
CA
SO OV OE=1
0 5 6 10 11 15 16 20 21 22 30 31
31 D A B OE 138 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-12 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
addi addiAdd Immediate
addi rD,rA,SIMM [POWER cal]
if rA = 0 then rD ← EXTS(SIMM)else rD ← rA + EXTS(SIMM)
rA|0 + SIMM rD
addi
addi rA=0 GPR0 0
•
li rD,value = addi rD,0,value
la rD,disp(rA) = addi rD,rA,disp
subi rD,rA,value = addi rD,rA,–value
0 5 6 10 11 15 16 31
14 D A SIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-13
8.2 命令セット
8
aA
ddic addicdd Immediate Carrying
addic rD,rA,SIMM[POWER ai]
rD ← (rA) + EXTS(SIMM)
rA + SIMM rD
• XER
CA
subic rD,rA,value = addic rD,rA,–value
0 5 6 10 11 15 16 31
12 D A SIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-14 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
addic. addic.Add Immediate Carrying and Record
addic. rD,rA,SIMM[POWER ai.]
rD ← (rA) + EXTS(SIMM)
rA + SIMM rD
• CR0
LT GT EQ SO
CR0
XER
• XER
CA
subic. rD,rA,value = addic. rD,rA,–value
0 5 6 10 11 15 16 31
13 D A SIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-15
8.2 命令セット
8
aA
ddis addisdd Immediate Shifted
addis rD,rA,SIMM[POWER cau]
if rA = 0 then rD ← EXTS(SIMM || (16)0)
else rD ← (rA) + EXTS(SIMM || (16)0)
rA|0 + SIMM||0x0000 rD
addis
addis rA=0 GPR0 0
•
lis rD,value = addis rD,0,value
subis rD,rA,value = addis rD,rA,–value
0 5 6 10 11 15 16 31
15 D A SIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-16 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
addmex addmexAdd to Minus One Extended
addme rD,rA (OE = 0 Rc = 0)addme. rD,rA (OE = 0 Rc = 1)addmeo rD,rA (OE = 1 Rc = 0)addmeo. rD,rA (OE = 1 Rc = 1)[POWER ame, ame., ameo, ameo.]
rD ← (rA) + XER[CA] – 1
rA + XER[CA] + 0xFFFF_FFFF rD
• CR0
LT GT EQ SO Rc=1
CR0
XER
• XER
CA
SO OV OE=1
0 5 6 10 11 15 16 20 21 22 30 31
予約済み�
31 D A 0 0 0 0 0 OE 234 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-17
8.2 命令セット
8
aA
ddzex addzexdd to Zero Extended
addze rD,rA (OE = 0 Rc = 0)addze. rD,rA (OE = 0 Rc = 1)addzeo rD,rA (OE = 1 Rc = 0)addzeo. rD,rA (OE = 1 Rc = 1)[POWER aze, aze., azeo, azeo.]
rD ← (rA) + XER[CA]
rA + XER[CA] rD
• CR0
LT GT EQ SO Rc=1
CR0
XER
• XER
CA
SO OV OE=1
0 5 6 10 11 15 16 20 21 22 30 31
予約済み�
31 D A 0 0 0 0 0 OE 202 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-18 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
andx andxAND
and rA,rS,rB (Rc = 0)and. rA,rS,rB (Rc = 1)
rA ← (rS) & (rB)
rS rB AND rA
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 20 21 30 31
31 S A B 28 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-19
8.2 命令セット
8
aA
ndcx andcxND with Complement
andc rA,rS,rB (Rc = 0)andc. rA,rS,rB (Rc = 1)
rA ← (rS) + ¬ (rB)
rS rB 1 AND rA
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 20 21 30 31
31 S A B 60 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-20 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
andi. andi.AND Immediate
andi. rA,rS,UIMM[POWER andil.]
rA ← (rS) & ((16)0 || UIMM)
rS 0x0000||UIMM AND rA
• CR0
LT GT EQ SO
0 5 6 10 11 15 16 31
28 S A UIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-21
8.2 命令セット
8
aA
ndis. andis.ND Immediate Shifted
andi. rA,rS,UIMM[POWER andiu.]
rA ← (rS) & (UIMM || (16)0)
rS UIMM||0x0000 AND rA
• CR0
LT GT EQ SO
0 5 6 10 11 15 16 31
29 S A UIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-22 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-23
bx bxBranch
b target_addr (AA = 0 LK = 0)ba target_addr (AA = 1 LK = 0)bl target_addr (AA = 0 LK = 1)bla target_addr (AA = 1 LK = 1)
if AA then NIA ←iea EXTS(LI || 0b00)
else NIA ←iea CIA + EXTS(LI || 0b00)
if LK then LR ←iea CIA + 4
target_addr
AA=0 LI||0b00
AA=1 LI||0b00
LK=1 EA LR
LR LK=1
0 5 6 29 30 31
18 LI AA LK
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA I
8.2 命令セット
bcx bcxBranch Conditional
bc BO,BI,target_addr (AA = 0 LK = 0)bca BO,BI,target_addr (AA = 1 LK = 0)bcl BO,BI,target_addr (AA = 0 LK = 1)bcla BO,BI,target_addr (AA = 1 LK = 1)
if LK then LR ←iea CIA + 4
if ¬ BO[2] then CTR ← CTR – 1
ctr_ok ← BO[2] | ((CTR ≠ 0) ⊕ BO[3])cond_ok ← BO[0] | (CR[BI] ≡ BO[1])if ctr_ok & cond_ok then
if AA then NIA ←iea EXTS(BD || 0b00)
else NIA ←iea CIA + EXTS(BD || 0b00)
BI CR 8-6
表表表表 8-6 CR フィールドに対するフィールドに対するフィールドに対するフィールドに対する BI オペランドの設定オペランドの設定オペランドの設定オペランドの設定
CRnビットビットビットビット
CRビットビットビットビット
BI 説明説明説明説明
CR0[0] 0 00000 LT
CR0[1] 1 00001 GT
CR0[2] 2 00010 EQ
CR0[3] 3 00011 SO XER[SO]
CR1[0] 4 00100 FPSCR[FX]
CR1[1] 5 00101 FPSCR[FEX]
CR1[2] 6 00110 FPSCR[VX]
CR1[3] 7 00111 FPSCR[OX]
CRn[0] 81216202428
010000110010000101001100011100
LT FL
rA SIMM rB rA UIMM rB
frA frB
0 5 6 10 11 15 16 29 30 31
16 BO BI BD AA LK
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-24 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
8-7 BO ☞ 4.2.4.2
CRn[1] 91317212529
010010110110001101011100111101
GT FG
rA SIMM rB rA UIMM rB
frA frB
CRn[2] 101418222630
010100111010010101101101011110
EQ FErA=SIMM UIMM rB
frA=frB
CRn[3] 111519232731
010110111110011101111101111111
SO FUXER[SO]
frA frB NaN
表表表表 8-7 BO オペランドのエンコーディングオペランドのエンコーディングオペランドのエンコーディングオペランドのエンコーディング
BO 説明説明説明説明
0000y CTR CTR 0
0001y CTR CTR = 0
001zy
0100y CTR CTR 0
0101y CTR CTR = 0
011zy
1z00y CTR CTR 0
1z01y CTR CTR = 0
1z1zz
z ビットは無視されますが、将来のアーキテクチャのバージョンで使われる可能性があるのでクリアしておき
ます。y ビットは、条件分岐の発生の可能性を表すヒントになります。一部のインプリメンテーションは、こ
のビットを利用して処理速度を改善することが可能です。
表表表表 8-6 CR フィールドに対するフィールドに対するフィールドに対するフィールドに対する BI オペランドの設定(続き)オペランドの設定(続き)オペランドの設定(続き)オペランドの設定(続き)
CRnビットビットビットビット
CRビットビットビットビット
BI 説明説明説明説明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-25
8.2 命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-26 Freescale Semiconductor
target_addr
AA=0 BD||0b00
AA=1 BD||0b00
LK=1 EA LR
CTR BO[2]=0
LR LK=1
blt target = bc 12,0,target
bne cr2,target = bc 4,10,target
bdnz target = bc 16,0,target
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA B
8.2 命令セット
第8章
命令セット
bcctrx bcctrxBranch Conditional to Count Register
bcctr BO,BI (LK = 0)bcctrl BO,BI (LK = 1) [POWER bcc, bccl]
cond_ok ← BO[0] | (CR[BI] ≡ BO[1])if cond_ok then
NIA ←iea CTR[0-29] || 0b00
if LK then LR ←iea CIA + 4
BI CR 8-8
表表表表 8-8 CR フィールドに対するフィールドに対するフィールドに対するフィールドに対する BI オペランドの設定オペランドの設定オペランドの設定オペランドの設定
CRnビットビットビットビット
CRビットビットビットビット
BI 説明説明説明説明
CR0[0] 0 00000 LT
CR0[1] 1 00001 GT
CR0[2] 2 00010 EQ
CR0[3] 3 00011 SO XER[SO]
CR1[0] 4 00100 FPSCR[FX]
CR1[1] 5 00101 FPSCR[FEX]
CR1[2] 6 00110 FPSCR[VX]
CR1[3] 7 00111 FPSCR[OX]
CRn[0] 81216202428
010000110010000101001100011100
LT FL
rA SIMM rB rA UIMM rB
frA frB
0 5 6 10 11 15 16 20 21 30 31
予約済み�
19 BO BI 0 0 0 0 0 528 LK
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-27
8.2 命令セット
8-9 BO ☞ 4.2.4.2
CRn[1] 91317212529
010010110110001101011100111101
GT FG
rA SIMM rB rA UIMM rB
frA frB
CRn[2] 101418222630
010100111010010101101101011110
EQ FErA=SIMM UIMM rB
frA=frB
CRn[3] 111519232731
010110111110011101111101111111
SO FUXER[SO]
frA frB NaN
表表表表 8-9 BO オペランドのエンコーディングオペランドのエンコーディングオペランドのエンコーディングオペランドのエンコーディング
BO 説明説明説明説明
0000y CTR CTR ≠ 0
0001y CTR CTR = 0
001zy
0100y CTR CTR ≠ 0
0101y CTR CTR = 0
011zy
1z00y CTR CTR ≠ 0
1z01y CTR CTR = 0
1z1zz
z ビットは無視されますが、将来のアーキテクチャのバージョンで使われる可能性があるのでクリアしておき
ます。y ビットは、条件分岐の発生の可能性を表すヒントになります。一部のインプリメンテーションは、こ
のビットを利用して処理速度を改善することが可能です。
表表表表 8-8 CR フィールドに対するフィールドに対するフィールドに対するフィールドに対する BI オペランドの設定(続き)オペランドの設定(続き)オペランドの設定(続き)オペランドの設定(続き)
CRnビットビットビットビット
CRビットビットビットビット
BI 説明説明説明説明
8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-28 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-29
CTR[0-29]||0b00
LK=1 EA LR
CTR BO[2]=0
LR LK=1
bltctr = bcctr 12,0
bnectr cr2 = bcctr 4,10
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XL
8.2 命令セット
bclrx bclrxBranch Conditional to Link Register
bclr BO,BI (LK = 0)bclrl BO,BI (LK = 1) [POWER bcr, bcrl]
if ¬ BO[2] then CTR ← CTR – 1
ctr_ok ← BO[2] | ((CTR ≠ 0) ⊕ BO[3])cond_ok ← BO[0] | (CR[BI] ≡ BO[1])if ctr_ok & cond_ok then
NIA ←iea LR[0-29] || 0b00
if LK then LR ←iea CIA + 4
BI CR 8-10
表表表表 8-10 CR フィールドに対するフィールドに対するフィールドに対するフィールドに対する BI オペランドの設定オペランドの設定オペランドの設定オペランドの設定
CRnビットビットビットビット
CRビットビットビットビット
BI 説明説明説明説明
CR0[0] 0 00000 LT
CR0[1] 1 00001 GT
CR0[2] 2 00010 EQ
CR0[3] 3 00011 SO XER[SO]
CR1[0] 4 00100 FPSCR[FX]
CR1[1] 5 00101 FPSCR[FEX]
CR1[2] 6 00110 FPSCR[VX]
CR1[3] 7 00111 FPSCR[OX]
CRn[0] 81216202428
010000110010000101001100011100
LT FL
rA SIMM rB rA UIMM rB
frA frB
0 5 6 10 11 15 16 20 21 30 31
予約済み�
19 BO BI 0 0 0 0 0 16 LK
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-30 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
8-11 BO ☞ 4.2.4.2
CRn[1] 91317212529
010010110110001101011100111101
GT FG
rA SIMM rB rA UIMM rB
frA frB
CRn[2] 101418222630
010100111010010101101101011110
EQ FErA=SIMM UIMM rB
frA=frB
CRn[3] 111519232731
010110111110011101111101111111
SO FUXER[SO]
frA frB NaN
表表表表 8-10 CR フィールドに対するフィールドに対するフィールドに対するフィールドに対する BI オペランドの設定(続き)オペランドの設定(続き)オペランドの設定(続き)オペランドの設定(続き)
CRnビットビットビットビット
CRビットビットビットビット
BI 説明説明説明説明
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-31
8.2 命令セット
8
LR[0-29]||0b00
LK=1 EA LR
CTR BO[2]=0
LR LK=1
bltlr = bclr 12,0
bnelr cr2 = bclr 4,10
bdnzlr = bclr 16,0
表表表表 8-11 BO オペランドのエンコーディングオペランドのエンコーディングオペランドのエンコーディングオペランドのエンコーディング
BO 説明説明説明説明
0000y CTR CTR ≠ 0
0001y CTR CTR = 0
001zy
0100y CTR CTR ≠ 0
0101y CTR CTR = 0
011zy
1z00y CTR CTR ≠ 0
1z01y CTR CTR = 0
1z1zz
zビットは無視されますが、将来のアーキテクチャのバージョンで使われる可能性があるのでクリアしておきま
す。y ビットは、条件分岐の発生の可能性を表すヒントになります。一部のインプリメンテーションは、この
ビットを利用して処理速度を改善することが可能です。
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-32 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
cmp cmpCompare
cmp crfD,L,rA,rB
if L = 0 then a ← EXTS(rA)b ← EXTS(rB)
else a ← (rA)
b ← (rB)
if a < b then c ← 0b100
else if a > b then c ← 0b010
else c ← 0b001
CR[(4 ∗ crfD) through (4 ∗ crfD + 3)] ← c || XER[SO]
rA rB
CR crfD 32
L
• crfD CR
LT GT EQ SO
cmpw crfD,rA,rB = cmp crfD,0,rA,rB
0 5 6 8 9 10 11 15 16 20 21 30 31
予約済み�
B 0 0 0 0 0 0 0 0 0 0 031 crfD 0 L A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-33
8.2 命令セット
8
cC
mpi cmpiompare Immediate
cmpi crfD,L,rA,SIMM
a ← (rA)
if a < EXTS(SIMM) then c ← 0b100
else if a > EXTS(SIMM) then c ← 0b010
else c ← 0b001
CR[(4 ∗ crfD) through (4 ∗ crfD + 3)] ← c || XER[SO]
rA SIMM
CR crfD
32 L=1
• crfD CR
LT GT EQ SO
cmpwi crfD,rA,value = cmpi crfD,0,rA,value
0 5 6 8 9 10 11 15 16 31
予約済み�
SIMM11 crfD 0 L A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-34 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
cmpl cmplCompare Logical
cmpl crfD,L,rA,rB
a ← (rA)
b ← (rB)
if a <U b then c ← 0b100
else if a >U b then c ← 0b010
else c ← 0b001
CR[4 ∗ crfD–4 ∗ crfD + 3] ← c || XER[SO]
rA rB
CR crfD
32 L=1
• crfD CR
LT GT EQ SO
cmplw crfD,rA,rB = cmpl crfD,0,rA,rB
0 5 6 8 9 10 11 15 16 20 21 31
予約済み�
31 crfD 0 L A B 32 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-35
8.2 命令セット
8
cC
mpli cmpliompare Logical Immediate
cmpli crfD,L,rA,UIMM
a ← (rA)
if a <U ((16)0 || UIMM) then c ← 0b100
else if a >U ((16)0 || UIMM) then c ← 0b010
else c ← 0b001
CR[4 ∗ crfD–4 ∗ crfD + 3] ← c || XER[SO]
rA 0x0000||UIMM
CR crfD
32 L=1
• crfD CR
LT GT EQ SO
cmplwi crfD,rA,value = cmpli crfD,0,rA,value
0 5 6 8 9 10 11 15 16 31
予約済み�
UIMM10 crfD 0 L A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-36 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
cntlzwx cntlzwxCount Leading Zeros Word
cntlzw rA,rS (Rc = 0)cntlzw. rA,rS (Rc = 1)[POWER cntlz, cntlz.]
n ← 0
do while n < 32
if rS[n] = 1 then leave
n ← n + 1
rA ← n
rS 0 rA
0 32
• CR0
LT GT EQ SO Rc=1
Rc=1 CR0 LT
0 5 6 10 11 15 16 20 21 30 31
予約済み�
31 S A 0 0 0 0 0 26 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-37
8.2 命令セット
8
cC
rand crandondition Register AND
crand crbD,crbA,crbB
CR[crbD] ← CR[crbA] & CR[crbB]
crbA CR crbB CR AND
crbD CR
•
crbD
0 5 6 10 11 15 16 20 21 30 31
予約済み�
19 crbD crbA crbB 257 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-38 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
crandc crandcCondition Register AND with Complement
crandc crbD,crbA,crbB
CR[crbD] ← CR[crbA] & ¬ CR[crbB]
crbA CR crbB CR
AND crbD CR
•
crbD
0 5 6 10 11 15 16 20 21 30 31
予約済み�
19 crbD crbA crbB 129 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-39
8.2 命令セット
8
cC
reqv creqvondition Register Equivalent
creqv crbD,crbA,crbB
CR[crbD] ← CR[crbA] ≡ CR[crbB]
crbA CR crbB CR XOR
crbD CR
•
crbD
crset crbD = creqv crbD,crbD,crbD
0 5 6 10 11 15 16 20 21 30 31
予約済み�
19 crbD crbA crbB 289 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-40 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
crnand crnandCondition Register NAND
crnand crbD,crbA,crbB
CR[crbD] ← ¬ (CR[crbA] & CR[crbB])
crbA CR crbB CR AND
crbD CR
•
crbD
0 5 6 10 11 15 16 20 21 30 31
予約済み�
19 crbD crbA crbB 225 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-41
8.2 命令セット
8
cC
rnor crnorondition Register NOR
crnor crbD,crbA,crbB
CR[crbD] ← ¬ (CR[crbA] | CR[crbB])
crbA CR crbB CR OR
crbD CR
•
crbD
crnot crbD,crbA = crnor crbD,crbA,crbA
0 5 6 10 11 15 16 20 21 30 31
予約済み�
19 crbD crbA crbB 33 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-42 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
cror crorCondition Register OR
cror crbD,crbA,crbB
CR[crbD] ← CR[crbA] | CR[crbB]
crbA CR crbB CR OR
crbD CR
•
crbD
crmove crbD,crbA = cror crbD,crbA,crbA
0 5 6 10 11 15 16 20 21 30 31
予約済み�
19 crbD crbA crbB 449 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-43
8.2 命令セット
8
cC
rorc crorcondition Register OR with Complement
crorc crbD,crbA,crbB
CR[crbD] ← CR[crbA] | ¬ CR[crbB]
crbA CR crbB CR OR
crbD CR
•
crbD
0 5 6 10 11 15 16 20 21 30 31
予約済み�
19 crbD crbA crbB 417 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-44 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
crxor crxorCondition Register XOR
crxor crbD,crbA,crbB
CR[crbD] ← CR[crbA] ⊕ CR[crbB]
crbA CR crbB CR XOR
crbD CR
•
crbD
crclr crbD = crxor crbD,crbD,crbD
0 5 6 10 11 15 16 20 21 30 31
予約済み�
19 crbD crbA crbB 193 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-45
8.2 命令セット
8
dD
cba dcbaata Cache Block Allocate
dcba rA,rB
EA rA|0 + rB
dcba EA
dcba
dcba
dcba
dcba
• EA
• EA
• I
dcba
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 758 031 0 0 0 0 0 A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-46 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
dcba eieio
DSI
dcba
OEA
dcba dcba
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
VEA √ X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-47
8.2 命令セット
8
dD
cbf dcbfata Cache Block Flush
dcbf rA,rB
EA rA|0 + rB
dcbf EA
dcbf
EA
M
•
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 86 031 0 0 0 0 0 A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-48 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
dcbf EA
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
VEA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-49
8.2 命令セット
8
dD
cbi dcbiata Cache Block Invalidate
dcbi rA,rB
EA rA|0 + rB
EA
EA
•
•
MSR[DR]=1
DSI
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 470 031 0 0 0 0 0 A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-50 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
EA
dcbf
•
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
OEA √ X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-51
8.2 命令セット
8
dD
cbst dcbstata Cache Block Store
dcbst rA,rB
EA rA|0 + rB
dcbst
• EA EA
• EA
EA
EA
dcbst
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 54 031 0 0 0 0 0 A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
VEA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-52 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
dcbt dcbtData Cache Block Touch
dcbt rA,rB
EA rA|0 + rB
EA
dcbt
dcbt
dcbtst
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 278 031 0 0 0 0 0 A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
VEA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-53
8.2 命令セット
8
dD
cbtst dcbtstata Cache Block Touch for Store
dcbtst rA,rB
EA rA|0 + rB
EA
dcbtst
dcbtst
EA
dcbt
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 246 031 0 0 0 0 0 A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
VEA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-54 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-55
dcbz dcbzData Cache Block Clear to Zero
dcbz rA,rB[POWER dclz]
EA rA|0 + rB
dcbz
• EA
• EA
• EA
• EA
eieio
•
OEA dcbz
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 1014 031 0 0 0 0 0 A
8.2 命令セット
☞ 6
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
VEA X
8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-56 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
divwx divwxDivide Word
divw rD,rA,rB (OE = 0 Rc = 0)divw. rD,rA,rB (OE = 0 Rc = 1) divwo rD,rA,rB (OE = 1 Rc = 0) divwo. rD,rA,rB (OE = 1 Rc = 1)
dividend ← (rA)
divisor ← (rB)
rD ← dividend ÷ divisor
rA rB 32 rD
=
* +r 0 r
r 0
0x8000_0000 -1 0 rD
Rc=1 CR0 LT GT EQ
OE=1 OV
rA rB 32 rA
-231 rB -1
divw rD,rA,rB #rD=mullw rD,rD,rB #rD= *subf rD,rD,rA #rD=
0 5 6 10 11 15 16 20 21 22 30 31
31 D A B OE 491 Rc
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-57
8.2 命令セット
8
• CR0
LT GT EQ SO Rc=1
• XER
SO OV OE=1
XER 32
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-58 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
divwux divwuxDivide Word Unsigned
divwu rD,rA,rB (OE = 0 Rc = 0)divwu. rD,rA,rB (OE = 0 Rc = 1)divwuo rD,rA,rB (OE = 1 Rc = 0)divwuo. rD,rA,rB (OE = 1 Rc = 1)
dividend ← (rA)
divisor ← (rB)rD ← dividend ÷ divisor
rA rB 32 rD
Rc=1 CR0 3
= * +r 0 r
0 rD
Rc=1 CR0 LT GT
EQ OE=1 OV
rA rB 32
divwu rD,rA,rB #rD=mullw rD,rD,rB #rD= *subf rD,rD,rA #rD=
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 20 21 22 30 31
31 D A B OE 459 Rc
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-59
8.2 命令セット
8
• XER
SO OV OE=1
XER 32
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-60 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
eciwx eciwxExternal Control In Word Indexed
eciwx rD,rA,rB
eciwx EAR
if rA = 0 then b ← 0
else b← (rA)
EA ← b + (rB)
paddr ← address translation of EA
send load word request for paddr to device identified by
EAR[RID]
rD ← word from device
EA rA|0 + rB
EA
EAR[RID]
rD
EAR[E] 1 DSI
EA 4
•
• DSI EAR[E]=0
•
eciwx SR[T]=1 EA
DBAT EA
MSR[DR]=0
0 5 6 10 11 15 16 20 21 30 31
予約済み�
31 D A B 310 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-61
8.2 命令セット
8
eieio
•
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
VEA √ X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-62 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
ecowx ecowxExternal Control Out Word Indexed
ecowx rS,rA,rB
ecowx EAR
if rA = 0 then b ← 0
else b← (rA)
EA ← b + (rB)
paddr ← address translation of EA
send load word request for paddr to device identified by
EAR[RID]
send rS to device
EA rA|0 + rB
EA rS
EAR[RID]
EAR[E]=0 DSI EA 4
•
• DSI EAR[E]=0
•
ecowx SR[T]=0 EA
DBAT EA
MSR[DR]=0
eieio
ecowx
0 5 6 10 11 15 16 20 21 30 31
予約済み�
31 S A B 438 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-63
8.2 命令セット
8
•
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式��
VEA √ X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-64 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-65
eieio eieioEnforce In-Order Execution of I/O
eieio
2
dcbz dcba
2
1.
eieio
eieio
eieio
dcbz
2.
eieio
eieio
eieio
eieio dcbz dcba
0 5 6 10 11 15 16 20 21 30 31
予約済み�
31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 854 0
8.2 命令セット
☞
5
eieio
eieio eieio
eieio I/O
1 2
eieio
I/O
☞ 5.2.1
eieio
eieio eieio
eieio
•
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
VEA X
8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-66 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
eqvx eqvxEquivalent
eqv rA,rS,rB (Rc = 0)eqv. rA,rS,rB (Rc = 1)
rA ← (rS) ≡ (rB)
rS rB XOR rA
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 21 22 30 31
31 S A B 284 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-67
8.2 命令セット
8
eE
xtsbx extsbxxtend Sign Byte
extsb rA,rS (Rc = 0)extsb. rA,rS (Rc = 1)
S ← rS[24]
rA[24-31] ← rS[24-31]
rA[0–23] ← (24)S
rS[24-31] rA[24-31] rS 24 rA[0-23]
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 20 21 30 31
予約済み�
31 S A 0 0 0 0 0 954 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-68 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
extshx extshxExtend Sign Half Word
extsh rA,rS (Rc = 0)extsh. rA,rS (Rc = 1) [POWER exts, exts.]
S ← rS[16]
rA[16-31] ← rS[16-31]
rA[0-15] ← (16)S
rS[16-31] rA[16-31] rS 16 rA[0-15]
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 20 21 30 31
予約済み�
31 S A 0 0 0 0 0 922 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-69
8.2 命令セット
8
fF
absx fabsxloating Absolute Valuefabs frD,frB (Rc = 0)fabs. frD,frB (Rc = 1)
frB 0 frD
fabs NaN fabs NaN
FPSCR
• CR1
FX FEX VX OX Rc=1
B 264 Rc
0 5 6 10 11 15 16 20 21 30 31
予約済み�
63 D 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-70 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
faddx faddxFloating Add(倍精度)
fadd frD,frA,frB (Rc = 0)fadd. frD,frA,frB (Rc = 1)[POWER fa, fa.]
frA frB
1 FPSCR
RN frD
2 2
2
1
2
53 3 G
R X
1
1 FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXISI
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み�
63 D A B 0 0 0 0 0 21 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-71
8.2 命令セット
8
fF
addsx faddsxloating Add Singlefadds frD,frA,frB (Rc = 0)fadds. frD,frA,frB (Rc = 1)
frA frB
msb 1 FPSCR
RN frD
2 2
2
1
2
53 3 G
R X
1
1 FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXISI
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み�
59 D A B 0 0 0 0 0 21 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-72 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
fcmpo fcmpoFloating Compare Ordered
fcmpo crfD,frA,frB
if (frA) is a NaN or(frB) is a NaN then c ← 0b0001else if (frA)< (frB) thenc ← 0b1000else if (frA)> (frB) thenc ← 0b0100elsec ← 0b0010
FPCC ← c
CR[4 ∗ crfD–4 ∗ crfD + 3] ← c
if (frA) is an SNaN or(frB) is an SNaN thenVXSNAN ← 1if VE = 0 then VXVC ← 1else if (frA) is a QNaN or(frB) is a QNaN then VXVC ← 1
frA frB
CR crfD FPCC
1 NaN CR
crfD FPCC 1
NaN VXSNAN
VE=0 VXVC
1 NaN VXVC
• crfD CR
LT GT EQ UN
0 5 6 8 9 10 11 15 16 20 21 30 31
予約済み�
B 32 063 crfD 0 0 A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-73
8.2 命令セット
8
•
FPCC FX VXSNAN VXVC
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-74 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-75
fcmpu fcmpuFloating Compare Unordered
fcmpu crfD,frA,frB
if (frA) is a NaN or
(frB) is a NaN then c ← 0b0001
else if (frA) < (frB) thenc ← 0b1000
else if (frA) > (frB) thenc ← 0b0100
elsec ← 0b0010
FPCC ← c
CR[4 ∗ crfD–4 ∗ crfD + 3] ← c
if (frA) is an SNaN or
(frB) is an SNaN then
VXSNAN ← 1
frA frB
CR crfD FPCC
1 NaN CR
crfD FPCC 1
NaN VXSNAN
• crfD CR
LT GT EQ UN
•
FPCC FX VXSNAN
0 5 6 8 9 10 11 15 16 20 21 30 31
予約済み�
B 0 0 0 0 0 0 0 0 0 0 063 crfD 0 0 A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
8.2 命令セット
fctiwx fctiwxFloating Convert to Integer Word
fctiw frD,frB (Rc = 0)fctiw. frD,frB (Rc = 1)
frB FPSCR[RN] 32
frD 32 63 frD
0 31
frB 231-1 frD 32 63 0x7FFF_FFFF
frB -231 frD 32 63 0x8000_0000
☞ C.4.2 Floating-Point Convert to Integer
FPSCR[FPRF]
FPSCR[FR] FPSCR[FI]
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX XX VXSNAN VXCVI
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B Rc63 D 0 0 0 0 0 14
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-76 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
fctiwzx fctiwzxFloating Convert to Integer Word with Round toward Zero
fctiwz frD,frB (Rc = 0)fctiwz. frD,frB (Rc = 1)
frB 32
frD 32 63 frD 0 31
frB 231-1 frD 32 63 0x7FFF_FFFF
frB -231 frD 32 63 0x8000_0000
☞ C.4.2 Floating-Point Convert to Integer
FPSCR[FPRF]
FPSCR[FR] FPSCR[FI]
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX XX VXSNAN VXCVI
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 15 Rc63 D 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-77
8.2 命令セット
8
f
divx fdivxFloating Dividefdiv frD,frA,frB (Rc = 0)fdiv. frD,frA,frB (Rc = 1)[POWER fd, fd.]
frA frB
msb 1 FPSCR
RN frD
FPSCR[FPRF] FPSCR[VE]=1
FPSCR[ZE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX ZX XX VXSNAN VXIDI
VXZDZ
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み�
B 0 0 0 0 0 18 Rc63 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-78 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
fdivsx fdivsxFloating Divide Single
fdivs frD,frA,frB (Rc = 0)fdivs. frD,frA,frB (Rc = 1)
frA frB
msb 1 FPSCR
RN frD
FPSCR[FPRF] FPSCR[VE]=1
FPSCR[ZE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX ZX XX VXSNAN VXIDI
VXZDZ
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み�
B 0 0 0 0 0 18 Rc59 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-79
8.2 命令セット
8
fF
maddx fmaddxloating Multiply-Add(倍精度)
fmadd frD,frA,frC,frB (Rc = 0)fmadd. frD,frA,frC,frB (Rc = 1) [POWER fma, fma.]
frD ← (frA ∗ frC) + frB
frA frC
frB
msb 1 FPSCR
RN frD
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ
0 5 6 10 11 15 16 20 21 25 26 30 31
B C 29 Rc63 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-80 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
fmaddsx fmaddsxFloating Multiply-Add Single
fmadds frD,frA,frC,frB (Rc = 0) fmadds. frD,frA,frC,frB (Rc = 1)
frD ← (frA ∗ frC) + frB
frA frC
frB
msb 1 FPSCR
RN frD
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ
0 5 6 10 11 15 16 20 21 25 26 30 31
B C 29 Rc59 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-81
8.2 命令セット
8
fF
mrx fmrxloating Move Registerfmr frD,frB (Rc = 0)fmr. frD,frB (Rc = 1)
frB frD
• CR1
FX FEX VX OX Rc=1
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 72 Rc63 D 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-82 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
fmsubx fmsubxFloating Multiply-Subtract(倍精度)
fmsub frD,frA,frC,frB (Rc = 0)fmsub. frD,frA,frC,frB (Rc = 1) [POWER fms, fms.]
frD ← [frA ∗ frC] – frB
frA frC
frB
msb 1 FPSCR
RN frD
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ
0 5 6 10 11 15 16 20 21 25 26 30 31
B C 28 Rc63 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-83
8.2 命令セット
8
fF
msubsx fmsubsxloating Multiply-Subtract Singlefmsubs frD,frA,frC,frB (Rc = 0)fmsubs. frD,frA,frC,frB (Rc = 1)
frD ← [frA ∗ frC] – frB
frA frC
frB
msb 1 FPSCR
RN frD
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ
0 5 6 10 11 15 16 20 21 25 26 30 31
B C 28 Rc59 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-84 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
fmulx fmulxFloating Multiply(倍精度)
fmul frD,frA,frC (Rc = 0)fmul. frD,frA,frC (Rc = 1)[POWER fm, fm.]
frA frC
msb 1 FPSCR
RN frD
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXIMZ
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み�
0 0 0 0 0 C 25 Rc63 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-85
8.2 命令セット
8
fF
mulsx fmulsxloating Multiply Singlefmuls frD,frA,frC (Rc = 0)fmuls. frD,frA,frC (Rc = 1)
frA frC
msb 1 FPSCR
RN frD
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXIMZ
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み�
0 0 0 0 0 C 25 Rc59 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-86 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
fnabsx fnabsxFloating Negative Absolute Value
fnabs frD,frB (Rc = 0)fnabs. frD,frB (Rc = 1)
frB 0 frD
fnabs NaN fnabs NaN
FPSCR
• CR1
FX FEX VX OX Rc=1
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 136 Rc63 D 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-87
8.2 命令セット
8
fF
negx fnegxloating Negatefneg frD,frB (Rc = 0)fneg. frD,frB (Rc = 1)
frB 0 frD
fneg NaN fneg NaN
FPSCR
• CR1
FX FEX VX OX Rc=1
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 40 Rc63 D 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-88 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
fnmaddx fnmaddxFloating Negative Multiply-Add(倍精度)
fnmadd frD,frA,frC,frB (Rc = 0)fnmadd. frD,frA,frC,frB (Rc = 1)[POWER fnma, fnma.]
frD ← – ([frA ∗ frC] + frB)
frA frC
frB msb
1 FPSCR
RN frD
fmaddx
• QNaN
•
QNaN
• SNaN
QNaN
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
0 5 6 10 11 15 16 20 21 25 26 30 31
B C 31 Rc63 D A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-89
8.2 命令セット
8
•
FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-90 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
fnmaddsx fnmaddsxFloating Negative Multiply-Add Single
fnmadds frD,frA,frC,frB (Rc = 0)fnmadds. frD,frA,frC,frB (Rc = 1)
frD ← – ([frA ∗ frC] + frB)
frA frC
frB msb
1 FPSCR
RN frD
fmaddsx
• QNaN
•
QNaN
• SNaN
QNaN
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ
0 5 6 10 11 15 16 20 21 25 26 30 31
B C 31 Rc59 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-91
8.2 命令セット
8
fF
nmsubx fnmsubxloating Negative Multiply-Subtract(倍精度)
fnmsub frD,frA,frC,frB (Rc = 0)fnmsub. frD,frA,frC,frB (Rc = 1)[POWER fnms, fnms.]
frD ← – ([frA ∗ frC] – frB)
frA frC
frB
msb 1 FPSCR
RN
frD
fmsubx
• QNaN
•
QNaN
• SNaN
QNaN
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
0 5 6 10 11 15 16 20 21 25 26 30 31
B C 30 Rc63 D A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-92 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
•
FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-93
8.2 命令セット
8
fF
nmsubsx fnmsubsxloating Negative Multiply-Subtract Singlefnmsubs frD,frA,frC,frB (Rc = 0)fnmsubs. frD,frA,frC,frB (Rc = 1)
frD ← – ([frA ∗ frC] – frB)
frA frC
frB
msb 1 FPSCR
RN
frD
fmsubsx
• QNaN
•
QNaN
• SNaN
QNaN
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ
0 5 6 10 11 15 16 20 21 25 26 30 31
B C 30 Rc59 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-94 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
fresx fresxFloating Reciprocal Estimate Single
fres frD,frB (Rc = 0)fres. frD,frB (Rc = 1)
frB frD frD frB
256 1
x frB frD
–∞ –0–0 –∞* ZX
+0 +∞* ZX
+∞ +0SNaN QNaN** VXSNAN
QNaN QNaN*FPSCR[ZE]=1
**FPSCR[VE]=1
FPSCR[FPRF] FPSCR[VE]=1
FPSCR[ZE]=1
fresx
B 0 0 0 0 0 24 Rc
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み
59 D 0 0 0 0 0
ABS
評価値� 1x---
—
1x---
----------------------------------
1256---------≤
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-95
8.2 命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-96 Freescale Semiconductor
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA √ A
8.2 命令セット
第8章
命令セット
frspx frspxFloating Round to Single
frsp frD,frB (Rc = 0)frsp. frD,frB (Rc = 1)
frB FPSCR[RN]
frD
☞ C.4.1 Floating-Point Round to Single-Precision
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 12 Rc63 D 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-97
8.2 命令セット
8
fF
rsqrtex frsqrtexloating Reciprocal Square Root Estimatefrsqrte frD,frB (Rc = 0)frsqrte. frD,frB (Rc = 1)
frB frD frD
32 1
x frB frD
–∞ QNaN** VXSQRT
<0 QNaN** VXSQRT
–0 –∞* ZX
+0 +∞* ZX
+∞ +0SNaN QNaN** VXSNAN
QNaN QNaN
*FPSCR[ZE]=1
**FPSCR[VE]=1
FPSCR[FPRF] FPSCR[VE]=1
FPSCR[ZE]=1
frsqrte
frB frD
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み�
63 D 0 0 0 0 0 B 0 0 0 0 0 26 Rc
ABS
評価値� 1
x-------
−
1
x-------
--------------------------------------- 1
32------≤
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-98 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-99
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX ZX VXSNAN VXSQRT
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA √ A
8.2 命令セット
fselx fselxFloating Select
fsel frD,frA,frC,frB (Rc = 0)fsel. frD,frA,frC,frB (Rc = 1)
if (frA) ≥ 0.0 then frD ← (frC)
else frD ← (frB)
frA
frD frC
NaN frD frB
+0 -0
IEEE NaN
fsel
☞ C.3 ☞ C.5
• CR1
FX FEX VX OX Rc=1
B C 23 Rc
0 5 6 10 11 15 16 20 21 25 26 30 31
63 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA √ A
8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-100 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
fsqrtx fsqrtxFloating Square Root(倍精度)
fsqrt frD,frB (Rc = 0)fsqrt. frD,frB (Rc = 1)
frB frD
msb 1 FPSCR
RN frD
–∞ QNaN* VXSQRT
<0 QNaN* VXSQRT
–0 –0
+∞ +∞SNaN QNaN* VXSNAN
QNaN QNaN
*FPSCR[VE]=1
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX XX VXSNAN VXSQRT
B 0 0 0 0 0 22 Rc
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み
63 D 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA √ A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-101
8.2 命令セット
8
fF
sqrtsx fsqrtsxloating Square Root Singlefsqrts frD,frB (Rc = 0)fsqrts. frD,frB (Rc = 1)
frB frD
msb 1 FPSCR
RN frD
–∞ QNaN* VXSQRT
<0 QNaN* VXSQRT
–0 –0
+∞ +∞SNaN QNaN* VXSNAN
QNaN QNaN
*FPSCR[VE]=1
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX XX VXSNAN VXSQRT
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み�
59 D 0 0 0 0 0 B 0 0 0 0 0 22 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA √ A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-102 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
fsubx fsubxFloating Subtract(倍精度)
fsub frD,frA,frB (Rc = 0)fsub. frD,frA,frB (Rc = 1)[POWER fs, fs.]
frB frA
msb 1 FPSCR
RN frD
fsub frB 0
fadd
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXISI
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み�
B 0 0 0 0 0 20 Rc63 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-103
8.2 命令セット
8
fF
subsx fsubsxloating Subtract Singlefsubs frD,frA,frB (Rc = 0)fsubs. frD,frA,frB (Rc = 1)
frB frA
msb 1 FPSCR
RN frD
fsubs frB 0
fadds
FPSCR[FPRF] FPSCR[VE]=1
• CR1
FX FEX VX OX Rc=1
•
FPRF FR FI FX OX UX XX VXSNAN VXISI
0 5 6 10 11 15 16 20 21 25 26 30 31
予約済み�
B 0 0 0 0 0 20 Rc59 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-104 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
icbi icbiInstruction Cache Block Invalidate
icbi rA,rB
EA rA|0 + rB
EA EA
EA EA
EA
icbi
icbi EA rA|0+rB
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 982 031 0 0 0 0 0 A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-105
8.2 命令セット
8
EA
rA|0+rB EA
•
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
VEA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-106 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
isync isyncInstruction Synchronize
isync[POWER ics]
isync
isync isync
isync
isync
isync
isync
A
MMU A
isync
rfi
•
0 0 0 0 0 150 0
0 5 6 10 11 15 16 20 21 30 31
予約済み�
19 0 0 0 0 0 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
VEA XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-107
8.2 命令セット
8
lL
bz lbzoad Byte and Zerolbz rD,d(rA)
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + EXTS(d)
rD ← (24)0 || MEM(EA, 1)
EA rA|0 + d EA rD 8
rD
•
0 5 6 10 11 15 16 31
d34 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-108 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
lbzu lbzuLoad Byte and Zero with Update
lbzu rD,d(rA)
EA ← (rA) + EXTS(d)
rD ← (24)0 || MEM(EA, 1)
rA ← EA
EA rA|0 + d EA rD 8
rD
EA rA
rA=0 rA=rD
•
0 5 6 10 11 15 16 31
d35 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-109
8.2 命令セット
8
lL
bzux lbzuxoad Byte and Zero with Update Indexedlbzux rD,rA,rB
EA ← (rA) + (rB)
rD ← (24)0 || MEM(EA, 1)
rA ← EA
EA rA + rB EA rD 8
rD
EA rA rA=0 rA=rD
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 119 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-110 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
lbzx lbzxLoad Byte and Zero Indexed
lbzx rD,rA,rB
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
rD ← (24)0 || MEM(EA, 1)
EA rA|0 + rB EA rD
8 rD
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 87 031 D A
UISA X
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-111
8.2 命令セット
8
lL
fd lfdoad Floating-Point Doublelfd frD,d(rA)
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + EXTS(d)
frD ← MEM(EA, 8)
EA rA|0 + d
EA frD
•
0 5 6 10 11 15 16 31
d50 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-112 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
lfduLoad Floating-Point Double with Update
lfdu frD,d(rA)
EA ← (rA) + EXTS(d)
frD ← MEM(EA, 8)
rA ← EA
EA rA + d
EA frD
EA rA
rA=0
•
0 5 6 10 11 15 16 31
d51 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-113
8.2 命令セット
8
lL
fdux lfduxoad Floating-Point Double with Update Indexedlfdux frD,rA,rB
EA ← (rA) + (rB)
frD ← MEM(EA, 8)rA ← EA
EA rA + rB
EA frD
EA rA
rA=0
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 631 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-114 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-115
lfdx lfdxLoad Floating-Point Double Indexed
lfdx frD,rA,rB
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
frD ← MEM(EA, 8)
EA rA|0 + rB
EA frD
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 599 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
8.2 命令セット
lfs lfsLoad Floating-Point Single
lfs frD,d(rA)
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + EXTS(d)
frD ← DOUBLE(MEM(EA, 4))
EA rA|0 + d
EA
☞ C.6
frD
•
0 5 6 10 11 15 16 31
d48 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-116 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
lfsu lfsuLoad Floating-Point Single with Update
lfsu frD,d(rA)
EA ← (rA) + EXTS(d)
frD ← DOUBLE(MEM(EA, 4))
rA ← EA
EA rA + d
EA
☞ C.6
frD
EA rA
rA=0
•
0 5 6 10 11 15 16 31
d49 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-117
8.2 命令セット
lfsux lfsuxLoad Floating-Point Single with Update Indexed
lfsux frD,rA,rB
EA ← (rA) + (rB)
frD ← DOUBLE(MEM(EA, 4))
rA ← EA
EA rA + rB
EA
☞ C.6
frD
EA rA
rA=0
•s
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 567 031 D A
UISA X
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-118 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
lfsx lfsxLoad Floating-Point Single Indexed
lfsx frD,rA,rB
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
frD ← DOUBLE(MEM(EA, 4))
EA rA|0 + rB
EA
☞ C.6
frD
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 535 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-119
8.2 命令セット
8
lL
ha lhaoad Half Word Algebraiclha rD,d(rA)
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + EXTS(d)
rD ← EXTS(MEM(EA, 2))
EA rA|0 + d EA rD
16 rD
msb
•
0 5 6 10 11 15 16 31
d42 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-120 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
lhau lhauLoad Half Word Algebraic with Update
lhau rD,d(rA)
EA ← (rA) + EXTS(d)
rD ← EXTS(MEM(EA, 2))
rA ← EA
EA rA d EA rD
16 rD
msb
EA rA
rA=0 rA=rD
•
0 5 6 10 11 15 16 31
d43 D A
UISA D
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-121
8.2 命令セット
8
lL
haux lhauxoad Half Word Algebraic with Update Indexedlhaux rD,rA,rB
EA ← (rA) + (rB)
rD ← EXTS(MEM(EA, 2))
rA ← EA
EA rA + rB EA rD
16 rD
msb
EA rA
rA=0 rA=rD
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 375 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-122 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
lhax lhaxLoad Half Word Algebraic Indexed
lhax rD,rA,rB
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
rD ← EXTS(MEM(EA, 2))
EA rA|0 + rB EA rD
16 rD
msb
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 343 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-123
8.2 命令セット
8
lL
hbrx lhbrxoad Half Word Byte-Reverse Indexedlhbrx rD,rA,rB
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
rD ← (16)0 || MEM(EA + 1, 1) || MEM(EA, 1)
EA rA|0 + rB EA
0 7 rD 8 EA
8 15 rD 8
rD
lhbrx
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 790 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-124 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
lhz lhzLoad Half Word and Zero
lhz rD,d(rA)
if rA = 0 then b ← 0
else b ← (rA)EA ← b + EXTS(d)rD ← (16)0 || MEM(EA, 2)
EA rA|0 + d EA rD
16 rD
•
0 5 6 10 11 15 16 31
d40 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-125
8.2 命令セット
8
lL
hzu lhzuoad Half Word and Zero with Updatelhzu rD,d(rA)
EA ← rA + EXTS(d)
rD ← (16)0 || MEM(EA, 2)
rA ← EA
EA rA + d EA rD
16 rD
EA rA
rA=0 rA=rD
•
0 5 6 10 11 15 16 31
d41 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-126 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
lhzux lhzuxLoad Half Word and Zero with Update Indexed
lhzux rD,rA,rB
EA ← (rA) + (rB)
rD ← (16)0 || MEM(EA, 2)
rA ← EA
EA rA + rB EA rD
16 rD
EA rA
rA=0 rA=rD
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 311 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-127
8.2 命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-128 Freescale Semiconductor
lhzx lhzxLoad Half Word and Zero Indexed
lhzx rD,rA,rB
if rA = 0 then b ← 0
elseb ← (rA)EA ← b + (rB)rD ← (16)0 || MEM(EA, 2)
EA rA|0 + rB EA rD
16 rD
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 279 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
8.2 命令セット
第8章
命令セット
lmw lmwLoad Multiple Word
lmw rD,d(rA)[POWER : lm]
if rA = 0 then b ← 0
else b ← (rA)EA ← b + EXTS(d)r ← rD
do while r ≤ 31GPR(r) ← MEM(EA, 4)
r ← r + 1EA ← EA + 4
EA rA|0 + d
n= 32 - rD
EA n GPR rD r31
EA 4 4
DSI ☞ 6.4.3 DSI 0x00300
rA rA=0
•
0 5 6 10 11 15 16 31
d46 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-129
8.2 命令セット
lswi lswiLoad String Word Immediate
lswi rD,rA,NB[POWER : lsi]
if rA = 0 then EA ← 0
else EA ← (rA)
if NB = 0 then n ← 32
elsen ← NB
r ← rD – 1
i ← 0
do while n > 0
if i = 32 then
r ← r + 1 (mod 32)
GPR(r) ← 0
GPR(r)[i–i + 7] ← MEM(EA, 1)
i ← i + 8
if i = 32 then i ← 0
EA ← EA + 1
n ← n – 1
EA rA|0
NB 0 n=NB NB=0 n=32 n nr=CEIL
n 4 nr EA n
GPR rD rD + nr - 1
r0 rD + nr - 1 4
rA rA=0
☞ 6.4.3 DSI 0x00300
0 5 6 10 11 15 16 20 21 30 31
予約済み�
NB 597 031 D A
8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-130 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
•
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-131
8.2 命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-132 Freescale Semiconductor
lswx lswxLoad String Word Indexed
lswx rD,rA,rB[POWER lsx]
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
n ← XER[25–31]
r ← rD – 1
i ← 32
rD ← undefined
do while n > 0
if i = 32 then
r ← r + 1 (mod 32)
GPR(r) ← 0
GPR(r)[i–i + 7] ← MEM(EA, 1)
i ← i + 8
if i = 32 then i ← 0
EA ← EA + 1
n ← n – 1
EA rA|0 + rB n=XER[25-31] n
nr=CEIL n 4 nr n 0
EA n GPR rD rD + nr - 1
r0 rD + nr - 1 4
n=0 rD rA rB
rA=0
rD=rA rD=rB
rD rA GPR0
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 533 031 D A
8.2 命令セット
第8章
命令セット
☞ 6.4.3 DSI 0x00300
•
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-133
8.2 命令セット
lwarx lwarxLoad Word and Reserve Indexed
lwarx rD,rA,rB
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
RESERVE ← 1
RESERVE_ADDR ← physical_addr(EA)
rD ← MEM(EA,4)
EA rA|0 + rB
EA rD
stwcx.
EA
EA 4 4
DSI ☞ 6.4.3 DSI 0x00300
RESERVE RESERVE
RESERVE stwcx. RESERVE
stwcx.
CR0[EQ] lwarx stwcx.
- -
CR0[EQ]=0 stwcx.
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 20 031 D A
8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-134 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
•
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-135
8.2 命令セット
8
lL
wbrx lwbrxoad Word Byte-Reverse Indexedlwbrx rD,rA,rB[POWER : lbrx]
if rA = 0 then b ← 0elseb ← (rA)
EA ← b + (rB)
rD ← MEM(EA + 3, 1) || MEM(EA + 2, 1) || MEM(EA + 1, 1) ||
MEM(EA, 1)
EA rA|0 + rB EA 0
7 rD 8 EA
8 15 rD 8 EA
16 23 rD 8
EA 24 31 rD 8
lwbrx
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 534 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-136 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
lwz lwzLoad Word and Zero
lwz rD,d(rA)[POWER l]
if rA = 0 then b ← 0
elseb ← (rA)
EA ← b + EXTS(d)
rD ← MEM(EA, 4)
EA rA|0 + d EA rD
•
0 5 6 10 11 15 16 31
d32 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-137
8.2 命令セット
8
lL
wzu lwzuoad Word and Zero with Updatelwzu rD,d(rA)[POWER : lu]
EA ← rA + EXTS(d)
rD ← MEM(EA, 4)
rA ← EA
EA rA d EA rD
EA rA
rA=0 rA=rD
•
0 5 6 10 11 15 16 31
d33 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-138 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
lwzux lwzuxLoad Word and Zero with Update Indexed
lwzux rD,rA,rB[POWER lux]
EA ← (rA) + (rB)
rD ← MEM(EA, 4)
rA ← EA
EA rA + rB EA rD
EA rA
rA=0 rA=rD
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 55 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-139
8.2 命令セット
8
lL
wzx lwzxoad Word and Zero Indexedlwzx rD,rA,rB[POWER lx]
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + rB
rD ← MEM(EA, 4)
EA rA|0 + rB EA rD
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 23 031 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-140 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
mcrf mcrfMove Condition Register Field
mcrf crfD,crfS
CR[(4 ∗ crfD) through (4 ∗ crfD + 3)] ← CR[(4 ∗ crfS) through (4∗ crfS + 3)]
crfS
crfD
• crfD CR
LT GT EQ SO
0 5 6 8 9 10 11 13 14 15 16 20 21 30 31
予約済み�
19 crfD 0 0 crfS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-141
8.2 命令セット
8
mM
crfs mcrfsove to Condition Register from FPSCR
mcrfs crfD,crfS
FPSCR crfS CR crfD
FPSCR FEX VX
• crfD CR
FX FEX VX OX
•
FX OX crfS=0
UX ZX XX VXSNAN crfS=1
VXISI VXIDI VXZDZ VXIMZ crfS=2
VXVC crfS=3
VXSOFT VXSQRT VXCVI crfS=5
0 5 6 8 9 10 11 13 14 15 16 20 21 30 31
予約済み�
63 crfD 0 0 crfS 0 0 0 0 0 0 0 64 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-142 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
mcrxr mcrxrMove to Condition Register from XER
mcrxr crfD
CR[4 ∗ crfD–4 ∗ crfD + 3] ← XER[0–3]
XER[0–3] ← 0b0000
XER[0-3] crfD
XER[0-3]
• crfD CR
LT GT EQ SO
• XER[0-3]
0 5 6 8 9 10 11 15 16 20 21 30 31
予約済み�
31 crfD 0 0 0 0 0 0 0 0 0 0 0 0 512 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-143
8.2 命令セット
8
mM
fcr mfcrove from Condition Register
mfcr rD
rD ← CR
rD
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
0 0 0 0 0 19 031 D 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-144 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
mffsx mffsxMove from FPSCR
mffs frD (Rc = 0)mffs. frD (Rc = 1)
frD[32-63] ← FPSCR
FPSCR frD 32 frD 32
• CR1
FX FEX VX OX Rc=1
0 5 6 10 11 15 16 20 21 30 31
予約済み
0 0 0 0 0 583 Rc63 D 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-145
8.2 命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-146 Freescale Semiconductor
mfmsr mfmsrMove from Machine State Register
mfmsr rD
rD ← MSR
MSR rD
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
0 0 0 0 0 83 031 D 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
OEA √ X
8.2 命令セット
第8章
命令セット
mfspr mfsprMove from Special-Purpose Register
mfspr rD,SPR
n ← spr[5–9] || spr[0–4]
rD ← SPR(n)
UISA SPR 8-12
rD
SPR 8-12
•
•
•
•
表表表表 8-12 mfspr に対するに対するに対するに対する UISA のののの SPR エンコーディングエンコーディングエンコーディングエンコーディング
SPR**レジスタ名レジスタ名レジスタ名レジスタ名
10 進値進値進値進値 spr[5–9] spr[0–4]
1 00000 00001 XER
8 00000 01000 LR
9 00000 01001 CTR
注:**SPR 番号の各 5 ビット部分の順序は実際の命令エンコーディングとは逆になる。
0 5 6 10 11 20 21 30 31
予約済み�
spr* 339 031 D
注:�*分割フィールド�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-147
8.2 命令セット
mfxer rD = mfspr rD,1
mflr rD = mfspr rD,8
mfctr rD = mfspr rD,9
OEA SPR 8-13
SPR rD
SPR[0]=1
MSR[PR]=1
MSR[PR]=1 8-13 SPR SPR[0]=1
MSR[PR]=0 SPR[0]=0 SPR 8-13
•
表表表表 8-13 mfspr に対するに対するに対するに対する OEA のののの SPR エンコーディングエンコーディングエンコーディングエンコーディング
SPR1
レジスタ名レジスタ名レジスタ名レジスタ名 アクセスアクセスアクセスアクセス
10 進値進値進値進値 spr[5–9] spr[0–4]
1 00000 00001 XER
8 00000 01000 LR
9 00000 01001 CTR
18 00000 10010 DSISR
19 00000 10011 DAR
22 00000 10110 DEC
25 00000 11001 SDR1
26 00000 11010 SRR0
27 00000 11011 SRR1
272 01000 10000 SPRG0
273 01000 10001 SPRG1
8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-148 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
274 01000 10010 SPRG2
275 01000 10011 SPRG3
282 01000 11010 EAR
287 01000 11111 PVR
528 10000 10000 IBAT0U
529 10000 10001 IBAT0L
530 10000 10010 IBAT1U
531 10000 10011 IBAT1L
532 10000 10100 IBAT2U
533 10000 10101 IBAT2L
534 10000 10110 IBAT3U
535 10000 10111 IBAT3L
536 10000 11000 DBAT0U
537 10000 11001 DBAT0L
538 10000 11010 DBAT1U
539 10000 11011 DBAT1L
540 10000 11100 DBAT2U
541 10000 11101 DBAT2L
542 10000 11110 DBAT3U
543 10000 11111 DBAT3L
1013 11111 10101 DABR
1 注:1SPR 番号の各 5 ビット部分の順序は実際の命令エンコーディングとは逆になる。
mtspr 命令および mfspr 命令では、アセンブリ言語でコーディングした SPR 番号が命令中に 10 ビットの 2 進値として直接現われることはない。コーディングした番号は、命令中では順序が逆の 2 つの 5ビット部分に分割され、上位 5 ビットが命令のビット 16 ~ 20 に、下位 5 ビットがビット 11 ~ 15 に現われる。
表表表表 8-13 mfspr に対するに対するに対するに対する OEA のののの SPR エンコーディング(続き)エンコーディング(続き)エンコーディング(続き)エンコーディング(続き)
SPR1
レジスタ名レジスタ名レジスタ名レジスタ名 アクセスアクセスアクセスアクセス
10 進値進値進値進値 spr[5–9] spr[0–4]
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA/OEA √* XFX
注:�* SPR[[0]=1のときにかぎりmfspr命令はスーパバイザ・レベルです。
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-149
8.2 命令セット
8
mM
fsr mfsrove from Segment Register
mfsr rD,SR
rD ← SEGREG(SR)
rD
32 64
•
0 5 6 10 11 12 15 16 20 21 30 31
予約済み�
0 0 0 0 0 595 031 D 0 SR
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
OEA √ X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-150 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-151
mfsrin mfsrinMove from Segment Register Indirect
mfsrin rD,rB
rD ← SEGREG(rB[0–3])
rB 0 3 rD
32 64
mfsrin rA
mfsrin POWER mfsri
rA=0
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
B 659 031 D 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
OEA √ X
8.2 命令セット
mftb mftbMove from Time Base
mftb rD,TBR
n ← tbr[5–9] || tbr[0–4]if n = 268 then
rD ← TBLelse if n = 269 then
rD ← TBU
TBL TBU 8-14 TBR
rD
TBR 8-14
•
•
•
mftb mfspr ☞ 2.2
VEA
•
表表表表 8-14 mftb に対するに対するに対するに対する TBR エンコーディングエンコーディングエンコーディングエンコーディング
TBR*レジスタ名レジスタ名レジスタ名レジスタ名 アクセスアクセスアクセスアクセス
10 進値進値進値進値 tbr[5–9] tbr[0–4]
268 01000 01100 TBL
269 01000 01101 TBU
注:*TBR 番号の各 5 ビット部分の順序は逆になる。
0 5 6 10 11 20 21 30 31
予約済み�
31 371D tbr* 0
注:*分割フィールド*
8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-152 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
mftb rD = mftb rD,268
mftbu rD = mftb rD,269
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
VEA XFX
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-153
8.2 命令セット
8
mM
tcrf mtcrfove to Condition Register Fields
mtcrf CRM,rS
mask ← (4)(CRM[0]) || (4)(CRM[1]) ||... (4)(CRM[7])
CR ← (rS & mask) | (CR & ¬ mask)
rS CRM
4
i 0 7 CRM[i]=1 CR
i CR 4*i 4*i+3 rS
8
• CR
mtcr rS = mtcrf 0xFF,rS
0 5 6 10 11 12 19 20 21 30 31
予約済み�
CRM 0 144 031 S 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XFX
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-154 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
mtfsb0x mtfsb0xMove to FPSCR Bit 0
mtfsb0 crbD (Rc = 0)mtfsb0. crbD (Rc = 1)
FPSCR crbD
• CR1
FX FEX VX OX Rc=1
•
FPSCR crbD
1 2 FEX VX
0 5 6 10 11 15 16 20 21 30 31
予約済み
0 0 0 0 0 70 Rc63 crbD 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-155
8.2 命令セット
8
mM
tfsb1x mtfsb1xove to FPSCR Bit 1
mtfsb1 crbD (Rc = 0)mtfsb1. crbD (Rc = 1)
FPSCR crbD 1
• CR1
FX FEX VX OX Rc=1
•
FPSCR crbD FX
1 2 FEX VX
0 5 6 10 11 15 16 20 21 30 31
予約済み�
0 0 0 0 0 38 Rc63 crbD 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-156 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
mtfsfx mtfsfxMove to FPSCR Fields
mtfsf FM,frB (Rc = 0)mtfsf. FM,frB (Rc = 1)
frB 32 FM
FPSCR 4
i 0 7 FM[i]=1 FPSCR
i FPSCR 4*i 4*i+3 frB 32
FM[0]=1 FPSCR[FX]
FPSCR 8
FPSCR[0-3] 0 FX 3 OX
frB[32] frB[35] OX
0 1 FX frB[32]
0 1 FX
1 2 FEX VX frB[33-34]
• CR1
FX FEX VX OX Rc=1
•
FPSCR
0 5 6 7 14 15 16 20 21 30 31
予約済み
63 0 FM 0 B 711 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XFL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-157
8.2 命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-158 Freescale Semiconductor
mtfsfix mtfsfixMove to FPSCR Field Immediate
mtfsfi crfD,IMM (Rc = 0)mtfsfi. crfD,IMM (Rc = 1)
FPSCR[crfD] ← IMM
IMM FPSCR crfD
crfD=0 FPSCR[FX]
FPSCR[0-3] 0 FX 3 OX IMM[0]
IMM[3] OX 0
1 FX IMM[0]
0 1 FX
1 2 FEX VX IMM[1-2]
• CR1
FX FEX VX OX Rc=1
•
FPSCR crfD
0 5 6 8 9 10 11 12 15 16 19 20 21 30 31
予約済み�
63 crfD 0 0 0 0 0 0 0 IMM 0 134 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
8.2 命令セット
第8章
命令セット
mtmsr mtmsr Move to Machine State Register
mtmsr rS
MSR ← (rS)
rS MSR
POW LE
☞ 2.3.17
MSR[EE] MSR[RI]
MSR[EE]=0
MSR[EE]=1 mtmsr
• MSR
0 5 6 10 11 15 16 20 21 30 31
予約済み�
0 0 0 0 0 146 031 S 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
OEA √ X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-159
8.2 命令セット
mtsprMove to Special-Purpose Register
mtspr SPR,rS
n ← spr[5–9] || spr[0–4]
SPR(n) ← (rS)
UISA SPR 8-15
rS
SPR 8-15
•
•
•
• 8-15
表表表表 8-15 mtspr に対するに対するに対するに対する UISA のののの SPR エンコーディングエンコーディングエンコーディングエンコーディング
SPR*** レジスタ名レジスタ名レジスタ名レジスタ名
10 進値進値進値進値 spr[5–9] spr[0–4]
1 00000 00001 XER
8 00000 01000 LR
9 00000 01001 CTR
** SPR 番号の各 5 ビット部分の順序は実際の命令エンコーディングとは逆になる。
注:*分割フィールド�
0 5 6 10 11 20 21 30 31
予約済み�
spr* 467 031 S
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-160 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
mtxer rD = mtspr 1,rD
mtlr rD = mtspr 8,rD
mtctr rD = mtspr 9,rD
OEA SPR 8-16
rS
SPR TBL TBU 32
SPR[0]=1
MSR[PR]=1
MSR[PR]=1 8-16 SPR SPR[0]=1
MSR[PR]=0
SPR[0]=0 SPR 8-16
• 8-16
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-161
8.2 命令セット
8
表表表表 8-16 mtspr に対するに対するに対するに対する OEA のののの SPR エンコーディングエンコーディングエンコーディングエンコーディング
SPR1
レジスタ名レジスタ名レジスタ名レジスタ名 アクセスアクセスアクセスアクセス
10 進値進値進値進値 spr[5–9] spr[0–4]
1 00000 00001 XER
8 00000 01000 LR
9 00000 01001 CTR
18 00000 10010 DSISR
19 00000 10011 DAR
22 00000 10110 DEC
25 00000 11001 SDR1
26 00000 11010 SRR0
27 00000 11011 SRR1
272 01000 10000 SPRG0
273 01000 10001 SPRG1
274 01000 10010 SPRG2
275 01000 10011 SPRG3
282 01000 11010 EAR
284 01000 11100 TBL
285 01000 11101 TBU
528 10000 10000 IBAT0U
529 10000 10001 IBAT0L
530 10000 10010 IBAT1U
531 10000 10011 IBAT1L
532 10000 10100 IBAT2U
533 10000 10101 IBAT2L
534 10000 10110 IBAT3U
535 10000 10111 IBAT3L
536 10000 11000 DBAT0U
537 10000 11001 DBAT0L
538 10000 11010 DBAT1U
539 10000 11011 DBAT1L
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-162 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
540 10000 11100 DBAT2U
541 10000 11101 DBAT2L
542 10000 11110 DBAT3U
543 10000 11111 DBAT3L
1013 11111 10101 DABR
注1:SPR 番号の各 5 ビット部分の順序は実際の命令エンコーディングとは逆になる。mtspr 命令および mfspr 命令では、アセンブリ言語でコーディングしたSPR 番号が命令中に 10 ビットの 2 進値として直接現われることはない。コーディングした番号は、命令中では順序が逆の 2 つの 5 ビット部分に分割され、上位 5 ビットが命令のビット 16 ~ 20 に、下位 5 ビットがビット 11 ~ 15 に現われる。
表表表表 8-16 mtspr に対するに対するに対するに対する OEA のののの SPR エンコーディング(続き)エンコーディング(続き)エンコーディング(続き)エンコーディング(続き)
SPR1
レジスタ名レジスタ名レジスタ名レジスタ名 アクセスアクセスアクセスアクセス
10 進値進値進値進値 spr[5–9] spr[0–4]
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA/OEA √* XFX
注:*SPR[0]=1のときにかぎりmtspr命令はスーパバイザ・レベルです。�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-163
8.2 命令セット
8
mM
tsr mtsrove to Segment Register
mtsr SR,rS
SEGREG(SR) ← (rS)
rS SR
•
0 5 6 10 11 12 15 16 20 21 30 31
予約済み�
0 0 0 0 0 210 031 S 0 SR
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
OEA √ X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-164 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
mtsrin mtsrin Move to Segment Register Indirect
mtsrin rS,rB[POWER mtsri]
SEGREG(rB[0–3]) ← (rS)
rS rB 0 3
mtsrin rA
•
0 5 6 10 11 15 16 20 21 30 31
予約済み
B 242 031 S 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
OEA √ X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-165
8.2 命令セット
8
mM
ulhwx mulhwxultiply High Word
mulhw rD,rA,rB (Rc = 0)mulhw. rD,rA,rB (Rc = 1)
prod[0–63] ← rA ∗ rBrD ← prod
rA rB 64 64
32 rD
rB
• CR0
LT GT EQ SO Rc=1
CR0 LT GT EQ 32
予約済み�
0 5 6 10 11 15 16 20 21 22 30 31
31 D A B 0 75 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-166 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
mulhwux mulhwuxMultiply High Word Unsigned
mulhwu rD,rA,rB (Rc = 0)mulhwu. rD,rA,rB (Rc = 1)
prod[0–63] ← rA ∗ rBrD ← prod[0–31]
rA rB 32 64
32 rD
Rc=1 CR0
3
rB
• CR0
LT GT EQ SO Rc=1
CR0 LT GT EQ 32
予約済み
0 5 6 10 11 15 16 20 21 22 30 31
31 D A B 0 11 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-167
8.2 命令セット
8
m
ulli mulliMultiply Low Immediate
mulli rD,rA,SIMM[POWER muli]
prod[0–48] ← (rA) ∗ SIMMrD ← prod[16-48]
rA 32 1 SIMM 16 2
48 32 rD
32
32
mulhdx mulhwx 64
32 32 32
•
0 5 6 10 11 15 16 31
SIMM07 D A
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-168 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
mullwx mullwxMultiply Low Word
mullw rD,rA,rB (OE = 0 Rc = 0)mullw. rD,rA,rB (OE = 0 Rc = 1)mullwo rD,rA,rB (OE = 1 Rc = 0) mullwo. rD,rA,rB (OE = 1 Rc = 1) [POWER muls, muls., mulso, mulso.]
rD ← rA ∗ rB
rA rB 32 rA * rB 64
32 rD
32 32 32
32
OE=1 32 OV
rB
• CR0
LT GT EQ SO Rc=1
CR0
XER
• XER
SO OV OE=1
XER 32
0 5 6 10 11 15 16 20 21 22 30 31
31 D A B OE 235 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-169
8.2 命令セット
8
nN
andx nandxAND
nand rA,rS,rB (Rc = 0)nand. rA,rS,rB (Rc = 1)
rA ← ¬ ((rS) & (rB))
rS rB AND rA
rA=rB nand 1
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 20 21 30 31
31 S A B 476 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-170 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
negx negxNegate
neg rD,rA (OE = 0 Rc = 0)neg. rD,rA (OE = 0 Rc = 1)nego rD,rA (OE = 1 Rc = 0)nego. rD,rA (OE = 1 Rc = 1)
rD ← ¬ (rA) + 1
rA 1 2 rD
rA 32 0x8000_0000
OE=1 OV
• CR0
LT GT EQ SO Rc=1
• XER
SO OV OE=1
予約済み�
0 5 6 10 11 15 16 20 21 22 30 31
31 D A 0 0 0 0 0 OE 104 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-171
8.2 命令セット
8
n
orx norxNOR
nor rA,rS,rB (Rc = 0)nor. rA,rS,rB (Rc = 1)
rA ← ¬ ((rS) | (rB))
rS rB OR rA
rS=rB nor 1
• CR0
LT GT EQ SO Rc=1
not rD,rS = nor rA,rS,rS
0 5 6 10 11 15 16 20 21 30 31
31 S A B 124 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-172 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
orx orxOR
or rA,rS,rB (Rc = 0)or. rA,rS,rB (Rc = 1)
rA ← (rS) | (rB)
rS rB OR rA
mr or
• CR0
LT GT EQ SO Rc=1
mr rA,rS = or rA,rS,rS
0 5 6 10 11 15 16 20 21 30 31
31 S A B 444 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-173
8.2 命令セット
8
oO
rcx orcxR with Complement
orc rA,rS,rB (Rc = 0) orc. rA,rS,rB (Rc = 1)
rA ← (rS) | ¬ (rB)
rS rB OR rA
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 20 21 30 31
31 S A B 412 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-174 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
ori oriOR Immediate
ori rA,rS,UIMM[POWER : oril]
rA ← (rS) | ((16)0 || UIMM)
rS 0x0000||UIMM OR rA
ori 0,0,0
•
nop = ori 0,0,0
0 5 6 10 11 15 16 31
24 S A UIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-175
8.2 命令セット
8
oO
ris orisR Immediate Shifted
oris rA,rS,UIMM[POWER : oriu]
rA ← (rS) | (UIMM || (16)0)
rS UIMM||0x0000 OR rA
•
0 5 6 10 11 15 16 31
25 S A UIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-176 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
rfi rfiReturn from Interrupt
MSR[16–23, 25–27, 30–31] ← SRR1[16–23, 25–27, 30–31]NIA ←iea SRR0[0–29] || 0b00
SRR1[16-23,25-27,30-31] MSR MSR
MSR
SRR0[0-29]||0b00 MSR
1
SRR0
MSR
MSR SRR1 rfi SRR1
MSR
• MSR
0 0 0 0 0 50 0
予約済み
0 5 6 10 11 15 16 20 21 30 31
19 0 0 0 0 0 0 0 0 0 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
OEA √ XL
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-177
8.2 命令セット
8
rR
lwimix rlwimixotate Left Word Immediate then Mask Insertrlwimi rA,rS,SH,MB,ME (Rc = 0)rlwimi. rA,rS,SH,MB,ME (Rc = 1)[POWER rlimi, rlimi.]
n ← SH
r ← ROTL(rS, n)
m ← MASK(MB, ME)
rA ← (r & m) | (rA & ¬ m)
rS SH
MB ME 1 0
rA
rlwimi rA
• rS n rA b
SH=32 - b MB=b ME= b+n - 1
• rS n rA b
SH=32 - b+n MB=b ME= b+n - 1
• CR0
LT GT EQ SO Rc=1
inslwi rA,rS,n,b = rlwimi rA,rS,32 – b,b,b + n – 1
insrwi rA,rS,n,b (n > 0) = rlwimi rA,rS,32 – (b + n),b,(b + n) – 1
0 5 6 10 11 15 16 20 21 25 26 30 31
20 S A SH MB ME Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA M
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-178 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
rlwinmx rlwinmxRotate Left Word Immediate then AND with Mask
rlwinm rA,rS,SH,MB,ME (Rc = 0)rlwinm. rA,rS,SH,MB,ME (Rc = 1)[POWER rlinm, rlinm.]
n ← SH
r ← ROTL(rS, n)
m ← MASK(MB, ME)
rA ← r & m
rS[0-31] SH
MB ME 1 0
AND rA rlwinm
• rS b n rA
rA 32-n SH=b+n
MB=32-n ME=31
• rS b n rA
rA 32-n SH=b
MB=0 ME=n-1
• n
SH=n 32-n MB=0 ME=31
• n SH=32-n MB=n
ME=31 b
n SH=n MB=b-n
ME=31-n
• n SH=0 MB=0
ME=31-n
0 5 6 10 11 15 16 20 21 25 26 30 31
21 S A SH MB ME Rc
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-179
8.2 命令セット
8
• CR0
LT GT EQ SO Rc=1
extlwi rA,rS,n,b (n > 0) = rlwinm rA,rS,b,0,n – 1
extrwi rA,rS,n,b (n > 0) = rlwinm rA,rS,b + n,32 – n,31
rotlwi rA,rS,n = rlwinm rA,rS,n,0,31
rotrwi rA,rS,n = rlwinm rA,rS,32 – n,0,31
slwi rA,rS,n (n < 32) = rlwinm rA,rS,n,0,31–n
srwi rA,rS,n (n < 32) = rlwinm rA,rS,32 – n,n,31
clrlwi rA,rS,n (n < 32) = rlwinm rA,rS,0,n,31
clrrwi rA,rS,n (n < 32) = rlwinm rA,rS,0,0,31 – n
clrlslwi rA,rS,b,n (n ≤ b < 32) = rlwinm rA,rS,n,b – n,31 – n
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA M
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-180 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
rlwnmx rlwnmxRotate Left Word then AND with Mask
rlwnm rA,rS,rB,MB,ME (Rc = 0)rlwnm. rA,rS,rB,MB,ME (Rc = 1)[POWER rlnm, rlnm.]
n ← rB[27-31]
r ← ROTL(rS, n)
m ← MASK(MB, ME)
rA ← r & m
rS rB 5
MB ME 1 0
AND
rA
rlwnm
• rS b n rA
rA 32-n rB
5 b+n MB=32-n ME=31
• rS b n
rA rA 32-n rB
5 b MB=0 ME=n-1
• n
rB 5 n 32-n MB=0 ME=31
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 20 21 25 26 30 31
23 S A B MB ME Rc
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-181
8.2 命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-182 Freescale Semiconductor
rotlw rA,rS,rB = rlwnm rA,rS,rB,0,31
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA M
8.2 命令セット
第8章
命令セット
scSystem Call
[POWER svca]
UISA sc
☞ 4.1.4.1
•
OEA sc
SRR0 ←iea CIA + 4
SRR1[1-4, 10-15] ← 0
SRR1[16–23, 25–27, 30–31] ← MSR[16–23, 25–27, 30–31]
MSR ← new_value (see below)
NIA ←iea base_ea + 0xC00 (see below)
sc EA SRR0 MSR 16 23 25 27
30 31 SRR1 SRR1 1
4 10 15
MSR MSR
SRR1 rfi SRR1 MSR
☞ 6.4
MSR
MSR[IP]
0xC00
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
予約済み�
0 5 6 10 11 15 16 29 30 31
17 0 0 0 0 0 0 0 0 0 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-183
8.2 命令セット
8
• SRR0
• SRR1
• MSR
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA/OEA SC
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-184 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
slwx slwxShift Left Word
slw rA,rS,rB (Rc = 0)slw. rA,rS,rB (Rc = 1) [POWER sl, sl.]
n ← rB[27-31]
r ← ROTL(rS, n)
rB[26]=0 rS rB[27-31]
0
32 rA rB[26]=1 32
rA
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 20 21 30 31
31 S A B 24 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-185
8.2 命令セット
8
sS
rawx srawxhift Right Algebraic Word
sraw rA,rS,rB (Rc = 0)sraw. rA,rS,rB (Rc = 1) [POWER sra, sra.]
n ← rB[27-31]
r ← ROTL(rS, n)
if rB[26] = 0 then
m ← MASK(n )
else m ← (32)0
S ← rS
rA ← r & m | S & ¬ m
XER[CA] ← S & (r & ¬ m ≠ 0
rB[26]=0 rS rB[27-31]
31
rA rB[26]=1 rS 32
0 rA CR0 rA
rS 31 1
XER[CA] XER[CA]
XER[CA]
sraw addze 2n
• CR0
LT GT EQ SO Rc=1
• XER
CA
0 5 6 10 11 15 16 20 21 30 31
31 S A B 792 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-186 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
srawix srawixShift Right Algebraic Word Immediate
srawi rA,rS,SH (Rc = 0) srawi. rA,rS,SH (Rc = 1) [POWER srai, srai.]
n ← SH
r ← ROTL(rS, 32 – n)
m← MASK(n )
S ← rS
rA ← r & m | S & ¬ m
XER[CA] ← S & ((r & ¬ m) ≠ 0)
rS SH 31
32
rA rS 31 1
XER[CA] XER[CA]
XER[CA]
srawi addze 2n
• CR0
LT GT EQ SO Rc=1
• XER
CA
0 5 6 10 11 15 16 20 21 30 31
31 S A SH 824 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-187
8.2 命令セット
8
sS
rwx srwxhift Right Word
srw rA,rS,rB (Rc = 0)srw. rA,rS,rB (Rc = 1) [POWER sr, sr.]
n ← rB[27-31]
r ← ROTL(rS, 32 – n)
rS rB[27-31] 31
rA
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 20 21 30 31
31 S A B 536 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-188 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
stb stbStore Byte
stb rS,d(rA)
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + EXTS(d)
MEM(EA, 1) ← rS[24-31]
EA rA|0 + d rS 8 EA
•
0 5 6 10 11 15 16 31
38 S A d
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-189
8.2 命令セット
8
sS
tbutore Byte with Update
stbu rS,d(rA)
EA ← (rA) + EXTS(d)
MEM(EA, 1) ← rS[24-31]
rA ← EA
EA rA +d rS 8 EA
EA rA
rA=0
•
0 5 6 10 11 15 16 31
39 S A d
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-190 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
stbux stbuxStore Byte with Update Indexed
stbux rS,rA,rB
EA ← (rA) + (rB)
MEM(EA, 1) ← rS[24-31]
rA ← EA
EA rA + rB rS 8 EA
EA rA
rA=0
•
予約済み
0 5 6 10 11 15 16 21 22 30 31
31 S A B 247 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-191
8.2 命令セット
8
sS
tbx stbxtore Byte Indexed
stbx rS,rA,rB
if rA = 0 then b ← 0else b ← (rA)
EA ← b + (rB)
MEM(EA, 1) ← rS[24-31]
EA rA|0 + rB rS 8 EA
•
予約済み�
0 5 6 10 11 15 16 21 22 30 31
31 S A B 215 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-192 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
stfd stfdStore Floating-Point Double
stfd frS,d(rA)
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + EXTS(d)
MEM(EA, 8) ← (frS)
EA rA|0 + d
frS EA
•
0 5 6 10 11 15 16 30 31
54 S A d
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-193
8.2 命令セット
8
sS
tfdu stfdutore Floating-Point Double with Update
stfdu frS,d(rA)
EA ← (rA) + EXTS(d)
MEM(EA, 8) ← (frS)
rA ← EA
EA rA + d
frS EA
EA rA
rA=0
•
0 5 6 10 11 15 16 31
55 S A d
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-194 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
stfdux stfduxStore Floating-Point Double with Update Indexed
stfdux frS,rA,rB
EA ← (rA) + (rB)
MEM(EA, 8) ← (frS)
rA ← EA
EA rA + rB
frS EA
EA rA
rA=0
•
予約済み
0 5 6 10 11 15 16 20 21 30 31
31 S A B 759 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-195
8.2 命令セット
8
sS
tfdx stfdxtore Floating-Point Double Indexed
stfdx frS,rA,rB
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
MEM(EA, 8) ← (frS)
EA rA|0 + rB
frS EA
•
予約済み�
0 5 6 10 11 15 16 20 21 30 31
31 S A B 727 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-196 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-197
stfiwx stfiwxStore Floating-Point as Integer Word Indexed
stfiwx frS,rA,rB
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
MEM(EA, 4) ← frS
EA rA|0 + rB
frS 32 EA
lfs frsp
frS frS
frS frS
1
frS
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
31 S A B 983 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA √ X
8.2 命令セット
stfs stfsStore Floating-Point Single
stfs frS,d(rA)
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + EXTS(d)
MEM(EA, 4) ← SINGLE(frS)
EA rA|0 + d
frS EA
stfs
☞ C.7
•
0 5 6 10 11 15 16 31
52 S A d
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-198 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
stfsu stfsuStore Floating-Point Single with Update
stfsu frS,d(rA)
EA ← (rA) + EXTS(d)
MEM(EA, 4) ← SINGLE(frS)
rA ← EA
EA rA +d
frS EA
stfsu
☞ C.7
EA rA
rA=0
•
0 5 6 10 11 15 16 31
53 S A d
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-199
8.2 命令セット
stfsux stfsuxStore Floating-Point Single with Update Indexed
stfsux frS,rA,rB
EA ← (rA) + (rB)
MEM(EA, 4) ← SINGLE(frS)rA ← EA
EA rA + rB
frS EA
☞ C.7
EA rA
rA=0
•
予約済み�
0 5 6 10 11 15 16 20 21 30 31
31 S A B 695 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-200 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
stfsx stfsxStore Floating-Point Single Indexed
stfsx frS,rA,rB
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
MEM(EA, 4) ← SINGLE(frS)
EA rA|0 + rB
frS EA
☞ C.7
•
予約済み�
0 5 6 10 11 15 16 20 21 30 31
31 S A B 663 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-201
8.2 命令セット
8
sS
th sthtore Half Word
sth rS,d(rA)
if rA = 0 then b ← 0
elseb ← (rA)
EA ← b + EXTS(d)
MEM(EA, 2) ← rS[16-31]
EA rA|0 + d rS 16 EA
•
0 5 6 10 11 15 16 31
44 S A d
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-202 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
sthbrx sthbrxStore Half Word Byte-Reverse Indexed
sthbrx rS,rA,rB
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
MEM(EA, 2) ← rS[24-31] || rS[16-23]
EA rA|0 + rB rS 8 EA
0 7 rS 8
EA 8 15
•
予約済み
0 5 6 10 11 15 16 20 21 30 31
31 S A B 918 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-203
8.2 命令セット
8
sS
thu sthutore Half Word with Update
sthu rS,d(rA)
EA ← (rA) + EXTS(d)
MEM(EA, 2) ← rS[16-31]
rA ← EA
EA rA + d rS 16 EA
EA rA
rA=0
•
0 5 6 10 11 15 16 31
45 S A d
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-204 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
sthux sthuxStore Half Word with Update Indexed
sthux rS,rA,rB
EA ← (rA) + (rB)
MEM(EA, 2) ← rS[16-31]
rA ← EA
EA rA + rB rS 16 EA
EA rA
rA=0
•
予約済み
0 5 6 10 11 15 16 20 21 30 31
31 S A B 439 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-205
8.2 命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-206 Freescale Semiconductor
sthx sthxStore Half Word Indexed
sthx rS,rA,rB
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
MEM(EA, 2) ← rS[16-31]
EA rA|0 + rB rS 16 EA
•
予約済み�
0 5 6 10 11 15 16 20 21 30 31
31 S A B 407 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
8.2 命令セット
第8章
命令セット
stmw stmwStore Multiple Word
stmw rS,d(rA)[POWER stm]
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + EXTS(d)
r ← rS
do while r ≤ 31MEM(EA, 4) ← GPR(r)
r ← r + 1
EA ← EA + 4
EA rA|0 + d
n= 32 - rS
EA n GPR rS r31
rS=30 2
EA 4 4
DSI ☞ 6.4.3 DSI 0x00300
•
0 5 6 10 11 15 16 31
47 S A d
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-207
8.2 命令セット
stswi stswiStore String Word Immediate
stswi rS,rA,NB[POWER stsi]
if rA = 0 then EA ← 0
else EA ← (rA)
if NB = 0 then n ← 32
else n ← NB
r ← rS – 1
i ← 32
do while n > 0
if i = 32 then r ← r + 1 (mod 32)
MEM(EA, 1) ← GPR(r)[i–i + 7]
i ← i + 8
if i = 64 then i ← 32
EA ← EA + 1
n ← n – 1
EA rA|0 NB 0 n=NB NB=0 n=32 n
nr=CEIL n 4 nr
GPR rS rS+nr-1 EA n
r0
☞ 6.4.3 DSI 0x00300
予約済み�
0 5 6 10 11 15 16 20 21 30 31
31 S A NB 725 0
8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-208 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-209
•
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
8.2 命令セット
stswx stswxStore String Word Indexed
stswx rS,rA,rB[POWER stsx]
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
n ← XER[25–31]
r ← rS – 1
i ← 32
do while n > 0
if i = 32 then r ← r + 1 (mod 32)MEM(EA, 1) ← GPR(r)[i–i + 7]i ← i + 8
if i = 64 then i ← 32
EA ← EA + 1
n ← n – 1
EA rA|0 + rB n=XER[25-31] n
nr=CEIL n 4 nr
GPR rS rS+nr-1 EA n
r0 n=0
☞ 6.4.3 DSI 0x00300
予約済み�
0 5 6 10 11 15 16 20 21 30 31
31 S A B 661 0
8
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-210 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
•
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-211
8.2 命令セット
8
sS
tw stwtore Word
stw rS,d(rA)[POWER st]
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + EXTS(d)
MEM(EA, 4) ← rS
EA rA|0 + d rS EA
•
0 5 6 10 11 15 16 31
36 S A d
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-212 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
stwbrx stwbrxStore Word Byte-Reverse Indexed
stwbrx rS,rA,rB[POWER stbrx]
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
MEM(EA, 4) ← rS[24-31] || rS[16-23] || rS[8-15] || rS[0-7]
EA rA|0 + rB rS 8 EA
0 7 rS 8
EA 8 15 rS
8 EA 16 23
rS 8 EA
24 31
•
予約済み
0 5 6 10 11 15 16 20 21 30 31
31 S A B 662 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-213
8.2 命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-214 Freescale Semiconductor
stwcx. stwcx.Store Word Conditional Indexed
stwcx. rS,rA,rB
if rA = 0 then b ← 0
else b ← (rA)EA ← b + (rB)
if RESERVE then
if RESERVE_ADDR = physical_addr(EA)
MEM(EA, 4) ← rS
CR0 ← 0b00 || 0b1 || XER[SO]
else
u ← undefined 1-bit value
if u then MEM(EA, 4) ← rS
CR0 ← 0b00 || u || XER[SO]
RESERVE ← 0
else
CR0 ← 0b00 || 0b0 || XER[SO]
EA rA|0 + rB RESERVE rS
rA+rB RESERVE CR0[EQ]
RESERVE RESERVE
CR0[EQ]
CR0[EQ]
RESERVE lwarx
stwcx. RESERVE
stwcx.
rS EA
0 5 6 10 11 15 16 20 21 30 31
31 S A B 150 1
8.2 命令セット
第8章
命令セット
stwcx.
rS EA
CR0
CR0[LT GT EQ S0] = 0b00 || store_performed || XER[SO]
EA 4
☞ 6.4.3 DSI 0x00300
• CR0
LT GT EQ SO
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-215
8.2 命令セット
8
sS
twu stwutore Word with Update
stwu rS,d(rA)[POWER stu]
EA ← (rA) + EXTS(d)
MEM(EA, 4) ← rS
rA ← EA
EA rA|0 + d rS EA
EA rA
rA=0
•
0 5 6 10 11 15 16 31
37 S A d
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-216 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
stwux stwuxStore Word with Update Indexed
stwux rS,rA,rB[POWER stux]
EA ← (rA) + (rB)
MEM(EA, 4) ← rS
rA ← EA
EA rA + rB rS EA
EA rA
rA=0
•
予約済み
0 5 6 10 11 15 16 20 21 30 31
31 S A B 183 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-217
8.2 命令セット
8
sS
twx stwxtore Word Indexed
stwx rS,rA,rB[POWER stx]
if rA = 0 then b ← 0
else b ← (rA)
EA ← b + (rB)
MEM(EA, 4) ← rS
EA rA|0 + rB rS EA
•
予約済み�
0 5 6 10 11 15 16 20 21 30 31
31 S A B 151 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-218 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
subfx subfxSubtract From
subf rD,rA,rB (OE = 0 Rc = 0)subf. rD,rA,rB (OE = 0 Rc = 1) subfo rD,rA,rB (OE = 1 Rc = 0) subfo. rD,rA,rB (OE = 1 Rc = 1)
rD ← ¬ (rA) + (rB) + 1
rA + rB + 1 rD
subf
• CR0
LT GT EQ SO Rc=1
• XER
SO OV OE=1
sub rD,rA,rB = subf rD,rB,rA
0 5 6 10 11 15 16 20 21 22 30 31
31 D A B OE 40 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-219
8.2 命令セット
8
sS
ubfcx subfcxubtract from Carrying
subfc rD,rA,rB (OE = 0 Rc = 0)subfc. rD,rA,rB (OE = 0 Rc = 1)subfco rD,rA,rB (OE = 1 Rc = 0)subfco. rD,rA,rB (OE = 1 Rc = 1)[POWER sf, sf., sfo, sfo.]
rD ← ¬ (rA) + (rB) + 1
rA + rB + 1 rD
• CR0
LT GT EQ SO Rc=1
CR0
XER
• XER
CA
SO OV OE=1
subc rD,rA,rB = subfc rD,rB,rA
0 5 6 10 11 15 16
31 D A B OE 8 Rc
20 21 22 30 31
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-220 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
subfex subfexSubtract from Extended
subfe rD,rA,rB (OE = 0 Rc = 0)subfe. rD,rA,rB (OE = 0 Rc = 1)subfeo rD,rA,rB (OE = 1 Rc = 0)subfeo. rD,rA,rB (OE = 1 Rc = 1)[POWER sfe, sfe., sfeo, sfeo.]
rD ← ¬ (rA) + (rB) + XER[CA]
rA + rB + XER[CA] rD
• CR0
LT GT EQ SO Rc=1
CR0
XER
• XER
CA
SO OV OE=1
0 5 6 10 11 15 16
31 D A B OE 136 Rc
20 21 22 30 31
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-221
8.2 命令セット
8
sS
ubfic subficubtract from Immediate Carrying
subfic rD,rA,SIMM[POWER sfi]
rD ← ¬ (rA) + EXTS(SIMM) + 1
rA + EXTS SIMM + 1 rD
• XER
CA
0 5 6 10 11 15 16 31
08 D A SIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-222 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
�
subfmex subfmexSubtract from Minus One Extended
subfme rD,rA (OE = 0 Rc = 0)subfme. rD,rA (OE = 0 Rc = 1)subfmeo rD,rA (OE = 1 Rc = 0)subfmeo. rD,rA (OE = 1 Rc = 1)[POWER sfme, sfme., sfmeo, sfmeo.]
rD ← ¬ (rA) + XER[CA] – 1
rA + XER[CA] + (32)1 rD
• CR0
LT GT EQ SO Rc=1
CR0
XER
• XER
CA
SO OV OE=1
0 5 6 10 11 15 16 20 21 22 30 31
31 D A
予約済み
0 0 0 0 0 OE 232 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-223
8.2 命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-224 Freescale Semiconductor
subfzex subfzexSubtract from Zero Extended
subfze rD,rA (OE = 0 Rc = 0)subfze. rD,rA (OE = 0 Rc = 1)subfzeo rD,rA (OE = 1 Rc = 0)subfzeo. rD,rA (OE = 1 Rc = 1)[POWER sfze, sfze., sfzeo, sfzeo.]
rD ← ¬ (rA) + XER[CA]
rA + XER[CA] rD
• CR0
LT GT EQ SO Rc=1
CR0
XER
• XER
CA
SO OV OE=1
0 5 6 10 11 15 16 20 21 22 30 31
31 D A
予約済み�
0 0 0 0 0 OE 200 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA XO
8.2 命令セット
第8章
命令セット
sync syncSynchronize
[POWER dcs]
sync
sync sync
sync sync
sync sync
VEA sync
☞ 5
sync
sync
sync
sync
sync
sync eieio
☞ 4.1.4
0 0 0 0 0 598 031 0 0 0 0 0 0 0 0 0 0
0 5 6 10 11 15 16 20 21 30 31
予約済み�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-225
8.2 命令セット
8
•
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-226 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-227
tlbia tlbiaTranslation Lookaside Buffer Invalidate All
All TLB entries ← invalid
TLB
MSR[IR] MSR[DR] TLB SLB
•
0 0 0 0 0 370 0
0 5 6 10 11 15 16 20 21 30 31
予約済み�
31 0 0 0 0 0 0 0 0 0 0
√
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
OEA X√
8.2 命令セット
tlbie tlbieTranslation Lookaside Buffer Invalidate Entry
tlbie rB[POWER tlbi]
VPS ← rB[4-19] Identify TLB entries corresponding to VPS
Each such TLB entry ← invalid
VPS EA rB
TLB EA
TLB
tlbie
TLB TLB
MSR[IR] MSR[DR] TLB
EA
☞ 7.6.3.4
☞ 7.7.3
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
31 0 0 0 0 0 0 0 0 0 0 B 306 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
OEA √ √ X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-228 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
tlbsync tlbsyncTLBSynchronize
tlbie
tlbsync tlbsync
tlbsync tlbie
eieio
☞ 7.6.3.4
☞ 7.7.3
•
0 5 6 10 11 15 16 20 21 30 31
予約済み�
31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 566 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
OEA √ √ X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-229
8.2 命令セット
8
tT
w twrap Wordtw TO,rA,rB[POWER t]
a ← EXTS(rA)
b ← EXTS(rB)
if (a < b) & TO[0] then TRAP
if (a > b) & TO[1] then TRAP
if (a = b) & TO[2] then TRAP
if (a <U b) & TO[3] then TRAP
if (a >U b) & TO[4] then TRAP
rA rB TO
•
tweq rA,rB = tw 4,rA,rB
twlge rA,rB = tw 5,rA,rB
trap = tw 31,0,0
0 5 6 10 11 15 16 20 21 30 31
予約済み�
31 TO A B 4 0
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-230 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
twi twiTrap Word Immediate
twi TO,rA,SIMM[POWER ti]
a ← EXTS(rA)
if (a < EXTS(SIMM)) & TO[0] then TRAP
if (a > EXTS(SIMM)) & TO[1] then TRAP
if (a = EXTS(SIMM)) & TO[2] then TRAP
if (a <U EXTS(SIMM)) & TO[3] then TRAP
if (a >U EXTS(SIMM)) & TO[4] then TRAP
rA SIMM TO
•
twgti rA,value = twi 8,rA,value
twllei rA,value = twi 6,rA,value
0 5 6 10 11 15 16 31
03 TO A SIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-231
8.2 命令セット
8
xX
orx xorxOR
xor rA,rS,rB (Rc = 0)xor. rA,rS,rB (Rc = 1)
xrA ← (rS) ⊕ (rB)
rS rB XOR rA
• CR0
LT GT EQ SO Rc=1
0 5 6 10 11 15 16 20 21 30 31
31 S A B 316 Rc
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA X
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-232 Freescale Semiconductor
8.2 命令セット
第8章
命令セット
xori xoriXOR Immediate
xori rA,rS,UIMM[POWER xoril]
rA ← (rS) ⊕ ((16)0 || UIMM)
rS 0x0000||UIMM XOR rA
•
0 5 6 10 11 15 16 31
26 S A UIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 8-233
8.2 命令セット
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
8-234 Freescale Semiconductor
xoris xorisXOR Immediate Shifted
xoris rA,rS,UIMM[POWER xoriu]
rA ← (rS) ⊕ (UIMM || (16)0)
rS UIMM||0x0000 XOR rA
•
0 5 6 10 11 15 16 31
27 S A UIMM
アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�
UISA D
A.1 ニーモニック順の命令一覧(10 進値および 16 進値)
第A章
命令セット一覧
付録付録付録付録 A 命令セット一覧命令セット一覧命令セット一覧命令セット一覧
• A.1 10 16
• A.2 1 2 10
16
• A.3
• A.4
• A.5
• A.6
• A.7
A.1 ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(10 進値および進値および進値および進値および 16 進値)進値)進値)進値)
A-1 1
0 5 2 21 31 10 16
表表表表 A-1 ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(10 進値、進値、進値、進値、16 進値)進値)進値)進値)
予約ビット
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
addx 31 (0x1F) D A B OE 0266 (0x10A) Rc
addcx 31 (0x1F) D A B OE 0010 (0x00A) Rc
addex 31 (0x1F) D A B OE 0138 (0x08A) Rc
addi 14 (0xE) D A SIMM
addic 12 (0xC) D A SIMM
31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-1
A.1 ニーモニック順の命令一覧(10 進値および 16 進値)
表表表表 A-1 ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
addic. 13 (0xD) D A SIMM
addis 15 (0xF) D A SIMM
addmex 31 (0x1F) D A 0_0000 OE 0234 (0x0EA) Rc
addzex 31 (0x1F) D A 0_0000 OE 0202 (0x0CA) Rc
andx 31 (0x1F) S A B 0028 (0x01C) Rc
andcx 31 (0x1F) S A B 0060 (0x03C) Rc
andi. 28 (0x1C) S A UIMM
andis. 29 (0x1D) S A UIMM
bx 18 (0x12) LI AA LK
bcx 16 (0x10) BO BI BD AA LK
bcctrx 19 (0x13) BO BI 0_0000 00528 (0x210) LK
bclrx 19 (0x13) BO BI 0_0000 0016 (0x010) LK
cmp 31 (0x1F) crfD 0 L A B 0000 (0x000) 0
cmpi 11 (0x0B) crfD 0 L A SIMM
cmpl 31 (0x1F) crfD 0 L A B 0032 (0x020) 0
cmpli 10 (0x0A) crfD 0 L A UIMM
cntlzwx 31 (0x1F) S A 0_0000 0026 (0x01A) Rc
crand 19 (0x13) crbD crbA crbB 0257 (0x101) 0
crandc 19 (0x13) crbD crbA crbB 0129 (0x081) 0
creqv 19 (0x13) crbD crbA crbB 0289 (0x121) 0
crnand 19 (0x13) crbD crbA crbB 0225 (0x0E1) 0
crnor 19 (0x13) crbD crbA crbB 0033 (0x21) 0
cror 19 (0x13) crbD crbA crbB 0449 (0x1C1) 0
crorc 19 (0x13) crbD crbA crbB 0417 (0x1A1) 0
crxor 19 (0x13) crbD crbA crbB 0193 (0C1) 0
dcba 1 31 (0x1F) 000_00 A B 0758 (0x2F6) 0
dcbf 31 (0x1F) 000_00 A B 0086 (0x056) 0
dcbi 2 31 (0x1F) 000_00 A B 0470 (0x1D6) 0
dcbst 31 (0x1F) 000_00 A B 0054 (0x036) 0
dcbt 31 (0x1F) 000_00 A B 0278 (0x116) 0
dcbtst 31 (0x1F) 000_00 A B 0246 (0x0F6) 0
dcbz 31 (0x1F) 000_00 A B 1014 (0x3F6) 0
divwx 31 (0x1F) D A B OE 0491 (0x1EB) Rc
divwux 31 (0x1F) D A B OE 0459 (0x1CB) Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-2 Freescale Semiconductor
A.1 ニーモニック順の命令一覧(10 進値および 16 進値)
第A章
命令セット一覧
表表表表 A-1 ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
eciwx 1 31 (0x1F) D A B 0310 (0x136) 0
ecowx 1 31 (0x1F) S A B 0438 (0x1B6) 0
eieio 31 (0x1F) 000_00 00_000 0_0000 0854 (0x356) 0
eqvx 31 (0x1F) S A B 0284 (0x11C) Rc
extsbx 31 (0x1F) S A 0_0000 0954 (0x3BA) Rc
extshx 31 (0x1F) S A 0_0000 0922 (0x39A) Rc
fabsx 63 (0x3F) D 00_000 B 0264 (0x108) Rc
faddx 63 (0x3F) D A B 0000_0 0021 (0x015) Rc
faddsx 59 (0x3B) D A B 0000_0 0021 (0x015) Rc
fcmpo 63 (0x3F) crfD 00 A B 0032 (0x020) 0
fcmpu 63 (0x3F) crfD 00 A B 0000 (0x000) 0
fctiwx 63 (0x3F) D 00_000 B 0014 (0x00E) Rc
fctiwzx 63 (0x3F) D 00_000 B 0015 (0x00F) Rc
fdivx 63 (0x3F) D A B 0000_0 0018 (0x012) Rc
fdivsx 59 (0x3B) D A B 0000_0 0018 (0x012) Rc
fmaddx 63 (0x3F) D A B C 0029 (0x01D) Rc
fmaddsx 59 (0x3B) D A B C 0029 (0x01D) Rc
fmrx 63 (0x3F) D 00_000 B 0072 (0x48) Rc
fmsubx 63 (0x3F) D A B C 0028 (0x01C) Rc
fmsubsx 59 (0x3B) D A B C 0028 (0x01C) Rc
fmulx 63 (0x3F) D A 0_0000 C 0025 (0x019) Rc
fmulsx 59 (0x3B) D A 0_0000 C 0025 (0x019) Rc
fnabsx 63 (0x3F) D 00_000 B 0136 (0x88) Rc
fnegx 63 (0x3F) D 00_000 B 0040 (0x28) Rc
fnmaddx 63 (0x3F) D A B C 0031 (0x01F) Rc
fnmaddsx 59 (0x3B) D A B C 0031 (0x01F) Rc
fnmsubx 63 (0x3F) D A B C 0030 (0x01E) Rc
fnmsubsx 59 (0x3B) D A B C 0030 (0x01E) Rc
fresx 1 59 (0x3B) D 00_000 B 0000_0 0024 (0x018) Rc
frspx 63 (0x3F) D 00_000 B 0012 (0xC) Rc
frsqrtex 1 63 (0x3F) D 00_000 B 0000_0 0026 (0x01A) Rc
fselx 1 63 (0x3F) D A B C 0023 (0x017) Rc
fsqrtx 1 63 (0x3F) D 00_000 B 0000_0 0022 (0x016) Rc
fsqrtsx 1 59 (0x3B) D 00_000 B 0000_0 0022 (0x016) Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-3
A.1 ニーモニック順の命令一覧(10 進値および 16 進値)
表表表表 A-1 ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
fsubx 63 (0x3F) D A B 0000_0 0020 (0x014) Rc
fsubsx 59 (0x3B) D A B 0000_0 0020 (0x014) Rc
icbi 31 (0x1F) 000_00 A B 0982 (0x3D6) 0
isync 19 (0x13) 000_00 00_000 0_0000 0150 (0x096) 0
lbz 34 (0x22) D A d
lbzu 35 (0x23) D A d
lbzux 31 (0x1F) D A B 0119 (0x077) 0
lbzx 31 (0x1F) D A B 087 (0x057) 0
lfd 50 (0x32) D A d
lfdu 51 (0x33) D A d
lfdux 31 (0x1F) D A B 0631 (0x277) 0
lfdx 31 (0x1F) D A B 0599 (0x257) 0
lfs 48 (0x30) D A d
lfsu 49 (0x31) D A d
lfsux 31 (0x1F) D A B 0567 (0x237) 0
lfsx 31 (0x1F) D A B 0535 (0x217) 0
lha 42 (0x2A) D A d
lhau 43 (0x2B) D A d
lhaux 31 (0x1F) D A B 0375 (0x177) 0
lhax 31 (0x1F) D A B 0343 (0x157) 0
lhbrx 31 (0x1F) D A B 0790 (0x316) 0
lhz 40 (0x28) D A d
lhzu 41 (0x29) D A d
lhzux 31 (0x1F) D A B 0311 (0x137) 0
lhzx 31 (0x1F) D A B 0279 (0x117) 0
lmw 3 46 (0x2E) D A d
lswi 3 31 (0x1F) D A NB 0597 (0x255) 0
lswx 3 31 (0x1F) D A B 0533 (0x215) 0
lwarx 31 (0x1F) D A B 0020 (0x014) 0
lwbrx 31 (0x1F) D A B 0534 (0x216) 0
lwz 32 (0x20) D A d
lwzu 33 (0x21) D A d
lwzux 31 (0x1F) D A B 0055 (0x037) 0
lwzx 31 (0x1F) D A B 0023 (0x017) 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-4 Freescale Semiconductor
A.1 ニーモニック順の命令一覧(10 進値および 16 進値)
第A章
命令セット一覧
表表表表 A-1 ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
mcrf 19 (0x13) crfD 00 crfS 00 0_0000 0000 (0x000) 0
mcrfs 63 (0x3F) crfD 00 crfS 00 0_0000 0064 (0x040) 0
mcrxr 31 (0x1F) crfD 00 00_000 0_0000 0512 (0x200) 0
mfcr 31 (0x1F) D 00_000 0_0000 0019 (0x013) 0
mffsx 63 (0x3F) D 00_000 0_0000 0583 (0x247) Rc
mfmsr 2 31 (0x1F) D 00_000 0_0000 0083 (0x053) 0
mfspr 4 31 (0x1F) D spr 0339 (0x153) 0
mfsr 2 31 (0x1F) D 0 SR 0_0000 0595 (0x099) 0
mfsrin 2 31 (0x1F) D 00_000 B 0659 (0x293) 0
mftb 31 (0x1F) D tbr 0371 (0x173) 0
mtcrf 31 (0x1F) S 0 CRM 0 0144 (0x090) 0
mtfsb0x 63 (0x3F) crbD 00_000 0_0000 0070 (0x046) Rc
mtfsb1x 63 (0x3F) crbD 00_000 0_0000 0038 (0x026) Rc
mtfsfx 63 (0x3F) 0 FM 0 B 0711 (0x2C7) Rc
mtfsfix 63 (0x3F) crfD 00 00_000 IMM 0 0134 (0x086) Rc
mtmsr 2 31 (0x1F) S 00_000 0_0000 0146 (0x092) 0
mtspr 4 31 (0x1F) S spr 0467 (0x1D3) 0
mtsr 2 31 (0x1F) S 0 SR 0_0000 0210 (0x001) 0
mtsrin 2 31 (0x1F) S 00_000 B 0242 (0x0F2) 0
mulhwx 31(0x1F) D A B 0 0075 (0x04B) Rc
mulhwux 31 (0x1F) D A B 0 0011 (0x00B) Rc
mulli 07 (0x07) D A SIMM
mullwx 31 (0x1F) D A B OE 0235 (0x0EB) Rc
nandx 31 (0x1F) S A B 0476 (0x1DC) Rc
negx 31 (0x1F) D A 0_0000 OE 0104 (0x068) Rc
norx 31 (0x1F) S A B 0124 (0x07C) Rc
orx 31 (0x1F) S A B 0444 (0x1BC) Rc
orcx 31 (0x1F) S A B 0412 (0x19C) Rc
ori2 24 (0x18) S A UIMM
oris 25 (0x19) S A UIMM
rfi 2 19 (0x13) 000_00 00_000 0_0000 0050 (0x032) 0
rlwimix 20 (0x14) S A SH MB ME Rc
rlwinmx 21 (0x15) S A SH MB ME Rc
rlwnmx 23 (0x17) S A B MB ME Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-5
A.1 ニーモニック順の命令一覧(10 進値および 16 進値)
表表表表 A-1 ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
sc 17 (0x11) 000_0000_0000_0000_0000_0000_00 1 0
slwx 31 (0x1F) S A B 0024 (0x018) Rc
srawx 31 (0x1F) S A B 0792 (0x318) Rc
srawix 31 (0x1F) S A SH 0824 (0x338) Rc
srwx 31 (0x1F) S A B 0536 (0x218) Rc
stb 38 (0x26) S A d
stbu 39 (0x27) S A d
stbux 31 (0x1F) S A B 0247 (0x0F7) 0
stbx 31 (0x1F) S A B 0215 (0x0D7) 0
stfd 54 (0x36) S A d
stfdu 55 (0x37) S A d
stfdux 31 (0x1F) S A B 0759 (0x2F7) 0
stfdx 31 (0x1F) S A B 0727 (0x2D7) 0
stfiwx 1 31 (0x1F) S A B 0983 (0x3D7) 0
stfs 52 (0x34) S A d
stfsu 53 (0x35) S A d
stfsux 31 (0x1F) S A B 0695 (0x2B7) 0
stfsx 31 (0x1F) S A B 0663 (0x297) 0
sth 44 (0x2C) S A d
sthbrx 31 (0x1F) S A B 0918 (0x396) 0
sthu 45 (0x2D) S A d
sthux 31 (0x1F) S A B 0439 (0x1B7) 0
sthx 31 (0x1F) S A B 0407 (0x197) 0
stmw 3 47 (0x2F) S A d
stswi 3 31 (0x1F) S A NB 0725 (0x2D5) 0
stswx 3 31 (0x1F) S A B 0661 (0x295) 0
stw 36 (0x24) S A d
stwbrx 31 (0x1F) S A B 0662 (0x296) 0
stwcx. 31 (0x1F) S A B 0150 (0x096) 1
stwu 37 (0x25) S A d
stwux 31 (0x1F) S A B 0183 (0x0B7) 0
stwx 31 (0x1F) S A B 0151 (0x097) 0
subfx 31 (0x1F) D A B OE 0040 (0x028) Rc
subfcx 31 (0x1F) D A B OE 0008 (0x008) Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-6 Freescale Semiconductor
A.2 第 1 オペコードおよび第 2 オペコード順の命令一覧(10 進値および 16 進値)
第A章
命令セット一覧
表表表表 A-1 ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(ニーモニック順の命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
A.2 第第第第 1 オペコードおよび第オペコードおよび第オペコードおよび第オペコードおよび第 2 オペコード順の命令一覧(オペコード順の命令一覧(オペコード順の命令一覧(オペコード順の命令一覧(10進値および進値および進値および進値および 16 進値)進値)進値)進値)
A-2 1 0 5 2
21 31 10 16
表表表表 A-2 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(10 進値、進値、進値、進値、16 進値)進値)進値)進値)
subfex 31 (0x1F) D A B OE 0136 (0x088) Rc
subfic 08 (0x08) D A SIMM
subfmex 31 (0x1F) D A 0_0000 OE 0232 (0x0E8) Rc
subfzex 31 (0x1F) D A 0_0000 OE 0200 (0x0C8) Rc
sync 31 (0x1F) 000_00 00_000 0_0000 0598 (0x256) 0
tlbia 1 31 (0x1F) 000_00 00_000 0_0000 0370 (0x172) 0
tlbie 1, 2 31 (0x1F) 000_00 00_000 B 0306 (0x132) 0
tlbld 1, 2 31 (0x1F) 000_00 00_000 B 0978 (0x3D2) 0
tlbli 1, 2 31 (0x1F) 000_00 00_000 B 1010 (0x3F2) 0
tlbsync 1, 2 31 (0x1F) 000_00 00_000 0_0000 0566 (0x236) 0
tw 31 (0x1F) TO A B 0004 (0x004) 0
twi 03 (0x03) TO A SIMM
xorx 31 (0x1F) S A B 0316 (0x13C) Rc
xori 26 (0x1A) S A UIMM
xoris 27 (0x1B) S A UIMM
1 PowerPCアーキテクチャのオプション�2 スーパバイザ・レベル命令�3 ロード/ストア・ストリング命令またはロード/ストア・マルチプル命令�4 スーパバイザ・レベル命令およびユーザ・レベル命令�
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
twi 03 (0x03) TO A SIMM
mulli 07 (0x07) D A SIMM
subfic 08 (0x08) D A SIMM
cmpli 10 (0x0A) crfD 0 L A UIMM
cmpi 11 (0x0B) crfD 0 L A SIMM
addic 12 (0xC) D A SIMM
addic. 13 (0xD) D A SIMM
addi 14 (0xE) D A SIMM
addis 15 (0xF) D A SIMM
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-7
A.2 第 1 オペコードおよび第 2 オペコード順の命令一覧(10 進値および 16 進値)
表表表表 A-2 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
bcx 16 (0x10) BO BI BD AA LK
sc 17 (0x11) 000_0000_0000_0000_0000_0000_00 1 0
bx 18 (0x12) LI AA LK
mcrf 19 (0x13) crfD 00 crfS 00 0_0000 0000 (0x000) 0
bclrx 19 (0x13) BO BI 0_0000 0016 (0x010) LK
crnor 19 (0x13) crbD crbA crbB 0033 (0x21) 0
rfi 1 19 (0x13) 000_00 00_000 0_0000 0050 (0x032) 0
crandc 19 (0x13) crbD crbA crbB 0129 (0x081) 0
isync 19 (0x13) 000_00 00_000 0_0000 0150 (0x096) 0
crxor 19 (0x13) crbD crbA crbB 0193 (0C1) 0
crnand 19 (0x13) crbD crbA crbB 0225 (0x0E1) 0
crand 19 (0x13) crbD crbA crbB 0257 (0x101) 0
creqv 19 (0x13) crbD crbA crbB 0289 (0x121) 0
crorc 19 (0x13) crbD crbA crbB 0417 (0x1A1) 0
cror 19 (0x13) crbD crbA crbB 0449 (0x1C1) 0
bcctrx 19 (0x13) BO BI 0_0000 0528 (0x210) LK
rlwimix 20 (0x14) S A SH MB ME Rc
rlwinmx 21 (0x15) S A SH MB ME Rc
rlwnmx 23 (0x17) S A B MB ME Rc
ori 24 (0x18) S A UIMM
oris 25 (0x19) S A UIMM
xori 26 (0x1A) S A UIMM
xoris 27 (0x1B) S A UIMM
andi. 28 (0x1C) S A UIMM
andis. 29 (0x1D) S A UIMM
cmp 31 (0x1F) crfD 0 L A B 0000 (0x000) 0
tw 31 (0x1F) TO A B 0004 (0x004) 0
lvsl 1 31 (0x1F) vD A B 0006 (0x006) 0
lvebx 1 31 (0x1F) vD A B 0007 (0x007) 0
subfcx 31 (0x1F) D A B OE 0008 (0x008) Rc
addcx 31 (0x1F) D A B OE 0010 (0x00A) Rc
mulhwux 31 (0x1F) D A B 0 0011 (0x00B) Rc
mfcr 31 (0x1F) D 00_000 0_0000 0019 (0x013) 0
lwarx 31 (0x1F) D A B 0020 (0x014) 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-8 Freescale Semiconductor
A.2 第 1 オペコードおよび第 2 オペコード順の命令一覧(10 進値および 16 進値)
第A章
命令セット一覧
表表表表 A-2 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
lwzx 31 (0x1F) D A B 0023 (0x017) 0
slwx 31 (0x1F) S A B 0024 (0x018) Rc
cntlzwx 31 (0x1F) S A 0_0000 0026 (0x01A) Rc
andx 31 (0x1F) S A B 0028 (0x01C) Rc
cmpl 31 (0x1F) crfD 0 L A B 0032 (0x020) 0
lvsr 1 31 (0x1F) vD A B 0038 (0x026) 0
lvehx 1 31 (0x1F) vD A B 0039 (0x027) 0
subfx 31 (0x1F) D A B OE 0040 (0x028) Rc
dcbst 31 (0x1F) 000_00 A B 0054 (0x036) 0
lwzux 31 (0x1F) D A B 0055 (0x037) 0
andcx 31 (0x1F) S A B 0060 (0x03C) Rc
lvewx 1 31 (0x1F) vD A B 0071 (0x047) 0
mulhwx 31(0x1F) D A B 0 0075 (0x04B) Rc
mfmsr 1 31 (0x1F) D 00_000 0_0000 0083 (0x053) 0
dcbf 31 (0x1F) 000_00 A B 0086 (0x056) 0
lbzx 31 (0x1F) D A B 0087 (0x057) 0
negx 31 (0x1F) D A 0_0000 OE 0104 (0x068) Rc
lbzux 31 (0x1F) D A B 0119 (0x077) 0
norx 31 (0x1F) S A B 0124 (0x07C) Rc
subfex 31 (0x1F) D A B OE 0136 (0x088) Rc
addex 31 (0x1F) D A B OE 0138 (0x08A) Rc
mtcrf 31 (0x1F) S 0 CRM 0 0144 (0x090) 0
mtmsr 1 31 (0x1F) S 00_000 0_0000 0146 (0x092) 0
stwcx. 31 (0x1F) S A B 0150 (0x096) 1
stwx 31 (0x1F) S A B 0151 (0x097) 0
stwux 31 (0x1F) S A B 0183 (0x0B7) 0
subfzex 31 (0x1F) D A 0_0000 OE 0200 (0x0C8) Rc
addzex 31 (0x1F) D A 0_0000 OE 0202 (0x0CA) Rc
mtsr 1 31 (0x1F) S 0 SR 0_0000 0210 (0x001) 0
stbx 31 (0x1F) S A B 0215 (0x0D7) 0
subfmex 31 (0x1F) D A 0_0000 OE 0232 (0x0E8) Rc
addmex 31 (0x1F) D A 0_0000 OE 0234 (0x0EA) Rc
mullwx 31 (0x1F) D A B OE 0235 (0x0EB) Rc
mtsrin 1 31 (0x1F) S 00_000 B 0242 (0x0F2) 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-9
A.2 第 1 オペコードおよび第 2 オペコード順の命令一覧(10 進値および 16 進値)
表表表表 A-2 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
dcbtst 31 (0x1F) 000_00 A B 0246 (0x0F6) 0
stbux 31 (0x1F) S A B 0247 (0x0F7) 0
addx 31 (0x1F) D A B OE 0266 (0x10A) Rc
dcbt 31 (0x1F) 000_00 A B 0278 (0x116) 0
lhzx 31 (0x1F) D A B 0279 (0x117) 0
eqvx 31 (0x1F) S A B 0284 (0x11C) Rc
tlbie 1, 2 31 (0x1F) 000_00 00_000 B 0306 (0x132) 0
eciwx 2 31 (0x1F) D A B 0310 (0x136) 0
lhzux 31 (0x1F) D A B 0311 (0x137) 0
xorx 31 (0x1F) S A B 0316 (0x13C) Rc
mfspr 3 31 (0x1F) D spr 0339 (0x153) 0
dst 1 31 (0x1F) 0 00 STRM A B 0342 (0x156) 0
dstt 1 31 (0x1F) 1 00 STRM A B 0342 (0x156) 0
lhax 31 (0x1F) D A B 0343 (0x157) 0
lvxl 1 31 (0x1F) vD A B 0359 (0x167) 0
tlbia 2 31 (0x1F) 000_00 00_000 0_0000 0370 (0x172) 0
mftb 31 (0x1F) D tbr 0371 (0x173) 0
dstst 1 31 (0x1F) 0 00 STRM A B 0374 (0x176) 0
dststt 1 31 (0x1F) 1 00 STRM A B 0374 (0x176) 0
lhaux 31 (0x1F) D A B 0375 (0x177) 0
sthx 31 (0x1F) S A B 0407 (0x197) 0
orcx 31 (0x1F) S A B 0412 (0x19C) Rc
ecowx 2 31 (0x1F) S A B 0438 (0x1B6) 0
sthux 31 (0x1F) S A B 0439 (0x1B7) 0
orx 31 (0x1F) S A B 0444 (0x1BC) Rc
divwux 31 (0x1F) D A B OE 0459 (0x1CB) Rc
mtspr 3 31 (0x1F) S spr 0467 (0x1D3) 0
dcbi 1 31 (0x1F) 000_00 A B 0470 (0x1D6) 0
nandx 31 (0x1F) S A B 0476 (0x1DC) Rc
divwx 31 (0x1F) D A B OE 0491 (0x1EB) Rc
mcrxr 31 (0x1F) crfD 00 00_000 0_0000 0512 (0x200) 0
lswx 4 31 (0x1F) D A B 0533 (0x215) 0
lwbrx 31 (0x1F) D A B 0534 (0x216) 0
lfsx 31 (0x1F) D A B 0535 (0x217) 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-10 Freescale Semiconductor
A.2 第 1 オペコードおよび第 2 オペコード順の命令一覧(10 進値および 16 進値)
第A章
命令セット一覧
表表表表 A-2 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
srwx 31 (0x1F) S A B 0536 (0x218) Rc
tlbsync 1, 2 31 (0x1F) 000_00 00_000 0_0000 0566 (0x236) 0
lfsux 31 (0x1F) D A B 0567 (0x237) 0
mfsr 1 31 (0x1F) D 0 SR 0_0000 0595 (0x099) 0
lswi4 31 (0x1F) D A NB 0597 (0x255) 0
sync 31 (0x1F) 000_00 00_000 0_0000 0598 (0x256) 0
lfdx 31 (0x1F) D A B 0599 (0x257) 0
lfdux 31 (0x1F) D A B 0631 (0x277) 0
mfsrin 1 31 (0x1F) D 00_000 B 0659 (0x293) 0
stswx 4 31 (0x1F) S A B 0661 (0x295) 0
stwbrx 31 (0x1F) S A B 0662 (0x296) 0
stfsx 31 (0x1F) S A B 0663 (0x297) 0
stfsux 31 (0x1F) S A B 0695 (0x2B7) 0
stswi 4 31 (0x1F) S A NB 0725 (0x2D5) 0
stfdx 31 (0x1F) S A B 0727 (0x2D7) 0
dcba 2 31 (0x1F) 000_00 A B 0758 (0x2F6) 0
stfdux 31 (0x1F) S A B 0759 (0x2F7) 0
lhbrx 31 (0x1F) D A B 0790 (0x316) 0
srawx 31 (0x1F) S A B 0792 (0x318) Rc
dss 1 31 (0x1F) 0 00 STRM 00_000 0_0000 0822 (0x336) 0
dssall 1 31 (0x1F) 1 00 STRM 00_000 0_0000 0822 (0x336) 0
srawix 31 (0x1F) S A SH 0824 (0x338) Rc
eieio 31 (0x1F) 000_00 00_000 0_0000 0854 (0x356) 0
sthbrx 31 (0x1F) S A B 0918 (0x396) 0
extshx 31 (0x1F) S A 0_0000 0922 (0x39A) Rc
extsbx 31 (0x1F) S A 0_0000 0954 (0x3BA) Rc
tlbld 1, 2 31 (0x1F) 000_00 00_000 B 0978 (0x3D2) 0
icbi 31 (0x1F) 000_00 A B 0982 (0x3D6) 0
stwx 2 31 (0x1F) S A B 0983 (0x3D7) 0
tlbli 1,2 31 (0x1F) 000_00 00_000 B 1010 (0x3F2) 0
dcbz 31 (0x1F) 000_00 A B 1014 (0x3F6) 0
lwz 32 (0x20) D A d
lwzu 33 (0x21) D A d
lbz 34 (0x22) D A d
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-11
A.2 第 1 オペコードおよび第 2 オペコード順の命令一覧(10 進値および 16 進値)
表表表表 A-2 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
lbzu 35 (0x23) D A d
stw 36 (0x24) S A d
stwu 37 (0x25) S A d
stb 38 (0x26) S A d
stbu 39 (0x27) S A d
lhz 40 (0x28) D A d
lhzu 41 (0x29) D A d
lha 42 (0x2A) D A d
lhau 43 (0x2B) D A d
sth 44 (0x2C) S A d
sthu 45 (0x2D) S A d
lmw 4 46 (0x2E) D A d
stmw 4 47 (0x2F) S A d
lfs 48 (0x30) D A d
lfsu 49 (0x31) D A d
lfd 50 (0x32) D A d
lfdu 51 (0x33) D A d
stfs 52 (0x34) S A d
stfsu 53 (0x35) S A d
stfd 54 (0x36) S A d
stfdu 55 (0x37) S A d
fdivsx 59 (0x3B) D A B 0000_0 0018 (0x012) Rc
fsubsx 59 (0x3B) D A B 0000_0 0020 (0x014) Rc
faddsx 59 (0x3B) D A B 0000_0 0021 (0x015) Rc
fsqrtsx 2 59 (0x3B) D 00_000 B 0000_0 0022 (0x016) Rc
fresx 2 59 (0x3B) D 00_000 B 0000_0 0024 (0x018) Rc
fmulsx 59 (0x3B) D A 0_0000 C 0025 (0x019) Rc
fmsubsx 59 (0x3B) D A B C 0028 (0x01C) Rc
fmaddsx 59 (0x3B) D A B C 0029 (0x01D) Rc
fnmsubsx 59 (0x3B) D A B C 0030 (0x01E) Rc
fnmaddsx 59 (0x3B) D A B C 0031 (0x01F) Rc
fcmpu 63 (0x3F) crfD 00 A B 0000 (0x000) 0
frspx 63 (0x3F) D 00_000 B 0012 (0xC) Rc
fctiwx 63 (0x3F) D 00_000 B 0014 (0x00E) Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-12 Freescale Semiconductor
A.3 ニーモニック順の命令一覧(バイナリ)
第A章
命令セット一覧
表表表表 A-2 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(オペコードによる命令一覧(10 進値、進値、進値、進値、16 進値)(続き)進値)(続き)進値)(続き)進値)(続き)
A.3 ニーモニック順の命令一覧(バイナリ)ニーモニック順の命令一覧(バイナリ)ニーモニック順の命令一覧(バイナリ)ニーモニック順の命令一覧(バイナリ)
A-3
表表表表 A-3 ニーモニック順の命令一覧(バイナリ)ニーモニック順の命令一覧(バイナリ)ニーモニック順の命令一覧(バイナリ)ニーモニック順の命令一覧(バイナリ)
fctiwzx 63 (0x3F) D 00_000 B 0015 (0x00F) Rc
fdivx 63 (0x3F) D A B 0000_0 0018 (0x012) Rc
fsubx 63 (0x3F) D A B 0000_0 0020 (0x014) Rc
faddx 63 (0x3F) D A B 0000_0 0021 (0x015) Rc
fsqrtx 2 63 (0x3F) D 00_000 B 0000_0 0022 (0x016) Rc
fselx 2 63 (0x3F) D A B C 0023 (0x017) Rc
fmulx 63 (0x3F) D A 0_0000 C 0025 (0x019) Rc
frsqrtex 2 63 (0x3F) D 00_000 B 0000_0 0026 (0x01A) Rc
fmsubx 63 (0x3F) D A B C 0028 (0x01C) Rc
fmaddx 63 (0x3F) D A B C 0029 (0x01D) Rc
fnmsubx 63 (0x3F) D A B C 0030 (0x01E) Rc
fnmaddx 63 (0x3F) D A B C 0031 (0x01F) Rc
fcmpo 63 (0x3F) crfD 00 A B 0032 (0x020) 0
mtfsb1x 63 (0x3F) crbD 00_000 0_0000 0038 (0x026) Rc
fnegx 63 (0x3F) D 00_000 B 0040 (0x28) Rc
mcrfs 63 (0x3F) crfD 00 crfS 00 0_0000 0064 (0x040) 0
mtfsb0x 63 (0x3F) crbD 00_000 0_0000 0070 (0x046) Rc
fmrx 63 (0x3F) D 00_000 B 0072 (0x48) Rc
mtfsfix 63 (0x3F) crfD 00 00_000 IMM 0 0134 (0x086) Rc
fnabsx 63 (0x3F) D 00_000 B 0136 (0x88) Rc
fabsx 63 (0x3F) D 00_000 B 0264 (0x108) Rc
mffsx 63 (0x3F) D 00_000 0_0000 0583 (0x247) Rc
mtfsfx 63 (0x3F) 0 FM 0 B 0711 (0x2C7) Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1 PowerPCアーキテクチャのオプション�2 スーパバイザ・レベル命令�3 ロード/ストア・ストリング命令またはロード/ストア・マルチプル命令�4 スーパバイザ・レベル命令およびユーザ・レベル命令�
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
addx 011111 D A B OE 100001 010 Rc
addcx 011111 D A B OE 000001010 Rc
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-13
A.3 ニーモニック順の命令一覧(バイナリ)
表表表表 A-3 ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)
addex 011111 D A B OE 010001010 Rc
addi 001110 D A SIMM
addic 001100 D A SIMM
addic. 001101 D A SIMM
addis 001111 D A SIMM
addmex 011111 D A 0_0000 OE 11101010 Rc
addzex 011111 D A 0_0000 OE 11001010 Rc
andx 011111 S A B 000011100 Rc
andcx 011111 S A B 000111100 Rc
andi. 011100 S A UIMM
andis. 011101 S A UIMM
bx 010010 LI AA LK
bcx 010000 BO BI BD AA LK
bcctrx 010011 BO BI 0_0000 1000010000 LK
bclrx 010011 BO BI 0_0000 0000010000 LK
cmp 011111 crfD 0 L A B 0000000000 0
cmpi 001011 crfD 0 L A SIMM
cmpl 011111 crfD 0 L A B 0000100000 0
cmpli 001010 crfD 0 L A UIMM
cntlzwx 011111 S A 0_0000 0000011010 Rc
crand 010011 crbD crbA crbB 0100000001 0
crandc 010011 crbD crbA crbB 0010000001 0
creqv 010011 crbD crbA crbB 0100100001 0
crnand 010011 crbD crbA crbB 0011100001 0
crnor 010011 crbD crbA crbB 0000100001 0
cror 010011 crbD crbA crbB 0111000001 0
crorc 010011 crbD crbA crbB 0110100001 0
crxor 010011 crbD crbA crbB 0011000001 0
dcba 1 011111 000_00 A B 1011110110 0
dcbf 011111 000_00 A B 0001010110 0
dcbi 2 011111 000_00 A B 0111010110 0
dcbst 011111 000_00 A B 0000110110 0
dcbt 011111 000_00 A B 0100010110 0
dcbtst 011111 000_00 A B 0011110110 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-14 Freescale Semiconductor
A.3 ニーモニック順の命令一覧(バイナリ)
第A章
命令セット一覧
表表表表 A-3 ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)
dcbz 011111 000_00 A B 1111110110 0
divwx 011111 D A B OE 11110 1011 Rc
divwx 011111 D A B OE 11100 1011 Rc
eciwx 1 011111 D A B 0100110110 0
ecowx 1 011111 S A B 0110110110 0
eieio 011111 000_00 00_000 0_0000 1101010110 0
eqvx 011111 S A B 0100011100 Rc
extsbx 011111 S A 0_0000 1110111010 Rc
extshx 011111 S A 0_0000 1110011010 Rc
fabsx 111111 D 00_000 B 0100001000 Rc
faddx 111111 D A B 0000_0 1 0101 Rc
faddsx 111011 D A B 0000_0 1 0101 Rc
fcmpo 111111 crfD 00 A B 0000100000 0
fcmpu 111111 crfD 00 A B 0000000000 0
fctiwx 111111 D 00_000 B 0000001110 Rc
fctiwzx 111111 D 00_000 B 0000001111 Rc
fdivx 111111 D A B 0000_0 1 0010 Rc
fdivsx 111011 D A B 0000_0 1 0010 Rc
fmaddx 111111 D A B C 1 1101 Rc
fmaddsx 111011 D A B C 1 1101 Rc
fmrx 111111 D 00_000 B 0001001000 Rc
fmsubx 111111 D A B C 1 1100 Rc
fmsubsx 111011 D A B C 1 1100 Rc
fmulx 111111 D A 0_0000 C 1 1001 Rc
fmulsx 111011 D A 0_0000 C 1 1001 Rc
fnabsx 111111 D 00_000 B 0010001000 Rc
fnegx 111111 D 00_000 B 0000101000 Rc
fnmaddx 111111 D A B C 1 1111 Rc
fnmaddsx 111011 D A B C 1 1111 Rc
fnmsubx 111111 D A B C 1 1110 Rc
fnmsubsx 111011 D A B C 1 1110 Rc
fresx 1 111011 D 00_000 B 0000_0 1 1000 Rc
frspx 111111 D 00_000 B 0000001100 Rc
frsqrtex 1 111111 D 00_000 B 0000_0 1 1010 Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-15
A.3 ニーモニック順の命令一覧(バイナリ)
表表表表 A-3 ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)
fselx 1 111111 D A B C 1 0111 Rc
fsqrtx 1 111111 D 00_000 B 0000_0 1 0110 Rc
fsqrtsx 1 111011 D 00_000 B 0000_0 1 0110 Rc
fsubx 111111 D A B 0000_0 1 0100 Rc
fsubsx 111011 D A B 0000_0 1 0100 Rc
icbi 011111 000_00 A B 1111010110 0
isync 010011 000_00 00_000 0_0000 0010010110 0
lbz 100010 D A d
lbzu 100011 D A d
lbzux 011111 D A B 0001110111 0
lbzx 011111 D A B 0001010111 0
lfd 110010 D A d
lfdu 110011 D A d
lfdux 011111 D A B 1001110111 0
lfdx 011111 D A B 1001010111 0
lfs 110000 D A d
lfsu 110001 D A d
lfsux 011111 D A B 1000110111 0
lfsx 011111 D A B 1000010111 0
lha 101010 D A d
lhau 101011 D A d
lhaux 011111 D A B 0101110111 0
lhax 011111 D A B 0101010111 0
lhbrx 011111 D A B 1100010110 0
lhz 101000 D A d
lhzu 101001 D A d
lhzux 011111 D A B 0100110111 0
lhzx 011111 D A B 0100010111 0
lmw 3 101110 D A d
lswi 3 011111 D A NB 1001010101 0
lswx 3 011111 D A B 1000010101 0
lwarx 011111 D A B 0000010100 0
lwbrx 011111 D A B 1000010110 0
lwz 100000 D A d
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-16 Freescale Semiconductor
A.3 ニーモニック順の命令一覧(バイナリ)
第A章
命令セット一覧
表表表表 A-3 ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)
lwzu 100001 D A d
lwzux 011111 D A B 0000110111 0
lwzx 011111 D A B 0000010111 0
mcrf 010011 crfD 00 crfS 00 0_0000 000000000 0
mcrfs 111111 crfD 00 crfS 00 0_0000 001000000 0
mcrxr 011111 crfD 00 00_000 0_0000 1000000000 0
mfcr 011111 D 00_000 0_0000 0000010011 0
mffsx 111111 D 00_000 0_0000 1001000111 Rc
mfmsr 2 011111 D 00_000 0_0000 0001010011 0
mfspr 4 011111 D spr 0101010011 0
mfsr2 011111 D 0 SR 0_0000 1001010011 0
mfsrin2 011111 D 00_000 B 1010010011 0
mftb 011111 D tbr 0101110011 0
mfvscr3 000100 vD 00_000 0_0000 11000000100 0
mtcrf 011111 S 0 CRM 0 0010010000 0
mtfsb0x 111111 crbD 00_000 0_0000 0001000110 Rc
mtfsb1x 111111 crbD 00_000 0_0000 0000100110 Rc
mtfsfx 111111 0 FM 0 B 1011000111 Rc
mtfs x 111111 crfD 00 00_000 IMM 0 0010000110 Rc
mtmsr 2 011111 S 00_000 0_0000 0010010010 0
mtspr 4 011111 S spr 0111010011 0
mtsr 2 011111 S 0 SR 0_0000 0011010010 0
mtsrin 2 011111 S 00_000 B 0011110010 0
mulhwx 011111 D A B 0 001001011 Rc
mulhwux 011111 D A B 0 000001011 Rc
mulli 000111 D A SIMM
mullwx 011111 D A B OE 011101011 Rc
nandx 011111 S A B 0111011100 Rc
negx 011111 D A 0_0000 OE 001101000 Rc
norx 011111 S A B 0001111100 Rc
orx 011111 S A B 0110111100 Rc
orcx 011111 S A B 0110011100 Rc
ori 011000 S A UIMM
oris 011001 S A UIMM
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-17
A.3 ニーモニック順の命令一覧(バイナリ)
表表表表 A-3 ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)
rfi 2 010011 000_00 00_000 0_0000 0000110010 0
rlwimix 010100 S A SH MB ME Rc
rlwinmx 010101 S A SH MB ME Rc
rlwnmx 010111 S A B MB ME Rc
sc 010001 000_0000_0000_0000_0000_0000_00 1 0
slwx 011111 S A B 0000011000 Rc
srawx 011111 S A B 1100011000 Rc
srawix 011111 S A SH 1100011000 Rc
srwx 011111 S A B 1000011000 Rc
stb 100110 S A d
stbu 100111 S A d
stbux 011111 S A B 0011110111 0
stbx 011111 S A B 0011010111 0
stfd 110110 S A d
stfdu 110111 S A d
stfdux 011111 S A B 1011110111 0
stfdx 011111 S A B 1011010111 0
stfiwx 1 011111 S A B 1111010111 0
stfs 110100 S A d
stfsu 110101 S A d
stfsux 011111 S A B 1010110111 0
stfsx 011111 S A B 1010010111 0
sth 101100 S A d
sthbrx 011111 S A B 1110010110 0
sthu 101101 S A d
sthux 011111 S A B 110110111 0
sthx 011111 S A B 110010111 0
stmw 5 101111 S A d
stswi3 011111 S A NB 1011010101 0
stswx 3 011111 S A B 1010010101 0
stw 100100 S A d
stwbrx 011111 S A B 1010010110 0
stwcx. 011111 S A B 10010110 1
stwu 100101 S A d
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-18 Freescale Semiconductor
A.4 オペコード順の命令一覧(バイナリ)
第A章
命令セット一覧
表表表表 A-3 ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)ニーモニック順の命令一覧(バイナリ)(続き)
A.4 オペコード順の命令一覧(バイナリ)オペコード順の命令一覧(バイナリ)オペコード順の命令一覧(バイナリ)オペコード順の命令一覧(バイナリ)
A-4
表表表表 A-4 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(バイナリ)オペコードによる命令一覧(バイナリ)オペコードによる命令一覧(バイナリ)オペコードによる命令一覧(バイナリ)
stwux 011111 S A B 10110111 0
stwx 011111 S A B 10010111 0
subfx 011111 D A B OE 000101000 Rc
subfcx 011111 D A B OE 000001000 Rc
subfex 011111 D A B OE 010001000 Rc
subfic 001000 D A SIMM
subfmex 011111 D A 0_0000 OE 011101000 Rc
subfzex 011111 D A 0_0000 OE 011001000 Rc
sync 011111 000_00 00_000 0_0000 1001010110 0
tlbia 1 011111 000_00 00_000 0_0000 0101110010 0
tlbie 1,2 011111 000_00 00_000 B 0100110010 0
tlbld 1,2 011111 000_00 00_000 B 1111010010 0
tlbli 1,2 011111 000_00 00_000 B 1111110010 0
tlbsync 1,2 011111 000_00 00_000 0_0000 1000110110 0
tw 011111 TO A B 0000000100 0
twi 000011 TO A SIMM
xorx 011111 S A B 0100111100 Rc
xori 011010 S A UIMM
xoris 011011 S A UIMM
1PowerPCアーキテクチャのオプション�2スーパバイザ・レベル命令�3ロード/ストア・ストリング命令またはロード/ストア・マルチプル命令�4スーパバイザ・レベル命令およびユーザ・レベル命令�
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
twi 000011 TO A SIMM
mulli 000111 D A SIMM
subfic 001000 D A SIMM
cmpli 001010 crfD 0 L A UIMM
cmpi 001011 crfD 0 L A SIMM
addic 001100 D A SIMM
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-19
A.4 オペコード順の命令一覧(バイナリ)
表表表表 A-4 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)
addic. 001101 D A SIMM
addi 001110 D A SIMM
addis 001111 D A SIMM
bcx 010000 BO BI BD AA LK
sc 010001 000_0000_0000_0000_0000_0000_00 1 0
bx 010010 LI AA LK
mcrf 010011 crfD 00 crfS 00 0_0000 000000000 0
bclrx 010011 BO BI 0_0000 0000010000 LK
crnor 010011 crbD crbA crbB 0000100001 0
rfi 1 010011 000_00 00_000 0_0000 0000110010 0
crandc 010011 crbD crbA crbB 0010000001 0
isync 010011 000_00 00_000 0_0000 0010010110 0
crxor 010011 crbD crbA crbB 0011000001 0
crnand 010011 crbD crbA crbB 0011100001 0
crand 010011 crbD crbA crbB 0100000001 0
creqv 010011 crbD crbA crbB 0100100001 0
crorc 010011 crbD crbA crbB 0110100001 0
cror 010011 crbD crbA crbB 0111000001 0
bcctrx 010011 BO BI 0_0000 1000010000 LK
rlwimix 010100 S A SH MB ME Rc
rlwinmx 010101 S A SH MB ME Rc
rlwnmx 010111 S A B MB ME Rc
ori 011000 S A UIMM
oris 011001 S A UIMM
xori 011010 S A UIMM
xoris 011011 S A UIMM
andi. 011100 S A UIMM
andis. 011101 S A UIMM
cmp 011111 crfD 0 L A B 0000000000 0
tw 011111 TO A B 0000000100 0
subfcx 011111 D A B OE 000001000 Rc
addcx 011111 D A B OE 000001010 Rc
mulhwux 011111 D A B 0 000001011 Rc
mfcr 011111 D 00_000 0_0000 0000010011 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-20 Freescale Semiconductor
A.4 オペコード順の命令一覧(バイナリ)
第A章
命令セット一覧
表表表表 A-4 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)
lwarx 011111 D A B 0000010100 0
lwzx 011111 D A B 0000010111 0
slwx 011111 S A B 0000011000 Rc
cntlzwx 011111 S A 0_0000 0000011010 Rc
andx 011111 S A B 000011100 Rc
cmpl 011111 crfD 0 L A B 0000100000 0
lvsr 1 011111 vD A B 0000100110 0
lvehx 1 011111 vD A B 0000100111 0
subfx 011111 D A B OE 000101000 Rc
dcbst 011111 000_00 A B 0000110110 0
lwzux 011111 D A B 0000110111 0
andcx 011111 S A B 000111100 Rc
lvewx 1 011111 vD A B 0001000111 0
mulhwx 011111 D A B 0 001001011 Rc
mfmsr 1 011111 D 00_000 0_0000 0001010011 0
dcbf 011111 000_00 A B 0001010110 0
lbzx 011111 D A B 0001010111 0
negx 011111 D A 0_0000 OE 001101000 Rc
lbzux 011111 D A B 0001110111 0
norx 011111 S A B 0001111100 Rc
subfex 011111 D A B OE 010001000 Rc
addex 011111 D A B OE 010001010 Rc
mtcrf 011111 S 0 CRM 0 0010010000 0
mtmsr 1 011111 S 00_000 0_0000 0010010000 0
stwcx. 011111 S A B 10010110 1
stwx 011111 S A B 10010111 0
stwux 011111 S A B 10110111 0
subfzex 011111 D A 0_0000 OE 011001000 Rc
addzex 011111 D A 0_0000 OE 11001010 Rc
stbx 011111 S A B 0011010111 0
subfmex 011111 D A 0_0000 OE 011101000 Rc
addmex 011111 D A 0_0000 OE 11101010 Rc
mullwx 011111 D A B OE 011101011 Rc
mtsrin 1 011111 S 00_000 B 0011110010 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-21
A.4 オペコード順の命令一覧(バイナリ)
表表表表 A-4 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)
dcbtst 011111 000_00 A B 0011110110 0
stbux 011111 S A B 0011110111 0
addx 011111 D A B OE 100 001 010 Rc
dcbt 011111 000_00 A B 0100010110 0
lhzx 011111 D A B 0100010111 0
eqvx 011111 S A B 0100011100 Rc
tlbie 1, 2 011111 000_00 00_000 B 0100110010 0
eciwx 2 011111 D A B 0100110110 0
lhzux 011111 D A B 0100110111 0
xorx 011111 S A B 0100111100 Rc
mfspr 3 011111 D spr 0101010011 0
lhax 011111 D A B 0101010111 0
tlbia 2 011111 000_00 00_000 0_0000 0101110010 0
mftb 011111 D tbr 0101110011 0
lhaux 011111 D A B 0101110111 0
sthx 011111 S A B 110010111 0
orcx 011111 S A B 0110011100 Rc
ecowx 2 011111 S A B 0110110110 0
sthux 011111 S A B 110110111 0
orx 011111 S A B 0110111100 Rc
divwux 011111 D A B OE 1 1100 1011 Rc
mtspr 3 011111 S spr 0111010011 0
dcbi 1 011111 000_00 A B 0111010110 0
nandx 011111 S A B 0111011100 Rc
divwx 011111 D A B OE 1 1110 1011 Rc
mcrxr 011111 crfD 00 00_000 0_0000 1000000000 0
lswx 4 011111 D A B 1000010101 0
lwbrx 011111 D A B 1000010110 0
lfsx 011111 D A B 1000010111 0
srwx 011111 S A B 1000011000 Rc
tlbsync 1, 2 011111 000_00 00_000 0_0000 1000110110 0
lfsux 011111 D A B 1000110111 0
mfsr 1 011111 D 0 SR 0_0000 1001010011 0
lswi 4 011111 D A NB 1001010101 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-22 Freescale Semiconductor
A.4 オペコード順の命令一覧(バイナリ)
第A章
命令セット一覧
表表表表 A-4 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)
sync 011111 000_00 00_000 0_0000 0
lfdx 011111 D A B 1001010111 0
lfdux 011111 D A B 1001110111 0
mfsrin 1 011111 D 00_000 B 1010010011 0
stswx 4 011111 S A B 1010010101 0
stwbrx 011111 S A B 1010010110 0
stfsx 011111 S A B 1010010111 0
stfsux 011111 S A B 1010110111 0
stswi 4 011111 S A NB 1011010101 0
stfdx 011111 S A B 1011010111 0
dcba2 011111 000_00 A B 1011110110 0
stfdux 011111 S A B 1011110111 0
lhbrx 011111 D A B 1100010110 0
srawx 011111 S A B 1100011000 Rc
dss 1 011111 A 00 STRM 00_000 0_0000 1100110110 0
dssall1 011111 A 00 STRM 00_000 0_0000 1100110110 0
srawix 011111 S A SH 1100011000 Rc
eieio 011111 000_00 00_000 0_0000 1101010110 0
sthbrx 011111 S A B 1110010110 0
extshx 011111 S A 0_0000 1110011010 Rc
extsbx 011111 S A 0_0000 1110111010 Rc
tlbld 1, 2 011111 000_00 00_000 B 1111010010 0
icbi 011111 000_00 A B 1111010110 0
stfiwx 2 011111 S A B 1111010111 0
tlbli 1, 2 011111 000_00 00_000 B 1111110010 0
dcbz 011111 000_00 A B 1111110110 0
lwz 100000 D A d
lwzu 100001 D A d
lbz 100010 D A d
lbzu 100011 D A d
stw 100100 S A d
stwu 100101 S A d
stb 100110 S A d
stbu 100111 S A d
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1001010110
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-23
A.4 オペコード順の命令一覧(バイナリ)
表表表表 A-4 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)
lhz 101000 D A d
lhzu 101001 D A d
lha 101010 D A d
lhau 101011 D A d
sth 101100 S A d
sthu 101101 S A d
lmw 4 101110 D A d
stmw 4 101111 S A d
lfs 110000 D A d
lfsu 110001 D A d
lfd 110010 D A d
lfdu 110011 D A d
stfs 110100 S A d
stfsu 110101 S A d
stfd 110110 S A d
stfdu 110111 S A d
fdivsx 111011 D A B 0000_0 1 0010 Rc
fsubsx 111011 D A B 0000_0 1 0100 Rc
faddsx 111011 D A B 0000_0 1 0101 Rc
fsqrtsx 2 111011 D 00_000 B 0000_0 1 0110 Rc
fresx 2 111011 D 00_000 B 0000_0 1 1000 Rc
fmulsx 111011 D A 0_0000 C 1 1001 Rc
fmsubsx 111011 D A B C 1 1100 Rc
fmaddsx 111011 D A B C 1 1101 Rc
fnmsubsx 111011 D A B C 1 1110 Rc
fnmaddsx 111011 D A B C 1 1111 Rc
fcmpu 111111 crfD 00 A B 0000000000 0
frspx 111111 D 00_000 B 0000001100 Rc
fctiwx 111111 D 00_000 B 0000001110 Rc
fctiwzx 111111 D 00_000 B 0000001111 Rc
fdivx 111111 D A B 0000_0 1 0010 Rc
fsubx 111111 D A B 0000_0 1 0100 Rc
faddx 111111 D A B 0000_0 1 0101 Rc
fsqrtx 2 111111 D 00_000 B 0000_0 1 0110 Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-24 Freescale Semiconductor
A.5 機能グループ別の命令一覧
第A章
命令セット一覧
表表表表 A-4 第第第第 1 オペコードと第オペコードと第オペコードと第オペコードと第 2 オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)オペコードによる命令一覧(バイナリ)(続き)
A.5 機能グループ別の命令一覧機能グループ別の命令一覧機能グループ別の命令一覧機能グループ別の命令一覧
A-5 A-32
表表表表 A-5 整数演算命令整数演算命令整数演算命令整数演算命令
fselx 2 111111 D A B C 1 0111 Rc
fmulx 111111 D A 0_0000 C 1 1001 Rc
frsqrtex 2 111111 D 00_000 B 0000_0 1 1010 Rc
fmsubx 111111 D A B C 1 1100 Rc
fmaddx 111111 D A B C 1 1101 Rc
fnmsubx 111111 D A B C 1 1110 Rc
fnmaddx 111111 D A B C 1 1111 Rc
fcmpo 111111 crfD 00 A B 0000100000 0
mtfsb1x 111111 crbD 00_000 0_0000 0000100110 Rc
fnegx 111111 D 00_000 B 0000101000 Rc
mcrfs 111111 crfD 00 crfS 00 0_0000 001000000 0
mtfsb0x 111111 crbD 00_000 0_0000 0001000110 Rc
fmrx 111111 D 00_000 B 0001001000 Rc
mtfsfix 111111 crfD 00 00_000 IMM 0 0010000110 Rc
fnabsx 111111 D 00_000 B 0010001000 Rc
fabsx 111111 D 00_000 B 0100001000 Rc
mffsx 111111 D 00_000 0_0000 1001000111 Rc
mtfsfx 111111 0 FM 0 B 1011000111 Rc
1スーパバイザ・レベル命令�2PowerPCアーキテクチャのオプション�3スーパバイザ・レベル命令およびユーザ・レベル命令�4ロード/ストア・ストリング命令またはロード/ストア・マルチプル命令�
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
addx 31 D A B OE 266 Rc
addcx 31 D A B OE 10 Rc
addex 31 D A B OE 138 Rc
addi 14 D A SIMM
addic 12 D A SIMM
addic. 13 D A SIMM
addis 15 D A SIMM
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-25
A.5 機能グループ別の命令一覧
表表表表 A-5 整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)
表表表表 A-6 整数比較命令整数比較命令整数比較命令整数比較命令
表表表表 A-7 整数論理命令整数論理命令整数論理命令整数論理命令
addmex 31 D A 0 0 0 0 0 OE 234 Rc
addzex 31 D A 0 0 0 0 0 OE 202 Rc
divwx 31 D A B OE 491 Rc
divwux 31 D A B OE 459 Rc
mulhwx 31 D A B 0 75 Rc
mulhwux 31 D A B 0 11 Rc
mulli 07 D A SIMM
mullwx 31 D A B OE 235 Rc
negx 31 D A 0 0 0 0 0 OE 104 Rc
subfx 31 D A B OE 40 Rc
subfcx 31 D A B OE 8 Rc
subfic 08 D A SIMM
subfex 31 D A B OE 136 Rc
subfmex 31 D A 0 0 0 0 0 OE 232 Rc
subfzex 31 D A 0 0 0 0 0 OE 200 Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
cmp 31 crfD 0 L A B 0 0 0 0 0 0 0 0 0 0 0
cmpi 11 crfD 0 L A SIMM
cmpl 31 crfD 0 L A B 32 0
cmpli 10 crfD 0 L A UIMM
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
andx 31 S A B 28 Rc
andcx 31 S A B 60 Rc
andi. 28 S A UIMM
andis. 29 S A UIMM
cntlzwx 31 S A 0 0 0 0 0 26 Rc
eqvx 31 S A B 284 Rc
extsbx 31 S A 0 0 0 0 0 954 Rc
extshx 31 S A 0 0 0 0 0 922 Rc
nandx 31 S A B 476 Rc
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-26 Freescale Semiconductor
A.5 機能グループ別の命令一覧
第A章
命令セット一覧
表表表表 A-7 整数論理命令(続き)整数論理命令(続き)整数論理命令(続き)整数論理命令(続き)
表表表表 A-8 整数ローテート命令整数ローテート命令整数ローテート命令整数ローテート命令
表表表表 A-9 整数シフト命令整数シフト命令整数シフト命令整数シフト命令
表表表表 A-10 浮動小数点演算命令浮動小数点演算命令浮動小数点演算命令浮動小数点演算命令
norx 31 S A B 124 Rc
orx 31 S A B 444 Rc
orcx 31 S A B 412 Rc
ori 24 S A UIMM
oris 25 S A UIMM
xorx 31 S A B 316 Rc
xori 26 S A UIMM
xoris 27 S A UIMM
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
rlwimix 22 S A SH MB ME Rc
rlwinmx 20 S A SH MB ME Rc
rlwnmx 21 S A SH MB ME Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
slwx 31 S A B 24 Rc
srawx 31 S A B 792 Rc
srawix 31 S A SH 824 Rc
srwx 31 S A B 536 Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
faddx 63 D A B 0 0 0 0 0 21 Rc
faddsx 59 D A B 0 0 0 0 0 21 Rc
fdivx 63 D A B 0 0 0 0 0 18 Rc
fdivsx 59 D A B 0 0 0 0 0 18 Rc
fmulx 63 D A 0 0 0 0 0 C 25 Rc
fmulsx 59 D A 0 0 0 0 0 C 25 Rc
fresx 1 59 D 0 0 0 0 0 B 0 0 0 0 0 24 Rc
frsqrtex 1 63 D 0 0 0 0 0 B 0 0 0 0 0 26 Rc
fsubx 63 D A B 0 0 0 0 0 20 Rc
fsubsx 59 D A B 0 0 0 0 0 20 Rc
fselx 63 D A B C 23 Rc
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-27
A.5 機能グループ別の命令一覧
表表表表 A-10 浮動小数点演算命令(続き)浮動小数点演算命令(続き)浮動小数点演算命令(続き)浮動小数点演算命令(続き)
表表表表 A-11 浮動小数点積和命令浮動小数点積和命令浮動小数点積和命令浮動小数点積和命令
表表表表 A-12 浮動小数点丸め変換命令浮動小数点丸め変換命令浮動小数点丸め変換命令浮動小数点丸め変換命令
表表表表 A-13 浮動小数点比較命令浮動小数点比較命令浮動小数点比較命令浮動小数点比較命令
表表表表 A-14 浮動小数点ステータス制御レジスタ命令浮動小数点ステータス制御レジスタ命令浮動小数点ステータス制御レジスタ命令浮動小数点ステータス制御レジスタ命令
fsqrtx 1 63 D 0 0 0 0 0 B 0 0 0 0 0 22 Rc
fsqrtsx 1 59 D 0 0 0 0 0 B 0 0 0 0 0 22 Rc
1PowerPC準拠アーキテクチャのオプション�
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
fmaddx 63 D A B C 29 Rc
fmaddsx 59 D A B C 29 Rc
fmsubx 63 D A B C 28 Rc
fmsubsx 59 D A B C 28 Rc
fnmaddx 63 D A B C 31 Rc
fnmaddsx 59 D A B C 31 Rc
fnmsubx 63 D A B C 30 Rc
fnmsubsx 59 D A B C 30 Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
fctiwx 63 D 0 0 0 0 0 B 14 Rc
fctiwzx 63 D 0 0 0 0 0 B 15 Rc
frspx 63 D 0 0 0 0 0 B 12 Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
fcmpo 63 crfD 0 0 A B 32 0
fcmpu 63 crfD 0 0 A B 0 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
mcrfs 63 crfD 0 0 crfS 0 0 0 0 0 0 0 64 0
mffsx 63 D 0 0 0 0 0 0 0 0 0 0 583 Rc
mtfsb0x 63 crbD 0 0 0 0 0 0 0 0 0 0 70 Rc
mtfsb1x 63 crbD 0 0 0 0 0 0 0 0 0 0 38 Rc
mtfsfx 31 0 FM 0 B 711 Rc
mtfsfix 63 crfD 0 0 0 0 0 0 0 IMM 0 134 Rc
A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-28 Freescale Semiconductor
A.5 機能グループ別の命令一覧
第A章
命令セット一覧
表表表表 A-15 整数ロード命令整数ロード命令整数ロード命令整数ロード命令
表表表表 A-16 整数ストア命令整数ストア命令整数ストア命令整数ストア命令
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
lbz 34 D A d
lbzu 35 D A d
lbzux 31 D A B 119 0
lbzx 31 D A B 87 0
lha 42 D A d
lhau 43 D A d
lhaux 31 D A B 375 0
lhax 31 D A B 343 0
lhz 40 D A d
lhzu 41 D A d
lhzux 31 D A B 311 0
lhzx 31 D A B 279 0
lwz 32 D A d
lwzu 33 D A d
lwzux 31 D A B 55 0
lwzx 31 D A B 23 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
stb 38 S A d
stbu 39 S A d
stbux 31 S A B 247 0
stbx 31 S A B 215 0
sth 44 S A d
sthu 45 S A d
sthux 31 S A B 439 0
sthx 31 S A B 407 0
stw 36 S A d
stwu 37 S A d
stwux 31 S A B 183 0
stwx 31 S A B 151 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-29
A.5 機能グループ別の命令一覧
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-30 Freescale Semiconductor
表表表表 A-17 バイト反転付き整数ロード/ストア命令バイト反転付き整数ロード/ストア命令バイト反転付き整数ロード/ストア命令バイト反転付き整数ロード/ストア命令
表表表表 A-18 整数ロード/ストア・マルチプル命令整数ロード/ストア・マルチプル命令整数ロード/ストア・マルチプル命令整数ロード/ストア・マルチプル命令
表表表表 A-19 整数ロード/ストア・ストリング命令整数ロード/ストア・ストリング命令整数ロード/ストア・ストリング命令整数ロード/ストア・ストリング命令
表表表表 A-20 メモリ同期命令メモリ同期命令メモリ同期命令メモリ同期命令
表表表表 A-21 浮動小数点ロード命令浮動小数点ロード命令浮動小数点ロード命令浮動小数点ロード命令
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
lhbrx 31 D A B 790 0
lwbrx 31 D A B 534 0
sthbrx 31 S A B 918 0
stwbrx 31 S A B 662 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
lmw 46 D A d
stmw 47 S A d
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
lswi 1
1ロード/ストア・ストリング命令またはロード/ストア・マルチプル命令�
31 D A NB 597 0
lswx1 31 D A B 533 0
stswi1 31 S A NB 725 0
stswx1 31 S A B 661 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
eieio 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 854 0
isync 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 0
lwarx 31 D A B 20 0
stwcx. 31 S A B 150 1
sync 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 598 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
lfd 50 D A d
lfdu 51 D A d
lfdux 31 D A B 631 0
lfdx 31 D A B 599 0
lfs 48 D A d
lfsu 49 D A d
A.5 機能グループ別の命令一覧
第A章
命令セット一覧
表表表表 A-21 浮動小数点ロード命令(続き)浮動小数点ロード命令(続き)浮動小数点ロード命令(続き)浮動小数点ロード命令(続き)
表表表表 A-22 浮動小数点ストア命令浮動小数点ストア命令浮動小数点ストア命令浮動小数点ストア命令
表表表表 A-23 浮動小数点ムーブ命令浮動小数点ムーブ命令浮動小数点ムーブ命令浮動小数点ムーブ命令
表表表表 A-24 分岐命令分岐命令分岐命令分岐命令
表表表表 A-25 コンディション・レジスタ論理命令コンディション・レジスタ論理命令コンディション・レジスタ論理命令コンディション・レジスタ論理命令
lfsux 31 D A B 567 0
lfsx 31 D A B 535 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
stfd 54 S A d
stfdu 55 S A d
stfdux 31 S A B 759 0
stfdx 31 S A B 727 0
stfiwx 1
1PowerPCアーキテクチャのオプション�
31 S A B 983 0
stfs 52 S A d
stfsu 53 S A d
stfsux 31 S A B 695 0
stfsx 31 S A B 663 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
fabsx 63 D 0 0 0 0 0 B 264 Rc
fmrx 63 D 0 0 0 0 0 B 72 Rc
fnabsx 63 D 0 0 0 0 0 B 136 Rc
fnegx 63 D 0 0 0 0 0 B 40 Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
bx 18 LI AA LK
bcx 16 BO BI BD AA LK
bcctrx 19 BO BI 0 0 0 0 0 528 LK
bclrx 19 BO BI 0 0 0 0 0 16 LK
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
crand 19 crbD crbA crbB 257 0
crandc 19 crbD crbA crbB 129 0
creqv 19 crbD crbA crbB 289 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-31
A.5 機能グループ別の命令一覧
表表表表 A-25 コンディション・レジスタ論理命令(続き)コンディション・レジスタ論理命令(続き)コンディション・レジスタ論理命令(続き)コンディション・レジスタ論理命令(続き)
表表表表 A-26 システム・リンク命令システム・リンク命令システム・リンク命令システム・リンク命令
表表表表 A-27 トラップ命令トラップ命令トラップ命令トラップ命令
表表表表 A-28 プロセッサ制御命令プロセッサ制御命令プロセッサ制御命令プロセッサ制御命令
表表表表 A-29 キャッシュ管理命令キャッシュ管理命令キャッシュ管理命令キャッシュ管理命令
crnand 19 crbD crbA crbB 225 0
crnor 19 crbD crbA crbB 33 0
cror 19 crbD crbA crbB 449 0
crorc 19 crbD crbA crbB 417 0
crxor 19 crbD crbA crbB 193 0
mcrf 19 crfD 0 0 crfS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
rfi 1
1スーパバイザ・レベル命令�
19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0
sc 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
tw 31 TO A B 4 0
twi 03 TO A SIMM
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
mcrxr 31 crfS 0 0 0 0 0 0 0 0 0 0 0 0 512 0
mfcr 31 D 0 0 0 0 0 0 0 0 0 0 19 0
mfmsr 1
1スーパバイザ・レベル命令�
31 D 0 0 0 0 0 0 0 0 0 0 83 0
mfspr 2
2スーパバイザ・レベル命令およびユーザ・レベル命令�
31 D spr 339 0
mftb 31 D tpr 371 0
mtcrf 31 S 0 CRM 0 144 0
mtmsr 1 31 S 0 0 0 0 0 0 0 0 0 0 146 0
mtspr 2 31 D spr 467 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
dcba 1 31 0 0 0 0 0 A B 758 0
dcbf 31 0 0 0 0 0 A B 86 0
dcbi 2 31 0 0 0 0 0 A B 470 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-32 Freescale Semiconductor
A.6 形式別の命令一覧
第A章
命令セット一覧
表表表表 A-29 キャッシュ管理命令(続き)キャッシュ管理命令(続き)キャッシュ管理命令(続き)キャッシュ管理命令(続き)
表表表表 A-30 セグメント・レジスタ操作命令セグメント・レジスタ操作命令セグメント・レジスタ操作命令セグメント・レジスタ操作命令
表表表表 A-31 ルックアサイド・バッファ管理命令ルックアサイド・バッファ管理命令ルックアサイド・バッファ管理命令ルックアサイド・バッファ管理命令
表表表表 A-32 外部制御命令外部制御命令外部制御命令外部制御命令
A.6 形式別の命令一覧形式別の命令一覧形式別の命令一覧形式別の命令一覧
A-33 A-43
dcbst 31 0 0 0 0 0 A B 54 0
dcbt 31 0 0 0 0 0 A B 278 0
dcbtst 31 0 0 0 0 0 A B 246 0
dcbz 31 0 0 0 0 0 A B 1014 0
icbi 31 0 0 0 0 0 A B 982 0
1PowerPCアーキテクチャのオプション�2スーパバイザ・レベル命令�
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
mfsr 1
1スーパバイザ・レベル命令�
31 D 0 SR 0 0 0 0 0 595 0
mfsrin 1 31 D 0 0 0 0 0 B 659 0
mtsr1 31 S 0 SR 0 0 0 0 0 210 0
mtsrin 1 31 S 0 0 0 0 0 B 242 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
tlbia 1
1PowerPCアーキテクチャのオプション�
31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 370 0
tlbie 1 2
2スーパバイザ・レベル命令�
31 0 0 0 0 0 0 0 0 0 0 B 306 0
tlbld 1,2 31 0 0 0 0 0 0 0 0 0 0 B 978 0
tlbli 1,2 31 0 0 0 0 0 0 0 0 0 0 B 1010 0
tlbsync 1,2 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 566 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
eciwx 1
1PowerPCアーキテクチャのオプション�
31 D A B 310 0
ecowx 1 31 S A B 438 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-33
A.6 形式別の命令一覧
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-34 Freescale Semiconductor
図図図図 A-1 I 形式形式形式形式
表表表表 A-33 I 形式の命令形式の命令形式の命令形式の命令
図図図図 A-2 B 形式形式形式形式
表表表表 A-34 B 形式の命令形式の命令形式の命令形式の命令
図図図図 A-3 SC 形式形式形式形式
表表表表 A-35 SC 形式の命令形式の命令形式の命令形式の命令
図図図図 A-4 D 形式形式形式形式
表表表表 A-36 D 形式の命令形式の命令形式の命令形式の命令
OPCD LI AA LK
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
bx 18 LI AA LK
OPCD BO BI BD AA LK
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
bcx 16 BO BI BD AA LK
OPCD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
sc 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
OPCD D A d
OPCD D A SIMM
OPCD S A d
OPCD S A UIMM
OPCD crfD 0 L A SIMM
OPCD crfD 0 L A UIMM
OPCD TO A SIMM
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
addi 14 D A SIMM
addic 12 D A SIMM
addic. 13 D A SIMM
addis 15 D A SIMM
A.6 形式別の命令一覧
第A章
命令セット一覧
表表表表 A-36 D 形式の命令(続き)形式の命令(続き)形式の命令(続き)形式の命令(続き)
andi. 28 S A UIMM
andis. 29 S A UIMM
cmpi 11 crfD 0 L A SIMM
cmpli 10 crfD 0 L A UIMM
lbz 34 D A d
lbzu 35 D A d
lfd 50 D A d
lfdu 51 D A d
lfs 48 D A d
lfsu 49 D A d
lha 42 D A d
lhau 43 D A d
lhz 40 D A d
lhzu 41 D A d
lmw 1 46 D A d
lwz 32 D A d
lwzu 33 D A d
mulli 7 D A SIMM
ori 24 S A UIMM
oris 25 S A UIMM
stb 38 S A d
stbu 39 S A d
stfd 54 S A d
stfdu 55 S A d
stfs 52 S A d
stfsu 53 S A d
sth 44 S A d
sthu 45 S A d
stmw 1 47 S A d
stw 36 S A d
stwu 37 S A d
subfic 08 D A SIMM
twi 03 TO A SIMM
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-35
A.6 形式別の命令一覧
表表表表 A-36 D 形式の命令(続き)形式の命令(続き)形式の命令(続き)形式の命令(続き)
図図図図 A-5 X 形式形式形式形式
xori 26 S A UIMM
xoris 27 S A UIMM
1 ロード/ストア・ストリング命令またはロード/ストア・マルチプル命令�
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
OPCD D A B XO 0
OPCD D A NB XO 0
OPCD D 0 0 0 0 0 B XO 0
OPCD D 0 0 0 0 0 0 0 0 0 0 XO 0
OPCD D 0 SR 0 0 0 0 0 XO 0
OPCD S A B XO Rc
OPCD S A B XO 1
OPCD S A B XO 0
OPCD S A NB XO 0
OPCD S A 0 0 0 0 0 XO Rc
OPCD S 0 0 0 0 0 B XO 0
OPCD S 0 0 0 0 0 0 0 0 0 0 XO 0
OPCD S 0 SR 0 0 0 0 0 XO 0
OPCD S A SH XO Rc
OPCD crfD 0 L A B XO 0
OPCD crfD 0 0 A B XO 0
OPCD crfD 0 0 crfS 0 0 0 0 0 0 0 XO 0
OPCD crfD 0 0 0 0 0 0 0 0 0 0 0 0 XO 0
OPCD crfD 0 0 0 0 0 0 0 IMM 0 XO Rc
OPCD TO A B XO 0
OPCD D 0 0 0 0 0 B XO Rc
OPCD D 0 0 0 0 0 0 0 0 0 0 XO Rc
OPCD crbD 0 0 0 0 0 0 0 0 0 0 XO Rc
OPCD 0 0 0 0 0 A B XO 0
OPCD 0 0 0 0 0 0 0 0 0 0 B XO 0
OPCD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 XO 0
OPCD vD vA vB XO 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-36 Freescale Semiconductor
A.6 形式別の命令一覧
第A章
命令セット一覧
図図図図 A-5 X 形式形式形式形式
表表表表 A-37 X 形式の命令形式の命令形式の命令形式の命令
OPCD vS vA vB 0
OPCD T 0 0 STRM A B XO
XO
0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
andx 31 S A B 28 Rc
andcx 31 S A B 60 Rc
cmp 31 crfD 0 L A B 0 0
cmpl 31 crfD 0 L A B 32 0
cntlzwx 31 S A 0 0 0 0 0 26 Rc
dcba 1 31 0 0 0 0 0 A B 758 0
dcbf 31 0 0 0 0 0 A B 86 0
dcbi 2 31 0 0 0 0 0 A B 470 0
dcbst 31 0 0 0 0 0 A B 54 0
dcbt 31 0 0 0 0 0 A B 278 0
dcbtst 31 0 0 0 0 0 A B 246 0
dcbz 31 0 0 0 0 0 A B 1014 0
dst 31 T 0 0 STRM A B 342 0
dstt 3 31 1 0 0 STRM A B 342 0
dstst 3 31 T 0 0 STRM A B 374 0
dststt 3 31 1 0 0 STRM A B 374 0
dss 3 31 A 0 0 STRM 0 0 0 0 0 0 0 0 0 0 822 0
dssall 3 31 A 0 0 STRM 0 0 0 0 0 0 0 0 0 0 822 0
eciwx 1 31 D A B 310 0
ecowx 1 31 S A B 438 0
eieio 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 854 0
eqvx 31 S A B 284 Rc
extsbx 31 S A 0 0 0 0 0 954 Rc
extshx 31 S A 0 0 0 0 0 922 Rc
fabsx 63 D 0 0 0 0 0 B 264 Rc
fcmpo 63 crfD 0 0 A B 32 0
fcmpu 63 crfD 0 0 A B 0 0
fctiwx 63 D 0 0 0 0 0 B 14 Rc
fctiwzx 63 D 0 0 0 0 0 B 15 Rc
fmrx 63 D 0 0 0 0 0 B 72 Rc
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-37
A.6 形式別の命令一覧
表表表表 A-37 X 形式の命令(続き)形式の命令(続き)形式の命令(続き)形式の命令(続き)
fnabsx 63 D 0 0 0 0 0 B 136 Rc
fnegx 63 D 0 0 0 0 0 B 40 Rc
frspx 63 D 0 0 0 0 0 B 12 Rc
icbi 31 0 0 0 0 0 A B 982 0
lbzux 31 D A B 119 0
lbzx 31 D A B 87 0
lfdux 31 D A B 631 0
lfdx 31 D A B 599 0
lfsux 31 D A B 567 0
lfsx 31 D A B 535 0
lhaux 31 D A B 375 0
lhax 31 D A B 343 0
lhbrx 31 D A B 790 0
lhzux 31 D A B 311 0
lhzx 31 D A B 279 0
lswi 4 31 D A NB 597 0
lswx 4 31 D A B 533 0
lwarx 31 D A B 20 0
lwbrx 31 D A B 534 0
lwzux 31 D A B 55 0
lwzx 31 D A B 23 0
mcrfs 63 crfD 0 0 crfS 0 0 0 0 0 0 0 64 0
mcrxr 31 crfD 0 0 0 0 0 0 0 0 0 0 0 0 512 0
mfcr 31 D 0 0 0 0 0 0 0 0 0 0 19 0
mffsx 63 D 0 0 0 0 0 0 0 0 0 0 583 Rc
mfmsr 2 31 D 0 0 0 0 0 0 0 0 0 0 83 0
mfsr 2 31 D 0 SR 0 0 0 0 0 595 0
mfsrin 2 31 D 0 0 0 0 0 B 659 0
mtfsb0x 63 crbD 0 0 0 0 0 0 0 0 0 0 70 Rc
mtfsb1x 63 crfD 0 0 0 0 0 0 0 0 0 0 38 Rc
mtfsfix 63 crbD 0 0 0 0 0 0 0 IMM 0 134 Rc
mtmsr 2 31 S 0 0 0 0 0 0 0 0 0 0 146 0
mtsr 2 31 S 0 SR 0 0 0 0 0 210 0
nandx 31 S A B 476 Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-38 Freescale Semiconductor
A.6 形式別の命令一覧
第A章
命令セット一覧
表表表表 A-37 X 形式の命令(続き)形式の命令(続き)形式の命令(続き)形式の命令(続き)
norx 31 S A B 124 Rc
orx 31 S A B 444 Rc
orcx 31 S A B 412 Rc
slwx 31 S A B 24 Rc
srawx 31 S A B 792 Rc
srawix 31 S A SH 824 Rc
srwx 31 S A B 536 Rc
stbux 31 S A B 247 0
stbx 31 S A B 215 0
stfdux 31 S A B 759 0
stfdx 31 S A B 727 0
stfiwx 1 31 S A B 983 0
stfsux 31 S A B 695 0
stfsx 31 S A B 663 0
sthbrx 31 S A B 918 0
sthux 31 S A B 439 0
sthx 31 S A B 407 0
stswi 4 31 S A NB 725 0
stswx 4 31 S A B 661 0
stvebx 3 31 vS A B 135 0
stvehx 3 31 vS A B 167 0
stvewx 3 31 vS A B 199 0
stvx 3 31 vS A B 231 0
stvxl 3 31 vS A B 487 0
stwbrx 3 31 S A B 662 0
stwcx. 31 S A B 150 1
stwux 31 S A B 183 0
stwx 31 S A B 151 0
sync 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 598 0
tlbia 1 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 370 0
tlbie 1,2 31 0 0 0 0 0 0 0 0 0 0 B 306 0
tlbld 1,2 31 0 0 0 0 0 0 0 0 0 0 B 978 0
tlbli 1,2 31 0 0 0 0 0 0 0 0 0 0 B 1010 0
tlbsync 2 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 566 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-39
A.6 形式別の命令一覧
表表表表 A-37 X 形式の命令(続き)形式の命令(続き)形式の命令(続き)形式の命令(続き)
図図図図 A-6 XL 形式形式形式形式
表表表表 A-38 XL 形式の命令形式の命令形式の命令形式の命令
図図図図 A-7 XFX 形式形式形式形式
tw 31 TO A B 4 0
xorx 31 S A B 316 Rc
1PowerPCアーキテクチャのオプション�2スーパバイザ・レベル命令�3Altivecテクノロジ専用命令�4ロード/ストア・ストリング命令またはロード/ストア・マルチプル命令�
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
OPCD BO BI 0 0 0 0 0 XO LK
OPCD crbD crbA crbB XO 0
OPCD crfD 0 0 crfS 0 0 0 0 0 0 0 XO 0
OPCD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 XO 0
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
bcctrx 19 BO BI 0 0 0 0 0 528 LK
bclrx 19 BO BI 0 0 0 0 0 16 LK
crand 19 crbD crbA crbB 257 0
crandc 19 crbD crbA crbB 129 0
creqv 19 crbD crbA crbB 289 0
crnand 19 crbD crbA crbB 225 0
crnor 19 crbD crbA crbB 33 0
cror 19 crbD crbA crbB 449 0
crorc 19 crbD crbA crbB 417 0
crxor 19 crbD crbA crbB 193 0
isync 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 0
mcrf 19 crfD 0 0 crfS 0 0 0 0 0 0 0 0 0
rfi 1
1スーパバイザ・レベル命令�
19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0
OPCD D spr XO 0
OPCD D 0 CRM 0 XO 0
OPCD S spr XO 0
OPCD D tbr XO 0
A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-40 Freescale Semiconductor
A.6 形式別の命令一覧
第A章
命令セット一覧
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-41
表表表表 A-39 XFX 形式の命令形式の命令形式の命令形式の命令
図図図図 A-8 XFL 形式形式形式形式
表表表表 A-40 XFL 形式の命令形式の命令形式の命令形式の命令
図図図図 A-9 XO 形式形式形式形式
表表表表 A-41 XO 形式の命令形式の命令形式の命令形式の命令
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
mfspr 1 31 D spr 339 0
mftb 31 D tbr 371 0
mtcrf 31 S 0 CRM 0 144 0
mtspr 1 31 D spr 467 0
1スーパバイザ・レベル命令およびユーザ・レベル命令�
OPCD 0 FM 0 B XO Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
mtfsfx 63 0 FM 0 B 711 Rc
OPCD D A B OE XO Rc
OPCD D A B 0 XO Rc
OPCD D A 0 0 0 0 0 OE XO Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
addx 31 D A B OE 266 Rc
addcx 31 D A B OE 10 Rc
addex 31 D A B OE 138 Rc
addmex 31 D A 0 0 0 0 0 OE 234 Rc
addzex 31 D A 0 0 0 0 0 OE 202 Rc
divwx 31 D A B OE 491 Rc
divwux 31 D A B OE 459 Rc
mulhwx 31 D A B 0 75 Rc
mulhwux 31 D A B 0 11 Rc
mullwx 31 D A B OE 235 Rc
negx 31 D A 0 0 0 0 0 OE 104 Rc
subfx 31 D A B OE 40 Rc
subfcx 31 D A B OE 8 Rc
subfex 31 D A B OE 136 Rc
A.6 形式別の命令一覧
表表表表 A-41 XO 形式の命令(続き)形式の命令(続き)形式の命令(続き)形式の命令(続き)
図図図図 A-10 A 形式形式形式形式
表表表表 A-42 A 形式の命令形式の命令形式の命令形式の命令
subfmex 31 D A 0 0 0 0 0 OE 232 Rc
subfzex 31 D A 0 0 0 0 0 OE 200 Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
OPCD D A B 0 0 0 0 0 XO Rc
OPCD D A B C XO Rc
OPCD D A 0 0 0 0 0 C XO Rc
OPCD D 0 0 0 0 0 B 0 0 0 0 0 XO Rc
ニーモニック�0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
faddx 63 D A B 0 0 0 0 0 21 Rc
faddsx 59 D A B 0 0 0 0 0 21 Rc
fdivx 63 D A B 0 0 0 0 0 18 Rc
fdivsx 59 D A B 0 0 0 0 0 18 Rc
fmaddx 63 D A B C 29 Rc
fmaddsx 59 D A B C 29 Rc
fmsubx 63 D A B C 28 Rc
fmsubsx 59 D A B C 28 Rc
fmulx 63 D A 0 0 0 0 0 C 25 Rc
fmulsx 59 D A 0 0 0 0 0 C 25 Rc
fnmaddx 63 D A B C 31 Rc
fnmaddsx 59 D A B C 31 Rc
fnmsubx 63 D A B C 30 Rc
fnmsubsx 59 D A B C 30 Rc
fresx 1
1PowerPCアーキテクチャのオプション�
59 D 0 0 0 0 0 B 0 0 0 0 0 24 Rc
frsqrtex 1 63 D 0 0 0 0 0 B 0 0 0 0 0 26 Rc
fselx 1 63 D A B C 23 Rc
fsqrtx 1 63 D 0 0 0 0 0 B 0 0 0 0 0 22 Rc
fsqrtsx 1 59 D 0 0 0 0 0 B 0 0 0 0 0 22 Rc
fsubx 63 D A B 0 0 0 0 0 20 Rc
fsubsx 59 D A B 0 0 0 0 0 20 Rc
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-42 Freescale Semiconductor
A.7 命令セットのクィック・リファレンス
第A章
命令セット一覧
図図図図 A-11 M 形式形式形式形式
表表表表 A-43 M 形式の命令形式の命令形式の命令形式の命令
A.7 命令セットのクィック・リファレンス命令セットのクィック・リファレンス命令セットのクィック・リファレンス命令セットのクィック・リファレンス
A-44
表表表表 A-44 命令のクィック・リファレンス命令のクィック・リファレンス命令のクィック・リファレンス命令のクィック・リファレンス
OPCD S A SH MB ME Rc
OPCD S A B MB ME Rc
ニーモニック�0
rlwimix 20 S A SH MB ME Rc
rlwinmx 21 S A SH MB ME Rc
rlwnmx 23 S A B MB ME Rc
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3
UISA VEA OEA スーパバイザ・レベル� オプション� 形式�
addx XO
addcx XO
addex XO
addi D
addic D
addic. D
addis D
addmex XO
addzex XO
andx X
andcx X
andi. D
andis. D
bx I
bcx B
bcctrx XL
bclrx XL
cmp X
cmpi D
cmpl X
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-43
A.7 命令セットのクィック・リファレンス
表表表表 A-44 命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)
cmpli √ D
cntlzwx √ X
crand √ XL
crandc √ XL
creqv √ XL
crnand √ XL
crnor √ XL
cror √ XL
crorc √ XL
crxor √ XL
dcba √ √ X
dcbf √ X
dcbi √ √ X
dcbst √ X
dcbt √ X
dcbtst √ X
dcbz √ X
divwx √ XO
divwux √ XO
eciwx √ √ X
ecowx √ √ X
eieio √ X
eqvx √ X
extsbx √ X
extshx √ X
fabsx √ X
faddx √ A
faddsx √ A
fcmpo √ X
fcmpu √ X
fctiwx √ X
fctiwzx √ X
fdivx √ A
fdivsx √ A
UISA VEA OEA スーパバイザ・レベル� オプション� 形式�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-44 Freescale Semiconductor
A.7 命令セットのクィック・リファレンス
第A章
命令セット一覧
表表表表 A-44 命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)
fmaddx √ A
fmaddsx √ A
fmrx √ X
fmsubx √ A
fmsubsx √ A
fmulx √ A
fmulsx √ A
fnabsx √ X
fnegx √ X
fnmaddx √ A
fnmaddsx √ A
fnmsubx √ A
fnmsubsx √ A
fresx √ √ A
frspx √ X
frsqrtex √ √ A
fselx √ √ A
fsqrtx √ √ A
fsqrtsx √ √ A
fsubx √ A
fsubsx √ A
icbi √ X
isync √ XL
lbz √ D
lbzu √ D
lbzux √ X
lbzx √ X
lfd √ D
lfdu √ D
lfdux √ X
lfdx √ X
lfs √ D
lfsu √ D
lfsux √ X
UISA VEA OEA スーパバイザ・レベル� オプション� 形式�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-45
A.7 命令セットのクィック・リファレンス
表表表表 A-44 命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)
lfsx √ X
lha √ D
lhau √ D
lhaux √ X
lhax √ X
lhbrx √ X
lhz √ D
lhzu √ D
lhzux √ X
lhzx √ X
lmw 1 √ D
lswi 1 √ X
lswx 1 √ X
lwarx √ X
lwbrx √ X
lwz √ D
lwzu √ D
lwzux √ X
lwzx √ X
mcrf √ XL
mcrfs √ X
mcrxr √ X
mfcr √ X
mffs √ X
mfmsr √ √ X
mfspr1 √ √ √ XFX
mfsr √ √ X
mfsrin √ √ X
mftb √ XFX
mtcrf √ XFX
mtfsb0x √ X
mtfsb1x √ X
mtfsfx √ XFL
mtfsfix √ X
UISA VEA OEA スーパバイザ・レベル� オプション� 形式�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-46 Freescale Semiconductor
A.7 命令セットのクィック・リファレンス
第A章
命令セット一覧
表表表表 A-44 命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)
mtmsr √ √ X
mtspr 21 √ √ √ XFX
mtsr √ √ X
mtsrin √ √ X
mulhwx √ XO
mulhwux √ XO
mulli √ D
mullwx √ XO
nandx √ X
negx √ XO
norx √ X
orx √ X
orcx √ X
ori √ D
oris √ D
rfi √ √ XL
rlwimix √ M
rlwinmx √ M
rlwnmx √ M
sc √ √ SC
slwx √ X
srawx √ X
srawix √ X
srwx √ X
stb √ D
stbu √ D
stbux √ X
stbx √ X
stfd √ D
stfdu √ D
stfdux √ X
stfdx √ X
stfiwx √ X
stfs √ D
UISA VEA OEA スーパバイザ・レベル� オプション� 形式�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-47
A.7 命令セットのクィック・リファレンス
表表表表 A-44 命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)
stfsu √ D
stfsux √ X
stfsx √ X
sth √ D
sthbrx √ X
sthu √ D
sthux √ X
sthx √ X
stmw 1 √ D
stswi 1 √ X
stswx 1 √ X
stw √ D
stwbrx √ X
stwcx. √ X
stwu √ D
stwux √ X
stwx √ X
subfx √ XO
subfcx √ XO
subfex √ XO
subfic √ D
subfmex √ XO
subfzex √ XO
sync √ X
tlbiax √ √ √ X
tlbiex √ √ √ X
tlbsync √ √ √ X
tw √ X
twi √ D
xorx √ X
UISA VEA OEA スーパバイザ・レベル� オプション� 形式�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-48 Freescale Semiconductor
A.7 命令セットのクィック・リファレンス
第A章
命令セット一覧
表表表表 A-44 命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)命令のクィック・リファレンス(続き)
表表表表 A-45 MPC7451 命令のクイック・リファレンス命令のクイック・リファレンス命令のクイック・リファレンス命令のクイック・リファレンス
xori D
xoris D
1 ロード/ストア・ストリング命令またはロード/ストア・マルチプル命令�2 スーパバイザ・レベル命令およびユーザ・レベル命令�
UISA VEA OEA スーパバイザ・レベル� オプション� 形式�
√
√
dss 1 √ √ VX
dssall 1 √ √ VX
dst 1 √ √ VX
dstst 1 √ √ VX
dststt 1 √ √ VX
dstt 1 √ √ VX
lvebx 1 √ √ X
lvehx 1 √ √ X
lvewx 1 √ √ X
lvsl 1 √ √ X
lvsr 1 √ √ X
lvx 1 √ √ X
lvxl 1 √ √ X
mfvscr 1 √ √ VX
mtvscr 1 √ √ VX
stvebx 1 √ √ X
stvehx 1 √ √ X
stvewx 1 √ √ X
stvx 1 √ √ X
stvxl 1 √ √ X
vaddcuw 1 √ √ VX
vaddfp 1 √ √ VX
vaddsbs 1 √ √ VX
vaddshs 1 √ √ VX
vaddsws 1 √ √ VX
vaddubm 1 √ √ VX
vaddubs 1 √ √ VX
vadduhm 1 √ √ VX
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-49
A.7 命令セットのクィック・リファレンス
表表表表 A-45 MPC7451 命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)
vadduhs 1 √ √ VX
vadduwm 1 √ √ VX
vadduws 1 √ √ VX
vand 1 √ √ VX
vandc 1 √ √ VX
vavgsb 1 √ √ VX
vavgsh 1 √ √ VX
vavgsw 1 √ √ VX
vavgub 1 √ √ VX
vavguh 1 √ √ VX
vavguw 1 √ √ VX
vcfsx 1 √ √ VX
vcfux 1 √ √ VX
vcmpbfpx 1 √ √ VXR
vcmpeqfpx 1 √ √ VXR
vcmpequbx 1 √ √ VXR
vcmpequhx 1 √ √ VXR
vcmpequwx 1 √ √ VXR
vcmpgefpx 1 √ √ VXR
vcmpgtfpx 1 √ √ VXR
vcmpgtsbx 1 √ √ VXR
vcmpgtshx 1 √ √ VXR
vcmpgtswx 1 √ √ VXR
vcmpgtubx 1 √ √ VXR
vcmpgtuhx 1 √ √ VXR
vcmpgtuwx 1 √ √ VXR
vctsxs 1 √ √ VX
vctuxs 1 √ √ VX
vexptefp 1 √ √ VX
vlogefp 1 √ √ VX
vmaddfp 1 √ √ VA
vmaxfp 1 √ √ VX
vmaxsb 1 √ √ VX
vmaxsh 1 √ √ VX
vmaxsw 1 √ √ VX
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-50 Freescale Semiconductor
A.7 命令セットのクィック・リファレンス
第A章
命令セット一覧
表表表表 A-45 MPC7451 命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)
vmaxub 1 √ √ VX
vmaxuh 1 √ √ VX
vmaxuw 1 √ √ VX
vmhaddshs 1 √ √ VA
vmhraddshs 1 √ √ VA
vminfp 1 √ √ VX
vminsb 1 √ √ VX
vminsh 1 √ √ VX
vminsw 1 √ √ VX
vminub 1 √ √ VX
vminuh 1 √ √ VX
vminuw 1 √ √ VX
vmladduhm 1 √ √ VA
vmrghb 1 √ √ VX
vmrghh 1 √ √ VX
vmrghw 1 √ √ VX
vmrglb 1 √ √ VX
vmrglh 1 √ √ VX
vmrglw 1 √ √ VX
vmsummbm 1 √ √ VA
vmsumshm 1 √ √ VA
vmsumshs 1 √ √ VA
vmsumubm 1 √ √ VA
vmsumuhm 1 √ √ VA
vmsumuhs 1 √ √ VA
vmulesb 1 √ √ VX
vmulesh 1 √ √ VX
vmuleub 1 √ √ VX
vmuleuh 1 √ √ VX
vmulosb 1 √ √ VX
vmulosh 1 √ √ VX
vmuloub 1 √ √ VX
vmulouh 1 √ √ VX
vnmsubfp 1 √ √ VA
vnor 1 √ √ VX
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-51
A.7 命令セットのクィック・リファレンス
表表表表 A-45 MPC7451 命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)
vor 1 √ √ VX
vperm 1 √ √ VA
vpkpx 1 √ √ VX
vpkshss 1 √ √ VX
vpkshus 1 √ √ VX
vpkswss 1 √ √ VX
vpkswus 1 √ √ VX
vpkuhum 1 √ √ VX
vpkuhus 1 √ √ VX
vpkuwum 1 √ √ VX
vpkuwus 1 √ √ VX
vrefp 1 √ √ VX
vrfim 1 √ √ VX
vrfin 1 √ √ VX
vrfip 1 √ √ VX
vrfiz 1 √ √ VX
vrlb 1 √ √ VX
vrlh 1 √ √ VX
vrlw 1 √ √ VX
vrsqrtefp 1 √ √ VX
vsel 1 √ √ VA
vsl 1 √ √ VX
vslb 1 √ √ VX
vsldoi 1 √ √ VA
vslh 1 √ √ VX
vslo 1 √ √ VX
vslw 1 √ √ VX
vspltb 1 √ √ VX
vsplth 1 √ √ VX
vspltisb 1 √ √ VX
vspltish 1 √ √ VX
vspltisw 1 √ √ VX
vspltw 1 √ √ VX
vsr 1 √ √ VX
vsrab1 √ √ VX
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
A-52 Freescale Semiconductor
A.7 命令セットのクィック・リファレンス
第A章
命令セット一覧
表表表表 A-45 MPC7451 命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)命令のクイック・リファレンス(続き)
vsrah 1 √ √ VX
vsraw 1 √ √ VX
vsrb 1 √ √ VX
vsrh 1 √ √ VX
vsro 1 √ √ VX
vsrw 1 √ √ VX
vsubcuw 1 √ √ VX
vsubfp 1 √ √ VX
vsubsbs 1 √ √ VX
vsubshs 1 √ √ VX
vsubsws 1 √ √ VX
vsububm 1 √ √ VX
vsubuhm 1 √ √ VX
vsububs 1 √ √ VX
vsubuhs 1 √ √ VX
vsubuwm 1 √ √ VX
vsubuws 1 √ √ VX
vsumsws 1 √ √ VX
vsum2sws 1 √ √ VX
vsum4sbs 1 √ √ VX
vsum4shs 1 √ √ VX
vsum4ubs 1 √ √ VX
vupkhpx 1 √ √ VX
vupkhsb 1 √ √ VX
vupkhsh 1 √ VX
vupklpx 1 √ VX
vupklsb 1 √ VX
vupklsh 1 √ √ VX
vxor 1 √ √ VX
1 Altivecテクノロジ専用命令�
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor A-53
A.7 命令セットのクィック・リファレンス
A
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-54 Freescale Semiconductor
B.1 概要
第B章
多倍精度シフト
付録付録付録付録 B 多倍精度シフト多倍精度シフト多倍精度シフト多倍精度シフト
B.1 概要概要概要概要
n
n 1 n
27 31
n=2 n 2 n 2
0 31
n 2 n=3 n
n=2
n=3
GPR 2 3 4
GPR6 27 31
0 GPR
0 31 n 2
2n-1 3n-1
B.2 32 ビット・ビット・ビット・ビット・インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーションの多倍精度シフトの多倍精度シフトの多倍精度シフトの多倍精度シフト
n=3 32rlwinm r2,r2,sh,0,31 – sh
rlwimi r2,r3,sh,32 – sh,31
rlwinm r3,r3,sh,0,31 – sh
rlwimi r3,r4,sh,32 – sh,31
rlwinm r4,r4,sh,0,31 – sh
n=2 64subfic r31,r6,32
slw r2,r2,r6
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor B-1
B.2 32 ビット・インプリメンテーションの多倍精度シフト
B
srw r0,r3,r31
or r2,r2,r0
addi r31,r6,–32
slw r0,r3,r31
or r2,r2,r0
slw r3,r3,r6
n=3 32subfic r31,r6,32
slw r2,r2,r6
srw r0,r3,r31
or r2,r2,r0
slw r3,r3,r6
srw r0,r4,r31
or r3,r3,r0
slw r4,r4,r6
n=3 32rlwinm r4,r4,32 – sh,sh,31
rlwimi r4,r3,32 – sh,0,sh – 1
rlwinm r3,r3,32 – sh,sh,31
rlwimi r3,r2,32 – sh,0,sh – 1
rlwinm r2,r2,32 – sh,sh,31
n=2 64subfic r31,r6,32
srw r3,r3,r6
slw r0,r2,r31
or r3,r3,r0
addi r31,r6, –32
srw r0,r2,r31
or r3,r3,r0
srw r2,r2,r6
n=3 32subfic r31,r6,–32
srw r4,r4,r6
slw r0,r3,r31
or r4,r4,r0
srw r3,r3,r6
slw r0,r2,r31
or r3,r3,r0
srw r2,r2,r6
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-2 Freescale Semiconductor
B.2 32 ビット・インプリメンテーションの多倍精度シフト
第B章
多倍精度シフト
n=3 32rlwinm r4,r4,32 – sh,sh,31
rlwimi r4,r3,32 – sh,0,sh – 1
rlwinm r3,r3,32 – sh,sh,31
rlwimi r3,r2,32 – sh,0,sh – 1
srawi r2,r2,sh
n=2 64subfic r31,r6,32
srw r3,r3,r6
slw r0,r2,r31
or r3,r3,r0
addic. r31,r6,–32
sraw r0,r2,r31
ble $+8
ori r3,r0,0
sraw r2,r2,r6
n=3 32subfic r31,r6,32
srw r4,r4,r6
slw r0,r3,r31
or r4,r4,r0
srw r3,r3,r6
slw r0,r2,r31
or r3,r3,r0
sraw r2,r2,r6
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor B-3
B.2 32 ビット・インプリメンテーションの多倍精度シフト
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
B-4 Freescale Semiconductor
C.1 IEEE オペレーションの実行モデル
第C章
浮動小数点モデル
付録付録付録付録 C 浮動小数点モデル浮動小数点モデル浮動小数点モデル浮動小数点モデルIEEE
C.1 IEEE オペレーションの実行モデルオペレーションの実行モデルオペレーションの実行モデルオペレーションの実行モデル
23
23 FRACTION
IEEE 0 55
C-1
図図図図 C-1 IEEE のののの 64 ビット実行モデルビット実行モデルビット実行モデルビット実行モデル
IEEE C-1
表表表表 C-1 IEEE のののの 64 ビットの実行モデルのフィールドビットの実行モデルのフィールドビットの実行モデルのフィールドビットの実行モデルのフィールド
ビットビットビットビット 説明説明説明説明
S
C
L
FRACTION 52
GRX
GR G R X
2X R
OR GR G R R
0 1 52 55
S C L FRACTION XG R
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor C-1
C.1 IEEE オペレーションの実行モデル
C-2 IR NL
NH G R X
L FRACTION G R X
L
FRACTION G R X
FPSCR[RN]
C 1
1
FPR
4 FPSCR[RN] ☞ 3.3.5
C-3 IEEE
表表表表 C-2 G、、、、R、、、、X の各ビットの意味の各ビットの意味の各ビットの意味の各ビットの意味
G R X 意 味意 味意 味意 味
0 0 0 IR
0 0 1
0 1 0 IR NL
0 1 1
1 0 0 IR NL NH
1 0 1
1 1 0 IR NH
1 1 1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
C-2 Freescale Semiconductor
C.1 IEEE オペレーションの実行モデル
第C章
浮動小数点モデル
FRACTION
Z1 Z2 ☞ 3.3.5
•
=0 GRX=000
GRX=001 010
011
=1
a
1
GRX=101 110 111
b 0
1
0
=1
=0
• Z1 Z2
• + Z1
表表表表 C-3 保護、丸め、スティッキの各ビットの位置保護、丸め、スティッキの各ビットの位置保護、丸め、スティッキの各ビットの位置保護、丸め、スティッキの各ビットの位置 --IEEE 実行モデル実行モデル実行モデル実行モデル
形 式形 式形 式形 式 保 護保 護保 護保 護 丸 め丸 め丸 め丸 め スティッキスティッキスティッキスティッキ
G R X
24 25 26 52 G R XOR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor C-3
C.2 積和タイプ命令の実行モデル
• - Z2
53
C.2 積和タイプ命令の実行モデル積和タイプ命令の実行モデル積和タイプ命令の実行モデル積和タイプ命令の実行モデル
1 3
C-2
1 106
図図図図 C-2 64 ビットの積和実行モデルビットの積和実行モデルビットの積和実行モデルビットの積和実行モデル
2 53
C 1
L FRACTION C
L 106 L
2
105 X OR
X
X
0 1 105
S C L FRACTION X'
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
C-4 Freescale Semiconductor
C.2 積和タイプ命令の実行モデル
第C章
浮動小数点モデル
C-4
☞ C.1 IEEE
106 106
• FR FI
FPRF
• 2
fmul fadd
0 SNaN
表表表表 C-4 G、、、、R、、、、X の各ビットの位置─積和実行モデルの各ビットの位置─積和実行モデルの各ビットの位置─積和実行モデルの各ビットの位置─積和実行モデル
形 式形 式形 式形 式 保 護保 護保 護保 護 丸 め丸 め丸 め丸 め スティッキスティッキスティッキスティッキ
53 54 55 105 X OR
24 25 26 105 X OR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor C-5
C.3 浮動小数点変換
C.3 浮動小数点変換浮動小数点変換浮動小数点変換浮動小数点変換
Floating Select fsel IEEE
NaN fsel
☞ C.5.4
C.3.1 浮動小数点数から符号付き固定小数点整数ワードへの変換浮動小数点数から符号付き固定小数点整数ワードへの変換浮動小数点数から符号付き固定小数点整数ワードへの変換浮動小数点数から符号付き固定小数点整数ワードへの変換
FPR1
GPR3 GPR1
disp
fctiw[z]f2,f1 #convert to fx int
stfd f2,disp(r1) #store float
lwa r3,disp + 4(r1) #load word algebraic
#(use lwz on a 32-bit implementation)
C.3.2 浮動小数点数から符号なし固定小数点整数ワードへの変換浮動小数点数から符号なし固定小数点整数ワードへの変換浮動小数点数から符号なし固定小数点整数ワードへの変換浮動小数点数から符号なし固定小数点整数ワードへの変換
32
FPR1 FPR0 FPR3 232 - 1 FPR4
231 GPR3 GPR1
disp
fsel f2,f1,f1,f0 #use 0 if < 0
fsub f5,f3,f1 #use max if > max
fsel f2,f5,f2,f3
fsub f5,f2,f4 #subtract 2**31
fcmpu cr2,f2,f4 #use diff if ≥ 2**31fsel f2,f5,f5,f2
fctiw[z]f2,f2 #convert to fx int
stfd f2,disp(r1) #store float
lwz r3,disp + 4(r1) #load word
blt cr2,$+8 #add 2**31 if input
xoris r3,r3,0x8000 #was ≥ 2**31
C
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-6 Freescale Semiconductor
C.4 浮動小数点モデル
第C章
浮動小数点モデル
C.4 浮動小数点モデル浮動小数点モデル浮動小数点モデル浮動小数点モデル
C.4.1 Floating-Point Round to Single-Precision モデルモデルモデルモデル
The following describes the operation of the frsp instruction.
If frB[1–11] < 897 and frB[1–63] > 0 then
Do
If FPSCR[UE] = 0 then goto Disabled Exponent Underflow
If FPSCR[UE] = 1 then goto Enabled Exponent Underflow
End
If frB[1–11] > 1150 and frB[1–11] < 2047 then
Do
If FPSCR[OE] = 0 then goto Disabled Exponent Overflow
If FPSCR[OE] = 1 then goto Enabled Exponent Overflow
End
If frB[1–11] > 896 and frB[1–11] < 1151 then goto Normal Operand
If frB[1–63] = 0 then goto Zero Operand
If frB[1–11] = 2047 then
Do
If frB[12–63] = 0 then goto Infinity Operand
If frB[12] = 1 then goto QNaN Operand
If frB[12] = 0 and frB[13–63] > 0 then goto SNaN Operand
End
sign ← frB[0]
If frB[1–11] = 0 then
Do
exp ← –1022
frac[0–52] ← 0b0 || frB[12–63]
End
If frB[1–11] > 0 then
Do
exp ← frB[1–11] – 1023
frac[0–52] ← 0b1 || frB[12–63]
End
Denormalize operand:
G || R || X ← 0b000
Do while exp < –126
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor C-7
C.4 浮動小数点モデル
C
exp ← exp + 1
frac[0–52] || G || R || X ← 0b0 || frac || G || (R | X)
End
FPSCR[UX] ← frac[24–52] || G || R || X > 0
Round single(sign,exp,frac[0–52],G,R,X)
FPSCR[XX] ← FPSCR[XX] | FPSCR[FI]
If frac[0–52] = 0 then
Do
frD[0] ← sign
frD[1–63] ← 0If sign = 0 then FPSCR[FPRF] ← “+zero”
If sign = 1 then FPSCR[FPRF] ← “–zero”
End
If frac[0–52] > 0 then
Do
If frac[0] = 1 then
Do
If sign = 0 then FPSCR[FPRF] ← “+normal number”
If sign = 1 then FPSCR[FPRF] ← “–normal number”
End
If frac[0] = 0 then
Do
If sign = 0 then FPSCR[FPRF] ← “+denormalized number”
If sign = 1 then FPSCR[FPRF] ← “–denormalized number”
End
Normalize operand:
Do while frac[0] = 0
exp ← exp – 1
frac[0–52] ← frac[1–52] || 0b0
End
frD[0] ← sign
frD[1–11] ← exp + 1023
frD[12–63] ← frac[1–52]
End
Done
FPSCR[UX] ← 1sign ← frB[0]
If frB[1–11] = 0 then
Do
exp ← –1022
frac[0–52] ← 0b0 || frB[12–63]
End
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-8 Freescale Semiconductor
C.4 浮動小数点モデル
第C章
浮動小数点モデル
If frB[1–11] > 0 then
Do
exp ← frB[1–11] – 1023
frac[0–52] ← 0b1 || frB[12–63]
End
Normalize operand:
Do while frac[0] = 0
exp ← exp – 1
frac[0–52] ← frac[1–52] || 0b0
End
Round single(sign,exp,frac[0–52],0,0,0)
FPSCR[XX] ← FPSCR[XX] | FPSCR[FI]
exp ← exp + 192
frD[0] ← sign
frD[1–11] ← exp + 1023
frD[12–63] ← frac[1–52]
If sign = 0 then FPSCR[FPRF] ← “+normal number”
If sign = 1 then FPSCR[FPRF] ← “–normal number”
Done
FPSCR[OX] ← 1If FPSCR[RN] = 0b00 then /* Round to Nearest */
Do
If frB[0] = 0 then frD ← 0x7FF0_0000_0000_0000
If frB[0] = 1 then frD ← 0xFFF0_0000_0000_0000
If frB[0] = 0 then FPSCR[FPRF] ← “+infinity”
If frB[0] = 1 then FPSCR[FPRF] ← “–infinity”
End
If FPSCR[RN] = 0b01 then /* Round Truncate */
Do
If frB[0] = 0 then frD ← 0x47EF_FFFF_E000_0000
If frB[0] = 1 then frD ← 0xC7EF_FFFF_E000_0000
If frB[0] = 0 then FPSCR[FPRF] ← “+normal number”
If frB[0] = 1 then FPSCR[FPRF] ← “–normal number”
End
If FPSCR[RN] = 0b10 then /* Round to +Infinity */
Do
If frB[0] = 0 then frD ← 0x7FF0_0000_0000_0000
If frB[0] = 1 then frD ← 0xC7EF_FFFF_E000_0000
If frB[0] = 0 then FPSCR[FPRF] ← “+infinity”
If frB[0] = 1 then FPSCR[FPRF] ← “–normal number”
End
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor C-9
C.4 浮動小数点モデル
C
If FPSCR[RN] = 0b11 then /* Round to -Infinity */
Do
If frB[0] = 0 then frD ← 0x47EF_FFFF_E000_0000
If frB[0] = 1 then frD ← 0xFFF0_0000_0000_0000
If frB[0] = 0 then FPSCR[FPRF] ← “+normal number”
If frB[0] = 1 then FPSCR[FPRF] ← “–infinity”
End
FPSCR[FR] ← undefined
FPSCR[FI] ← 1
FPSCR[XX] ← 1
Done
sign ← frB[0]
exp ← frB[1–11] – 1023
frac[0–52] ← 0b1 || frB[12–63]
Round single(sign,exp,frac[0–52],0,0,0)
FPSCR[XX] ← FPSCR[XX] | FPSCR[FI]
Enabled Overflow
FPSCR[OX] ← 1exp ← exp – 192
frD[0] ← sign
frD[1–11] ← exp + 1023
frD[12–63] ← frac[1–52]
If sign = 0 then FPSCR[FPRF] ← “+normal number”
If sign = 1 then FPSCR[FPRF] ← “–normal number”
Done
frD ← frB
If frB[0] = 0 then FPSCR[FPRF] ← “+zero”
If frB[0] = 1 then FPSCR[FPRF] ← “–zero”
FPSCR[FR FI] ← 0b00
Done
frD ← frB
If frB[0] = 0 then FPSCR[FPRF] ← “+infinity”
If frB[0] = 1 then FPSCR[FPRF] ← “–infinity”
Done
QNaNfrD ← frB[0–34] || 0b0_0000_0000_0000_0000_0000_0000_0000
FPSCR[FPRF] ← “QNaN”
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-10 Freescale Semiconductor
C.4 浮動小数点モデル
第C章
浮動小数点モデル
FPSCR[FR FI] ← 0b00
Done
SNaNFPSCR[VXSNAN] ← 1If FPSCR[VE] = 0 then
Do
frD[0–11] ← frB[0–11]
frD[12] ← 1frD[13–63] ← frB[13–34] || 0b0_0000_0000_0000_0000_0000_0000_0000
FPSCR[FPRF] ← “QNaN”
End
FPSCR[FR FI] ← 0b00
Done
sign ← frB[0]
exp ← frB[1–11] – 1023
frac[0–52] ← 0b1 || frB[12–63]
Round single(sign,exp,frac[0–52],0,0,0)
FPSCR[XX] ← FPSCR[XX] | FPSCR[FI]
If exp > +127 and FPSCR[OE] = 0 then go to Disabled Exponent Overflow
If exp > +127 and FPSCR[OE] = 1 then go to Enabled Overflow
frD[0] ← sign
frD[1–11] ← exp + 1023
frD[12–63] ← frac[1–52]
If sign = 0 then FPSCR[FPRF] ← “+normal number”
If sign = 1 then FPSCR[FPRF] ← “–normal number”
Done
sign exp frac[0-52] G R Xinc ← 0lsb ← frac[23]
gbit ← frac[24]
rbit ← frac[25]
xbit ← (frac[26–52] || G || R || X) ≠ 0
If FPSCR[RN] = 0b00 then
Do
If sign || lsb || gbit || rbit || xbit = 0bu11uu then inc ← 1If sign || lsb || gbit || rbit || xbit = 0bu011u then inc ← 1If sign || lsb || gbit || rbit || xbit = 0bu01u1 then inc ← 1
End
If FPSCR[RN] = 0b10 then
Do
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor C-11
C.4 浮動小数点モデル
C
C
If sign || lsb || gbit || rbit || xbit = 0b0u1uu then inc ← 1If sign || lsb || gbit || rbit || xbit = 0b0uu1u then inc ← 1If sign || lsb || gbit || rbit || xbit = 0b0uuu1 then inc ← 1
End
If FPSCR[RN] = 0b11 then
Do
If sign || lsb || gbit || rbit || xbit = 0b1u1uu then inc ← 1If sign || lsb || gbit || rbit || xbit = 0b1uu1u then inc ← 1If sign || lsb || gbit || rbit || xbit = 0b1uuu1 then inc ← 1
End
frac[0–23] ← frac[0–23] + inc
If carry_out =1 then
Do
frac[0–23] ← 0b1 || frac[0–22]
exp ← exp + 1
End
frac[24–52] ← (29)0
FPSCR[FR] ← inc
FPSCR[FI] ← gbit | rbit | xbit
Return
.4.2 Floating-Point Convert to Integer モデルモデルモデルモデル
Floating-Point Convert to Integer
u 16
If Floating Convert to Integer Word
Then Do
Then round_mode ← FPSCR[RN]
tgt_precision ← “32-bit integer”
End
If Floating Convert to Integer Word with round toward Zero
Then Do
round_mode ← 0b01
tgt_precision ← “32-bit integer”
End
If Floating Convert to Integer Double Word
Then Do
round_mode ← FPSCR[RN]
tgt_precision ← “64-bit integer”
End
If Floating Convert to Integer Double Word with Round toward Zero
Then Do
round_mode ← 0b01
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-12 Freescale Semiconductor
C.4 浮動小数点モデル
第C章
浮動小数点モデル
tgt_precision ← “64-bit integer”
End
sign ← frB[0]
If frB[1–11] = 2047 and frB[12–63] = 0 then goto Infinity Operand
If frB[1–11] = 2047 and frB[12] = 0 then goto SNaN Operand
If frB[1–11] = 2047 and frB[12] = 1 then goto QNaN Operand
If frB[1–11] > 1054 then goto Large Operand
If frB[1–11] > 0 then exp ← frB[1–11] – 1023 /* exp – bias */
If frB[1–11] = 0 then exp ← –1022
If frB[1–11] > 0 then frac[0–64]← 0b01 || frB[12–63] || (11)0 /*normal*/
If frB[1–11] = 0 then frac[0–64]← 0b00 || frB[12–63] || (11)0 /*denormal*/
gbit || rbit || xbit ← 0b000
Do i = 1,63 – exp /*do the loop 0 times if exp = 63*/
frac[0–64] || gbit || rbit || xbit ← 0b0 || frac[0–64] || gbit || (rbit | xbit)
End
sign frac[0-64] gbit rbit xbit round_modeu 16 u
If sign = 1 then frac[0–64] ← ¬frac[0–64] + 1 /* needed leading 0 for –264 < frB < –263*/
If tgt_precision = “32-bit integer” and frac[0–64] > +231 – 1
then goto Large Operand
If tgt_precision = “64-bit integer” and frac[0–64] > +263 – 1
then goto Large Operand
If tgt_precision = “32-bit integer” and frac[0–64] < –231 then goto Large Operand
FPSCR[XX] ← FPSCR[XX] | FPSCR[FI]
If tgt_precision = “64-bit integer” and frac[0–64] < –263 then goto Large Operand
If tgt_precision = “32-bit integer”
then frD ← 0xxuuu_uuuu || frac[33–64]
If tgt_precision = “64-bit integer” then frD ← frac[1–64]
FPSCR[FPRF] ← undefined
Done
sign frac[0-64] gbit rbit xbit round_modeu 16 u
inc ← 0
If round_mode = 0b00 then
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor C-13
C.4 浮動小数点モデル
C
Do
If sign || frac[64] || gbit || rbit || xbit = 0bu11uu then inc ← 1
If sign || frac[64] || gbit || rbit || xbit = 0bu011u then inc ← 1
If sign || frac[64] || gbit || rbit || xbit = 0bu01u1 then inc ← 1
End
If round_mode = 0b10 then
Do
If sign || frac[64] || gbit || rbit || xbit = 0b0u1uu then inc ←1
If sign || frac[64] || gbit || rbit || xbit = 0b0uu1u then inc ← 1
If sign || frac[64] || gbit || rbit || xbit = 0b0uuu1 then inc ← 1
End
If round_mode = 0b11 then
Do
If sign || frac[64] || gbit || rbit || xbit = 0b1u1uu then inc ← 1
If sign || frac[64] || gbit || rbit || xbit = 0b1uu1u then inc ← 1
If sign || frac[64] || gbit || rbit || xbit = 0b1uuu1 then inc ← 1
End
frac[0–64] ← frac[0–64] + inc
FPSCR[FR] ← inc
FPSCR[FI] ← gbit | rbit | xbit
Return
FPSCR[FR FI VXCVI] ← 0b001
If FPSCR[VE] = 0 then Do
If tgt_precision = “32-bit integer” then
Do
If sign = 0 then frD ← 0xuuuu_uuuu_7FFF_FFFF
If sign = 1 then frD ← 0xuuuu_uuuu_8000_0000
End
Else
Do
If sign = 0 then frD ← 0x7FFF_FFFF_FFFF_FFFF
If sign = 1 then frD ← 0x8000_0000_0000_0000
End
FPSCR[FPRF] ← undefined
End
Done
SNaNFPSCR[FR FI VXCVI VXSNAN] ← 0b0011
If FPSCR[VE] = 0 then
Do
If tgt_precision = “32-bit integer”
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-14 Freescale Semiconductor
C.4 浮動小数点モデル
第C章
浮動小数点モデル
then frD ← 0xuuuu_uuuu_8000_0000
If tgt_precision = “64-bit integer”
then frD ← 0x8000_0000_0000_0000
FPSCR[FPRF] ← undefined
End
Done
QNaNFPSCR[FR FI VXCVI] ← 0b001
If FPSCR[VE] = 0 then
Do
If tgt_precision = “32-bit integer” then frD ← 0xuuuu_uuuu_8000_0000
If tgt_precision = “64-bit integer” then frD ← 0x8000_0000_0000_0000
FPSCR[FPRF] ← undefined
End
Done
FPSCR[FR FI VXCVI] ← 0b001
If FPSCR[VE] = 0 then Do
If tgt_precision = “32-bit integer” then
Do
If sign = 0 then frD ← 0xuuuu_uuuu_7FFF_FFFF
If sign = 1 then frD ← 0xuuuu_uuuu_8000_0000
End
Else
Do
If sign = 0 then frD ← 0x7FFF_FFFF_FFFF_FFFF
If sign = 1 then frD ← 0x8000_0000_0000_0000
End
FPSCR[FPRF] ← undefined
End
Done
C.4.3 Floating-Point Convert from Integer モデルモデルモデルモデル
Floating-Point Convert from Integer
sign ← frB[0]
exp ← 63
frac[0–63] ← frB
If frac[0–63] = 0 then go to Zero Operand
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor C-15
C.4 浮動小数点モデル
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
C-16 Freescale Semiconductor
If sign = 1 then frac[0–63] ← ¬frac[0–63] + 1
Do while frac[0] = 0
frac[0–63] ← frac[1–63] || '0'
exp ← exp – 1
End
sign exp frac[0-63] FPSCR[RN]If sign = 1 then FPSCR[FPRF] ← “–normal number”
If sign = 0 then FPSCR[FPRF] ← “+normal number”
frD[0] ← sign
frD[1–11] ← exp + 1023
frD[12–63] ← frac[1–52]
Done
FPSCR[FR FI] ← 0b00
FPSCR[FPRF] ← “+zero”
frD ← 0x0000_0000_0000_0000
Done
sign exp frac[0-63] round_modeu 16 u
inc ← 0
lsb ← frac[52]
gbit ← frac[53]
rbit ← frac[54]
xbit ← frac[55–63] > 0
If round_mode = 0b00 then
Do
If sign || lsb || gbit || rbit || xbit = 0bu11uu then inc ← 1
If sign || lsb || gbit || rbit || xbit = 0bu011u then inc ← 1
If sign || lsb || gbit || rbit || xbit = 0bu01u1 then inc ← 1
End
If round_mode = 0b10 then
Do
If sign || lsb || gbit || rbit || xbit = 0b0u1uu then inc ← 1
If sign || lsb || gbit || rbit || xbit = 0b0uu1u then inc ← 1
If sign || lsb || gbit || rbit || xbit = 0b0uuu1 then inc ← 1
End
If round_mode = 0b11 then
Do
If sign || lsb || gbit || rbit || xbit = 0b1u1uu then inc ← 1
C.5 浮動小数点の選択
第C章
浮動小数点モデル
If sign || lsb || gbit || rbit || xbit = 0b1uu1u then inc ← 1
If sign || lsb || gbit || rbit || xbit = 0b1uuu1 then inc ← 1
End
frac[0–52] ← frac[0–52] + inc
If carry_out = 1 then exp ← exp + 1
FPSCR[FR] ← inc
FPSCR[FI] ← gbit | rbit | xbit
FPSCR[XX] ← FPSCR[XX] | FPSCR[FI]
Return
C.5 浮動小数点の選択浮動小数点の選択浮動小数点の選択浮動小数点の選択
fsel
if-then-else
C
fsel PowerPC
a b x y z FPR fa
fb fx fy fz FPR fs
☞ C.3
IEEE NaN
fsel ☞ C.5.4
C.5.1 ゼロとの比較ゼロとの比較ゼロとの比較ゼロとの比較
PowerPCif a ≥ 0.0 then x ← yfsel fx, fa, fy, fz ☞ C.5.4 1
else x ← z
if a > 0.0 then x ← y fnegfs, fa
else x ← z fsel fx, fs, fz, fy ☞ C.5.4 1 2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor C-17
C.5 浮動小数点の選択
if a = 0.0 then x ← y fselfx, fa, fy, fz
else x ← z fnegfs, fa
fsel fx, fs, fx, fz ☞ C.5.4 1
C.5.2 小と 大小と 大小と 大小と 大
PowerPCx ← min(a, b)fsub fs, fa, fb ☞ C.5.4 3 4 5
fsel fx, fs, fb, fa
x ← max(a, b)fsub fs, fa, fb ☞ C.5.4 3 4 5
fsel fx, fs, fa, fb
C.5.3 単純な単純な単純な単純な if-then-else 構造構造構造構造
if-then-else
PowerPCif a ≥ b then x ← yfsub fs, fa, fb
else x ← zfsel fx, fs, fy, fz ☞ C.5.4 4 5
if a >b then x ← yfsub fs, fb, fa
else x ← zfsel fx, fs, fz, fy ☞ C.5.4 3 4 5
if a = b then x ← yfsub fs, fa, fb
else x ← zfsel fx, fs, fy, fz
fneg fs, fs
fsel fx, fs, fx, fz ☞ C.5.4 4 5
C.5.4 注意事項注意事項注意事項注意事項
C.5.1 C.5.2 C.5.3
if-then-else 3
fsel
C
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-18 Freescale Semiconductor
C.6 浮動小数点ロード命令
第C章
浮動小数点モデル
fsel
fcpmu
1. FPSCR[VXSNAN]
IEEE
2. a NaN
3. a b NaN
NaN
4. a b
NaN
5. FPSCR[OX,UX,XX,VXISI]
IEEE
C.6 浮動小数点ロード命令浮動小数点ロード命令浮動小数点ロード命令浮動小数点ロード命令
2 FPR
FPR
WORD[0-31]
If WORD[1–8] > 0 and WORD[1–8] < 255
frD[0–1] ← WORD[0–1]
frD[2] ← ¬ WORD[1]
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor C-19
C.7 浮動小数点ストア命令
C
C
frD[3] ← ¬ WORD[1]
frD[4] ← ¬ WORD[1]
frD[5–63] ← WORD[2–31] || (29)0
If WORD[1–8] = 0 and WORD[9–31] ≠ 0sign ← WORD[0]
exp ← –126
frac[0–52] ← 0b0 || WORD[9–31] || (29)0
normalize the operand
Do while frac[0] = 0
frac ← frac[1–52] || 0b0
exp ← exp – 1
End
frD[0] ← sign
frD[1–11] ← exp + 1023
frD[12–63] ← frac[1–52]
QNaN SNaNIf WORD[1–8] = 255 or WORD[1–31] = 0
frD[0–1] ← WORD[0–1]
frD[2] ← WORD[1]
frD[3] ← WORD[1]
frD[4] ← WORD[1]
frD[5–63] ← WORD[2–31] || (29)0
FPR
rA EA
rA 0 rA
EA
frD FPR rA=0
.7 浮動小数点ストア命令浮動小数点ストア命令浮動小数点ストア命令浮動小数点ストア命令
3
stfiwx FPR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-20 Freescale Semiconductor
C.7 浮動小数点ストア命令
第C章
浮動小数点モデル
WORD[0-31]
NaNif frS[1–11] > 896 or frS[1–63] = 0 then
WORD[0–1] ← frS[0–1]
WORD[2–31] ← frS[5–34]
if 874 ≤ frS[1–11] ≤ 896 thensign ← frS[0]
exp ← frS[1–11] – 1023
frac ← 0b1 || frS[12–63]
Denormalize operand
Do while exp < –126
frac ← 0b0 || frac[0–62]
exp ← exp + 1
End
WORD[0] ← sign
WORD[1–8] ← 0x00
WORD[9–31] ← frac[1–23]
else WORD ← undefined
WORD
WORD
1
FPR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor C-21
C.7 浮動小数点ストア命令
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
C-22 Freescale Semiconductor
D.1 概要
同期化プログラミングの例
第D章
付録付録付録付録 D 同期化プログラミングの例同期化プログラミングの例同期化プログラミングの例同期化プログラミングの例
D.1 概要概要概要概要
lwarx stwcx.
• lwarx stwcx.
EA stwcx.
• lwarx stwcx.
lwarx ☞ D.2.5
• lwarx stwcx.
☞ D.2.5
stwcx.
lwarx stwcx.
• lwarx stwcx.
1
lwarx
☞ D.2.5
bne-$+12 bne-loop
•
loop: lwz r5,0(r3) #load the word
cmpwi r5,0 #loop back if word
bne- loop #not equal to 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor D-1
D.2 同期プリミティブ
lwarx r5,0,r3 #try again, reserving
cmpwi r5,0 #(likely to succeed)
bne loop #try to store nonzero
stwcx. r4,0,r3 #
bne- loop #loop if lost reservation
• lwarx stwcx.
☞ D.5
2
D.2 同期プリミティブ同期プリミティブ同期プリミティブ同期プリミティブ
lwarx stwcx.
lwarx stwcx.
stwcx. lwarx stwcx.
EQ
D.2.1 フェッチとノー・オペレーションフェッチとノー・オペレーションフェッチとノー・オペレーションフェッチとノー・オペレーション
GPR3 GPR4
loop: lwarx r4,0,r3 #load and reserve
stwcx. r4,0,r3 #store old value if still reserved
bne- loop #loop if lost reservation
stwcx. lwarx
lwarx
lwarx
stwcx.
D
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-2 Freescale Semiconductor
D.2 同期プリミティブ
同期化プログラミングの例
第D章
D.2.2 フェッチとストアフェッチとストアフェッチとストアフェッチとストア
GPR3 GPR4
GPR5
loop: lwarx r5,0,r3 #load and reserve
stwcx. r4,0,r3 #store new value if still reserved
bne- loop #loop if lost reservation
D.2.3 フェッチと加算フェッチと加算フェッチと加算フェッチと加算
GPR3
GPR4 GPR5
loop: lwarx r5,0,r3 #load and reserve
add r0,r4,r5#increment word
stwcx. r0,0,r3 #store new value if still reserved
bne- loop #loop if lost reservation
D.2.4 フェッチとフェッチとフェッチとフェッチと AND
AND
AND
AND GPR3 AND
GPR4 GPR5
loop: lwarx r5,0,r3 #load and reserve
and r0,r4,r5#AND word
stwcx. r0,0,r3 #store new value if still reserved
bne- loop #loop if lost reservation
AND OR XOR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor D-3
D.3 比較とスワップ
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
D-4 Freescale Semiconductor
D.2.5 テストとセットテストとセットテストとセットテストとセット
CR0[EQ]
GPR3
GPR4 GPR5
loop: lwarx r5,0,r3 #load and reserve
cmpwi r5, 0 #done if word
bne $+12 #not equal to 0
stwcx. r4,0,r3 #try to store non-zero
bne- loop #loop if lost reservation
D.3 比較とスワップ比較とスワップ比較とスワップ比較とスワップ
2
CR0 EQ
GPR3 GPR4
GPR5 GPR4
loop: lwarx r6,0,r3 #load and reserve
cmpw r4,r6 #first 2 operands equal ?
bne- exit #skip if not
stwcx. r5,0,r3 #store new value if still reserved
bne- loop #loop if lost reservation
exit: mr r4,r6 #return value from memory
• IBM System/370
• lwarx
stwcx.
D.4 ロックの獲得と解放
同期化プログラミングの例
第D章
• 2 bne- mr
bne- CR0
EQ r4 r6
mr
3
IBM System/370
D.4 ロックの獲得と解放ロックの獲得と解放ロックの獲得と解放ロックの獲得と解放
GPR3
0
1
TEST_AND_SET ☞ D.2.5
1 GPR4
GPR5
0 CR0 EQ
0 1
bne- isync
sync sync
sync
lock: li r4,1 #obtain lock
loop: bl test_and_set#test and set
bne- loop #retry until old = 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor D-5
D.5 リスト挿入
D
D
#delay subsequent instructions until
#previous ones complete
isync
blr #return
0
sync
sync
unlock: sync #delay until prior stores finish
li r1,0
stw r1,0(r3)#store zero to lock location
blr #return
.5 リスト挿入リスト挿入リスト挿入リスト挿入
lwarx stwcx.
LIFO
GPR3 GPR4
0
loop: lwarx r2,0,r3 #get next pointer
stw r2,0(r4)#store in new element
sync #let store settle (can omit if not MP)
stwcx. r4,0,r3 #add new element to list
bne- loop #loop if stwcx. failed
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-6 Freescale Semiconductor
D.5 リスト挿入
同期化プログラミングの例
第D章
2
lwz r2,0(r3)#get next pointer
loopl: mr r5,r2 #keep a copy
stw r2,0(r4)#store in new element
sync #let store settle
loop2: lwarx r2,0,r3 #get it again
cmpw r2,r5 #loop if changed (someone
bne- loopl #else progressed)
stwcx. r4,0,r3 #add new element to list
bne- loop2 #loop if failed
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor D-7
D.5 リスト挿入
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
D-8 Freescale Semiconductor
E.1 シンボル
簡略ニ|モニック
第E章
付録付録付録付録 E 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
E.1 シンボルシンボルシンボルシンボル
E-1 CR
表表表表 E-1 コンディション・レジスタのビットとシンボルの定義コンディション・レジスタのビットとシンボルの定義コンディション・レジスタのビットとシンボルの定義コンディション・レジスタのビットとシンボルの定義
シンシンシンシン
ボルボルボルボル値値値値
ビット・ビット・ビット・ビット・
フィールドのフィールドのフィールドのフィールドの
範囲範囲範囲範囲1
1 CR のビットを指示するために、CR フィールド・シンボルに 4 を乗算して CR フィールド内のビット
番号をシンボルに加算する式を使用できる。
説 明説 明説 明説 明
lt 0 — CR
gt 1 — CR
eq 2 — CR
so 3 — CR
un 3 — CR
cr0 0 0–3 CR0
cr1 1 4–7 CR1
cr2 2 8–11 CR2
cr3 3 12–15 CR3
cr4 4 16–19 CR4
cr5 5 20–23 CR5
cr6 6 24–27 CR6
cr7 7 28–31 CR7
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor E-1
E.2 減算命令の簡略ニーモニック
E.5.2 E.6
CR
CR 1 4
CR 0 3
E.5.3
E.3
CR CR 1
4 E.5.3
CR
CR
BI CR
E.2 減算命令の簡略ニーモニック減算命令の簡略ニーモニック減算命令の簡略ニーモニック減算命令の簡略ニーモニック
E.2.1 減算イミディエイト減算イミディエイト減算イミディエイト減算イミディエイト
表表表表 E-2 減算イミディエイトの簡略ニーモニック減算イミディエイトの簡略ニーモニック減算イミディエイトの簡略ニーモニック減算イミディエイトの簡略ニーモニック
簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック 標準ニーモニック標準ニーモニック標準ニーモニック標準ニーモニック
subi rD,rA,value addi rD,rA,–value
subis rD,rA,value addis rD,rA,–value
subic rD,rA,value addic rD,rA,–value
subic. rD,rA,value addic. rD,rA,–value
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
E-2 Freescale Semiconductor
E.3 比較命令の簡略ニーモニック
簡略ニ|モニック
第E章
E.2.2 減算減算減算減算
3 rB 2 rA
2 3
o .
OE Rc
E.3 比較命令の簡略ニーモニック比較命令の簡略ニーモニック比較命令の簡略ニーモニック比較命令の簡略ニーモニック
CR0 crfD
CR 1
E.1
PowerPC POWER
POWER 3
PowerPC 4
3 POWER
L=0 CR0
crfD
E.3.1 ワードの比較ワードの比較ワードの比較ワードの比較
E-4
表表表表 E-3 減算の簡略ニーモニック減算の簡略ニーモニック減算の簡略ニーモニック減算の簡略ニーモニック
簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック 標準ニーモニック標準ニーモニック標準ニーモニック標準ニーモニック
sub rD,rA,rB subf rD,rB,rA
subc rD,rA,rB subfcrD,rB,rA
表表表表 E-4 ワード比較命令の簡略ニーモニックワード比較命令の簡略ニーモニックワード比較命令の簡略ニーモニックワード比較命令の簡略ニーモニック
オペレーションオペレーションオペレーションオペレーション 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック 対応ニーモニック対応ニーモニック対応ニーモニック対応ニーモニック
cmpwi crfD,rA,SIMM cmpi crfD,0,rA,SIMM
cmpw crfD,rA,rB cmp crfD,0,rA,rB
cmplwi crfD,rA,UIMM cmpli crfD,0,rA,UIMM
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor E-3
E.4 ローテート命令およびシフト命令の簡略ニーモニック
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
E-4 Freescale Semiconductor
1. rA 32 100
CR0
cmpwi rA,100 cmpi 0,0,rA,100
2. 1 CR4
cmpwi cr4,rA,100 cmpi 4,0,rA,100
3. rA rB 32 CR0
cmplw rA,rB cmpl 0,0,rA,rB
E.4 ローテート命令およびシフト命令の簡略ニーモニックローテート命令およびシフト命令の簡略ニーモニックローテート命令およびシフト命令の簡略ニーモニックローテート命令およびシフト命令の簡略ニーモニック
• b n
• n
b
• n
• n
• n
cmplw crfD,rA,rB cmpl crfD,0,rA,rB
表表表表 E-4 ワード比較命令の簡略ニーモニック(続き)ワード比較命令の簡略ニーモニック(続き)ワード比較命令の簡略ニーモニック(続き)ワード比較命令の簡略ニーモニック(続き)
オペレーションオペレーションオペレーションオペレーション 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック 対応ニーモニック対応ニーモニック対応ニーモニック対応ニーモニック
E.4 ローテート命令およびシフト命令の簡略ニーモニック
簡略ニ|モニック
第E章
• b
n
E.4.1 ワードのオペレーションワードのオペレーションワードのオペレーションワードのオペレーション
E-5
.
Rc
1. rS 0 rA
extrwi rA,rS,1,0 rlwinm rA,rS,1,31,31
2. 1 rB 0
insrwi rB,rA,1,0 rlwimi rB,rA,31,0,0
表表表表 E-5 ワードのローテート/シフト命令ワードのローテート/シフト命令ワードのローテート/シフト命令ワードのローテート/シフト命令
オペレーションオペレーションオペレーションオペレーション 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック 対応ニーモニック対応ニーモニック対応ニーモニック対応ニーモニック
extlwi rA,rS,n,b (n > 0) rlwinm rA,rS,b,0,n – 1
extrwi rA,rS,n,b (n > 0) rlwinm rA,rS,b + n, 32 – n,31
inslwi rA,rS,n,b (n > 0) rlwimi rA,rS,32 – b,b,(b + n) – 1
insrwi rA,rS,n,b (n > 0) rlwimi rA,rS,32 – (b + n),b,(b + n) – 1
rotlwi rA,rS,n rlwinm rA,rS,n,0,31
rotrwi rA,rS,n rlwinm rA,rS,32 – n,0,31
rotlw rA,rS,rB rlwnm rA,rS,rB,0,31
slwi rA,rS,n (n < 32) rlwinm rA,rS,n,0,31 – n
srwi rA,rS,n (n < 32) rlwinm rA,rS,32 – n,n,31
clrlwi rA,rS,n (n < 32) rlwinm rA,rS,0,n,31
clrrwi rA,rS,n (n < 32) rlwinm rA,rS,0,0,31 – n
clrlslwi rA,rS,b,n (n ≤ b ≤31)
rlwinm rA,rS,n,b – n,31 – n
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor E-5
E.5 分岐命令の簡略ニーモニック
3. rA 8
slwi rA,rA,8 rlwinm rA,rA,8,0,23
4. rS 16 rA
clrlwi rA,rS,16 rlwinm rA,rS,0,16,31
E.5 分岐命令の簡略ニーモニック分岐命令の簡略ニーモニック分岐命令の簡略ニーモニック分岐命令の簡略ニーモニック
E.5.1 BO フィールドおよびフィールドおよびフィールドおよびフィールドおよび BI フィールドフィールドフィールドフィールド
5 BO
• CTR
• CTR 0
• CTR 0
•
•
•
5 BI CR 32
BO BI
210=1024
E.5.2
bc bclr bcctr
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
E-6 Freescale Semiconductor
E.5 分岐命令の簡略ニーモニック
簡略ニ|モニック
第E章
E.5.2 基本分岐ニーモニック基本分岐ニーモニック基本分岐ニーモニック基本分岐ニーモニック
E-6 BO
AA
LR
b ba bl bla
E-6
E-6 CR
1 E.1
表表表表 E-6 分岐の簡略ニーモニック分岐の簡略ニーモニック分岐の簡略ニーモニック分岐の簡略ニーモニック
分岐処理分岐処理分岐処理分岐処理
LR 更新非イネーブル更新非イネーブル更新非イネーブル更新非イネーブル LR 更新イネーブル更新イネーブル更新イネーブル更新イネーブル
bc Relative
bca Absolute
bclr to LR
bcctr to CTR
bcl Relative
bcla Absolute
bclrl to LR
bcctrl to CTR
— — blr bctr — — blrl bctrl
bt bta btlr btctr btl btla btlrl btctrl
bf bfa bflr bfctr bfl bfla bflrl bfctrl
CTR CTR bdnz bdnza bdnzlr — bdnzl bdnzla bdnzlrl —
CTR CTR bdnzt bdnzta bdnztlr — bdnztl bdnztla bdnztlrl —
CTR CTR bdnzf bdnzfa bdnzflr — bdnzfl bdnzfla bdnzflrl —
CTR CTR bdz bdza bdzlr — bdzl bdzla bdzlrl —
CTR CTR bdzt bdzta bdztlr — bdztl bdztla bdztlrl —
CTR CTR bdzf bdzfa bdzflr — bdzfl bdzfla bdzflrl —
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor E-7
E.5 分岐命令の簡略ニーモニック
E-6
1. CTR CTR
bdnz target bc 16,0,target
2. 1 CTR CR0
bdnzt eq,target bc 8,2,target
3. 2 CR5
bdnzt 4 * cr5 + eq,target bc 8,22,target
4. CR 27
bf 27,target bc 4,27,target
5. 4
bfl 27,target bcl 4,27,target
E-7 bc bca
CR CR0
表表表表 E-7 LR の更新をともなわないの更新をともなわないの更新をともなわないの更新をともなわない bc およびおよびおよびおよび bca の簡略ニーモニックの簡略ニーモニックの簡略ニーモニックの簡略ニーモニック
分岐処理分岐処理分岐処理分岐処理 bc 相対相対相対相対 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック bca 絶対絶対絶対絶対 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
— — — —
bc 12,0,target
bt 0,target bca 12,0,target
bta 0,target
bc 4,0,target bf 0,target bca 4,0,target bfa 0,target
CTR CTR bc16,0,target bdnz target bca 16,0,target
bdnza target
CTR CTR bc 8,0,target bdnzt 0,target bca 8,0,target bdnzta 0,target
CTR CTR bc 0,0,target bdnzf 0,target bca 0,0,target bdnzfa 0,target
CTR CTR bc18,0,target bdz target bca 18,0,target
bdza target
CTR CTR bc10,0,target
bdzt 0,target bca 10,0,target
bdzta 0,target
CTR CTR bc 2,0,target bdzf 0,target bca 2,0,target bdzfa 0,target
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
E-8 Freescale Semiconductor
E.5 分岐命令の簡略ニーモニック
簡略ニ|モニック
第E章
E-8 bclr bcclr
CR CR0
E-9 bcl bcla
CR CR0
表表表表 E-8 LR の更新をともなわないの更新をともなわないの更新をともなわないの更新をともなわない bclr およびおよびおよびおよび bcclr の簡略ニーモニックの簡略ニーモニックの簡略ニーモニックの簡略ニーモニック
分岐処理分岐処理分岐処理分岐処理 LR へのへのへのへの bclr 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック CTR へのへのへのへの bcclr 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
bclr 20,0 blr bcctr 20,0 bctr
bclr 12,0 btlr 0 bcctr 12,0 btctr 0
bclr 4,0 bflr 0 bcctr 4,0 bfctr 0
CTR CTR bclr 16,0 bdnzlr — —
CTR CTR bclr 10,0 bdztlr 0 — —
CTR CTR bclr 0,0 bdnzflr 0 — —
CTR CTR bclr 18,0 bdzlr — —
CTR CTR bclr 10,0 bdztlr 0 — —
CTR CTR bcctr 0,0 bdzflr 0 — —
表表表表 E-9 LR の更新をともなうの更新をともなうの更新をともなうの更新をともなう bcl およびおよびおよびおよび bcla の簡略ニーモニックの簡略ニーモニックの簡略ニーモニックの簡略ニーモニック
分岐処理分岐処理分岐処理分岐処理 bcl 相対相対相対相対 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック bcla 相対相対相対相対 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
— — — —
bcl1 2,0,target
btl 0,target bcla 12,0,target
btla 0,target
bcl 4,0,target
bfl 0,target bcla 4,0,target
bfla 0,target
CTR CTR bcl 16,0,target
bdnzl target bcla 16,0,target
bdnzla target
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor E-9
E.5 分岐命令の簡略ニーモニック
E-10 bclrl bcctrl
CR CR0
CTR CTR bcl 8,0,target
bdnztl 0,target bcla 8,0,target
bdnztla 0,target
CTR CTR bcl 0,0,target
bdnzfl 0,target bcla 0,0,target
bdnzfla 0,target
CTR CTR bcl 18,0,target
bdzl target bcla 18,0,target
bdzla target
CTR CTR bcl 10,0,target
bdztl 0,target bcla 10,0,target
bdztla 0,target
CTR CTR bcl 2,0,target
bdzfl 0,target bcla 2,0,target
bdzfla 0,target
表表表表 E-10 LR の更新をともなうの更新をともなうの更新をともなうの更新をともなう bclrl およびおよびおよびおよび bcctrl の簡略ニーモニックの簡略ニーモニックの簡略ニーモニックの簡略ニーモニック
分岐処理分岐処理分岐処理分岐処理
LR Update Enabled
LR へのへのへのへのbclrl 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
CTR へのへのへのへのbcctrl 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
bclrl 20,0 blrl bcctrl 20,0 bctrl
bclrl12,0 btlrl 0 bcctrl 12,0 btctrl 0
bclrl 4,0 bflrl 0 bcctrl 4,0 bfctrl 0
CTR CTR bclrl 16,0 bdnzlrl — —
CTR CTR bclrl 8,0 bdnztlrl 0 — —
CTR CTR bclrl 0,0 bdnzflrl 0 — —
CTR CTR bclrl 18,0 bdzlrl — —
CTR CTR bdztlrl 0 bdztlrl 0 — —
CTR CTR bclrl 4,0 bflrl 0 — —
表表表表 E-9 LR の更新をともなうの更新をともなうの更新をともなうの更新をともなう bcl およびおよびおよびおよび bcla の簡略ニーモニック(続き)の簡略ニーモニック(続き)の簡略ニーモニック(続き)の簡略ニーモニック(続き)
分岐処理分岐処理分岐処理分岐処理 bcl 相対相対相対相対 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック bcla 相対相対相対相対 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
E-10 Freescale Semiconductor
E.5 分岐命令の簡略ニーモニック
簡略ニ|モニック
第E章
E.5.3 分岐ニーモニック組込み条件分岐ニーモニック組込み条件分岐ニーモニック組込み条件分岐ニーモニック組込み条件
E-6
BO BI
E-11
E-12
表表表表 E-11 分岐条件の標準コーディング分岐条件の標準コーディング分岐条件の標準コーディング分岐条件の標準コーディング
コードコードコードコード 説 明説 明説 明説 明
lt
le
eq
ge
gt
nl
ne
ng
so
ns
un
nu
表表表表 E-12 比較条件付き簡略ニーモニック比較条件付き簡略ニーモニック比較条件付き簡略ニーモニック比較条件付き簡略ニーモニック
分岐処理分岐処理分岐処理分岐処理
LR 更新非イネーブル更新非イネーブル更新非イネーブル更新非イネーブル LR 更新イネーブル更新イネーブル更新イネーブル更新イネーブル
bc 相対相対相対相対 bca 絶対絶対絶対絶対LR へのへのへのへの
bclrCTR へへへへ
のののの bcctrbcl 相対相対相対相対 bcla 絶対絶対絶対絶対
LR へのへのへのへのbclrl
CTR へへへへ
のののの bcctrl
blt blta bltlr bltctr bltl bltla bltlrl bltctrl
ble blea blelr blectr blel blela blelrl blectrl
beq beqa beqlr beqctr beql beqla beqlrl beqctrl
bge bgea bgelr bgectr bgel bgela bgelrl bgectrl
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor E-11
E.5 分岐命令の簡略ニーモニック
E-12 1 CR
CR CR0
E.1
F-12
1. CR0
bne target bc 4,2,target
2. 1 CR3
bne cr3,target bc 4,14,target
3. CR4 LR
bgtla cr4,target bcla 12,17,target
4. 3 CTR
bgtctrl cr4 bcctrl 12,17
bgt bgta bgtlr bgtctr bgtl bgtla bgtlrl bgtctrl
bnl bnla bnllr bnlctr bnll bnlla bnllrl bnlctrl
bne bnea bnelr bnectr bnel bnela bnelrl bnectrl
bng bnga bnglr bngctr bngl bngla bnglrl bngctrl
bso bsoa bsolr bsoctr bsol bsola bsolrl bsoctrl
bns bnsa bnslr bnsctr bnsl bnsla bnslrl bnsctrl
bun buna bunlr bunctr bunl bunla bunlrl bunctrl
bnu bnua bnulr bnuctr bnul bnula bnulrl bnuctrl
表表表表 E-12 比較条件付き簡略ニーモニック(続き)比較条件付き簡略ニーモニック(続き)比較条件付き簡略ニーモニック(続き)比較条件付き簡略ニーモニック(続き)
分岐処理分岐処理分岐処理分岐処理
LR 更新非イネーブル更新非イネーブル更新非イネーブル更新非イネーブル LR 更新イネーブル更新イネーブル更新イネーブル更新イネーブル
bc 相対相対相対相対 bca 絶対絶対絶対絶対LR へのへのへのへの
bclrCTR へへへへ
のののの bcctrbcl 相対相対相対相対 bcla 絶対絶対絶対絶対
LR へのへのへのへのbclrl
CTR へへへへ
のののの bcctrl
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
E-12 Freescale Semiconductor
E.5 分岐命令の簡略ニーモニック
簡略ニ|モニック
第E章
E-13 bc bca
CR CR0
E-14 bclr
bcctr
CR CR0
表表表表 E-13 比較条件と比較条件と比較条件と比較条件と LR の更新をともなわないの更新をともなわないの更新をともなわないの更新をともなわない bc およびおよびおよびおよび bca の簡略ニーモニックの簡略ニーモニックの簡略ニーモニックの簡略ニーモニック
分岐処理分岐処理分岐処理分岐処理 bc 相対相対相対相対 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック bca 絶対絶対絶対絶対 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
bc 12,0,target blt target bca 12,0,target blta target
bc 4,1,target ble target bca 4,1,target blea target
bc 12,2,target beq target bca 12,2,target beqa target
bc 4,0,target bge target bca 4,0,target bgea target
bc 12,1,target bgt target bca 12,1,target bgta target
bc 4,0,target bnl target bca 4,0,target bnla target
bc 4,2,target bne target bca 4,2,target bnea target
bc 4,1,target bng target bca 4,1,target bnga target
bc 12,3,target bso target bca 12,3,target bsoa target
bc 4,3,target bns target bca 4,3,target bnsa target
bc 12,3,target bun target bca 12,3,target buna target
bc 4,3,target bnu target bca 4,3,target bnua target
表表表表 E-14 比較条件と比較条件と比較条件と比較条件と LR の更新をともなわないの更新をともなわないの更新をともなわないの更新をともなわない bclr およびおよびおよびおよび bcctr の簡略ニーモニックの簡略ニーモニックの簡略ニーモニックの簡略ニーモニック
分岐処理分岐処理分岐処理分岐処理LR へのへのへのへの
bclr 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニックCTR へのへのへのへの
bcctr 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
bclr 12,0
bltlr bcctr 12,0 bltctr
bclr 4,1 blelr bcctr 4,1 blectr
bclr 12,2
beqlr bcctr 12,2 beqctr
bclr 4,0 bgelr bcctr 4,0 bgectr
bclr 12,1 bgtlr bcctr 12,1 bgtctr
bclr 4,0 bnllr bcctr 4,0 bnlctr
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor E-13
E.5 分岐命令の簡略ニーモニック
E-15 bcl bcla
CR CR0
bclr 4,2 bnelr bcctr 4,2 bnectr
bclr 4,1 bnglr bcctr 4,1 bngctr
bclr 12,3 bsolr bcctr 12,3 bsoctr
bclr 4,3 bnslr bcctr 4,3 bnsctr
bclr 12,3 bunlr bcctr 12,3 bunctr
bclr 4,3 bnulr bcctr 4,3 bnuctr
表表表表 E-15 比較条件と比較条件と比較条件と比較条件と LR の更新をともなうの更新をともなうの更新をともなうの更新をともなう bcl およびおよびおよびおよび bcla の簡略ニーモニックの簡略ニーモニックの簡略ニーモニックの簡略ニーモニック
分岐処理分岐処理分岐処理分岐処理 bcl 相対相対相対相対 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック bcla 絶対絶対絶対絶対 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
bcl 12,0,target bltl target bcla 12,0,target bltla target
bcl 4,1,target blel target bcla 4,1,target blela target
beql target beql target bcla 12,2,target beqla target
bcl 4,0,target bgel target bcla 4,0,target bgela target
bcl 12,1,target bgtl target bcla 12,1,target bgtla target
bcl 4,0,target bnll target bcla 4,0,target bnlla target
bcl 4,2,target bnel target bcla 4,2,target bnela target
bcl 4,1,target bngl target bcla 4,1,target bngla target
bcl 12,3,target bsol target bcla 12,3,target bsola target
bcl 4,3,target bnsl target bcla 4,3,target bnsla target
bcl 12,3,target bunl target bcla 12,3,target bunla target
bcl 4,3,target bnul target bcla 4,3,target bnula target
表表表表 E-14 比較条件と比較条件と比較条件と比較条件と LR の更新をともなわないの更新をともなわないの更新をともなわないの更新をともなわない bclr およびおよびおよびおよび bcctr の簡略ニーモニック(続き)の簡略ニーモニック(続き)の簡略ニーモニック(続き)の簡略ニーモニック(続き)
分岐処理分岐処理分岐処理分岐処理LR へのへのへのへの
bclr 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニックCTR へのへのへのへの
bcctr 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
E-14 Freescale Semiconductor
E.5 分岐命令の簡略ニーモニック
簡略ニ|モニック
第E章
E-16 bclrl bcctl
CR CR0
E.5.4 分岐予測分岐予測分岐予測分岐予測
BO
y y
☞ 4.2.4.2
•
•
• LR CTR
表表表表 E-16 比較条件と比較条件と比較条件と比較条件と LR の更新をともなうの更新をともなうの更新をともなうの更新をともなう bclrl およびおよびおよびおよび bcctl の簡略ニーモニックの簡略ニーモニックの簡略ニーモニックの簡略ニーモニック
分岐処理分岐処理分岐処理分岐処理LR へのへのへのへの
bclrl 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニックCTR へのへのへのへの
bcctl 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック
bclrl 12,0 bltlrl 0 bcctrl 12,0 bltctrl 0
bclrl 4,1 blelrl 0 bcctrl 4,1 blectrl 0
bclrl 12,2 beqlrl 0 bcctrl 12,2 beqctrl 0
bclrl 4,0 bgelrl 0 bcctrl 4,0 bgectrl 0
bclrl 12,1 bgtlrl 0 bcctrl 12,1 bgtctrl 0
bclrl 4,0 bnllrl 0 bcctrl 4,0 bnlctrl 0
bclrl 4,2 bnelrl 0 bcctrl 4,2 bnectrl 0
bclrl 4,1 bnglrl 0 bcctrl 4,1 bngctrl 0
bclrl 12,3 bsolrl 0 bcctrl 12,3 bsoctrl 0
bclrl 4,3 bnslrl 0 bcctrl 4,3 bnsctrl 0
bclrl 12,3 bunlrl 0 bcctrl 12,3 bunctrl 0
bclrl 4,3 bnulrl 0 bcctrl 4,3 bnuctrl 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor E-15
E.6 コンディション・レジスタ論理命令の簡略ニーモニック
y
+
-
bc[l][a] y
+ y
-
+ y -
LR CTR bcclr[l] bcctr[l]
+ y -
1. CR0
blt+ target
2. 1 LR
bltlr-
E.6 コンディション・レジスタ論理命令の簡略ニーモニックコンディション・レジスタ論理命令の簡略ニーモニックコンディション・レジスタ論理命令の簡略ニーモニックコンディション・レジスタ論理命令の簡略ニーモニック
F-17 CR CR
E.1
CR
表表表表 E-17 コンディション・レジスタ論理ニーモニックコンディション・レジスタ論理ニーモニックコンディション・レジスタ論理ニーモニックコンディション・レジスタ論理ニーモニック
オペレーションオペレーションオペレーションオペレーション 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック 対応ニーモニック対応ニーモニック対応ニーモニック対応ニーモニック
crset bx creqv bx,bx,bx
crclr bx crxor bx,bx,bx
crmove bx,by cror bx,by,by
crnot bx,by crnor bx,by,by
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
E-16 Freescale Semiconductor
E.7 トラップ命令の簡略ニーモニック
簡略ニ|モニック
第E章
CR
1. CR[25]
crset 25 creqv 25,25,25
2. CR0[SO]
crclr so crxor 3,3,3
3. 2 CR3[SO]
crclr 4*cr3+so crxor 15,15,15
4. EQ
crnot eq,eq crnor 2,2,2
5. 4 CR4[EQ] CR5[EQ]
crnot 4*cr5+eq,4*cr4+eq crnot 22,18,18
E.7 トラップ命令の簡略ニーモニックトラップ命令の簡略ニーモニックトラップ命令の簡略ニーモニックトラップ命令の簡略ニーモニック
E-18
表表表表 E-18 トラップ命令の標準コードトラップ命令の標準コードトラップ命令の標準コードトラップ命令の標準コード
コードコードコードコード 説 明説 明説 明説 明 TO エンコーディングエンコーディングエンコーディングエンコーディング < > = <U1 >U 2
lt 16 1 0 0 0 0
le 20 1 0 1 0 0
eq 4 0 0 1 0 0
ge 12 0 1 1 0 0
gt 8 0 1 0 0 0
nl 12 0 1 1 0 0
ne 24 1 1 0 0 0
ng 20 1 0 1 0 0
llt 2 0 0 0 1 0
lle 6 0 0 1 1 0
lge 5 0 0 1 0 1
lgt 1 0 0 0 0 1
lnl 5 0 0 1 0 1
lng 6 0 0 1 1 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor E-17
E.7 トラップ命令の簡略ニーモニック
E-19
TO
E-19
1. rA
twnei rA,0 twi 24,rA,0
2. rA rB
— 31 1 1 1 1 1
1 < U の記号は、符号なしの「より小さい」の評価が実行されることを意味する。2 > U の記号は、符号なしの「より大きい」の評価が実行されることを意味する。
表表表表 E-19 トラップ・ニーモニックトラップ・ニーモニックトラップ・ニーモニックトラップ・ニーモニック
トラップ処理トラップ処理トラップ処理トラップ処理
32 ビット比較ビット比較ビット比較ビット比較
twi イミディエイトイミディエイトイミディエイトイミディエイト tw レジスタレジスタレジスタレジスタ
— trap
twlti twlt
twlei twle
tweqi tweq
twgei twge
twgti twgt
twnli twnl
twnei twne
twngi twng
twllti twllt
twllei twlle
twlgei twlge
twlgti twlgt
twlnli twlnl
twlngi twlng
表表表表 E-18 トラップ命令の標準コード(続き)トラップ命令の標準コード(続き)トラップ命令の標準コード(続き)トラップ命令の標準コード(続き)
コードコードコードコード 説 明説 明説 明説 明 TO エンコーディングエンコーディングエンコーディングエンコーディング < > = <U1 >U 2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
E-18 Freescale Semiconductor
E.8 スペシャル・パーパス・レジスタの簡略ニーモニック
簡略ニ|モニック
第E章
twne rA,rB tw 24,rA,rB
3. rA 0x7FF
twlgti rA,0x7FF twi l,rA,0x7FF )
4.
trap tw 31,0,0 )
• rA SIMM
rB
5 TO AND 0
E-20
E.8 スペシャル・パーパス・レジスタの簡略ニーモニックスペシャル・パーパス・レジスタの簡略ニーモニックスペシャル・パーパス・レジスタの簡略ニーモニックスペシャル・パーパス・レジスタの簡略ニーモニック
mtspr mfspr
SPR SPR
E-
21 SPR
表表表表 E-20 TO オペランドのビット・エンコーディングオペランドのビット・エンコーディングオペランドのビット・エンコーディングオペランドのビット・エンコーディング
TO ビットビットビットビット AND する条件する条件する条件する条件
0
1
2
3
4
表表表表 E-21 SPR の簡略ニーモニックの簡略ニーモニックの簡略ニーモニックの簡略ニーモニック
SPRSPR へのムーブへのムーブへのムーブへのムーブ SPR からのムーブからのムーブからのムーブからのムーブ
簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック 対応ニーモニック対応ニーモニック対応ニーモニック対応ニーモニック 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック 対応ニーモニック対応ニーモニック対応ニーモニック対応ニーモニック
XER mtxer rS mtspr 1,rS mfxer rD mfspr rD,1
mtlr rS mtspr 8,rS mflr rD mfspr rD,8
mtctr rS mtspr 9,rS mfctr rD mfspr rD,9
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor E-19
E.8 スペシャル・パーパス・レジスタの簡略ニーモニック
E-21 SPR
1. rS XER
mtxer rS mtspr l,rS
2. LR rS
mflr rS mfspr rS,8
3. rS CTR
DSISR mtdsisr rS mtspr 18,rS mfdsisr rD mfspr rD,18
mtdar rS mtspr 19,rS mfdar rD mfspr rD,19
mtdec rS mtspr 22,rS mfdec rD mfspr rD,22
SDR1 mtsdr1 rS mtspr 25,rS mfsdr1 rD mfspr rD,25
0
mtsrr0 rS mtspr 26,rS mfsrr0 rD mfspr rD,26
1
mtsrr1 rS mtspr 27,rS mfsrr1 rD mfspr rD,27
SPRG0–SPRG3 mtspr n, rS mtspr 272 + n,rS mfsprg rD, n mfspr rD,272 + n
mtasr rS mtspr 280,rS mfasr rD mfspr rD,280
mtear rS mtspr 282,rS mfear rD mfspr rD,282
mttbl rS mtspr 284,rS mftb rD mftb rD,268
mttbu rS mtspr 285,rS mftbu rD mftb rD,269
— — mfpvr rD mfspr rD,287
IBAT mtibatu n, rS mtspr 528 + (2 *n),rS
mfibatu rD, n mfspr rD,528 + (2 *n)
IBAT mtibatl n, rS mtspr 529 + (2 *n),rS
mfibatl rD, n mfspr rD,529 + (2 *n)
DBAT mtdbatu n, rS mtspr 536 + (2*n),rS
mfdbatu rD, n mfspr rD,536 + (2*n)
DBAT mtdbatl n, rS mtspr 537 + (2 *n),rS
mfdbatl rD, n mfspr rD,537 + (2 *n)
表表表表 E-21 SPR の簡略ニーモニック(続き)の簡略ニーモニック(続き)の簡略ニーモニック(続き)の簡略ニーモニック(続き)
SPRSPR へのムーブへのムーブへのムーブへのムーブ SPR からのムーブからのムーブからのムーブからのムーブ
簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック 対応ニーモニック対応ニーモニック対応ニーモニック対応ニーモニック 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック 対応ニーモニック対応ニーモニック対応ニーモニック対応ニーモニック
E
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-20 Freescale Semiconductor
E.9 推奨される簡略ニーモニック
簡略ニ|モニック
第E章
mtctr rS mtspr 9,rS
E.9 推奨される簡略ニーモニック推奨される簡略ニーモニック推奨される簡略ニーモニック推奨される簡略ニーモニック
E.9.1 ノー・オペレーション(ノー・オペレーション(ノー・オペレーション(ノー・オペレーション(nop))))
nop ori0,0,0
E.9.2 ロード・イミディエイト(ロード・イミディエイト(ロード・イミディエイト(ロード・イミディエイト(li))))
addi addis
1. 16 rD
li rD,value addi rD,0,value
2. 16 16
rD
lis rD,value addis rD,0,value
E.9.3 ロード・アドレス(ロード・アドレス(ロード・アドレス(ロード・アドレス(la))))
addi
la rD,d(rA addi rD,rA,d
la
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor E-21
E.9 推奨される簡略ニーモニック
E
E
E
E
V rV dV
V
rV V
rD
la rD,V addi rD,rV,dV
.9.4 ムーブ・レジスタ(ムーブ・レジスタ(ムーブ・レジスタ(ムーブ・レジスタ(mr))))
rS rA
. Rc
mr rA,rS or rA,rS,rS
.9.5 コンプリメント・レジスタ(コンプリメント・レジスタ(コンプリメント・レジスタ(コンプリメント・レジスタ(not))))
rS rA
. Rc
not rA,rS nor rA,rS,rS
.9.6 ムーブ・コンディション・レジスタ(ムーブ・コンディション・レジスタ(ムーブ・コンディション・レジスタ(ムーブ・コンディション・レジスタ(mtcr))))
mfcr GPR CR
mtcr rS mtcrf 0xFF,rS
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
-22 Freescale Semiconductor
用語/略語集
用語/略語集用語/略語集用語/略語集用語/略語集
IEEE Std. 754-1985, IEEE Standard for Binary Floating-Point
Arithmetic copyright(C) 1985 Institute of Electrical and Electronics Engineers,
Inc. IEEE
21
L2 2
BAT
IEEE 754. IEEE 2
L22
MESI
PowerPCMESI
NaNNot a number
NaN SNaNNaN QNaN 2
No-op
OEAPowerPC
PowerPC OEA
B
I
L
M
N
O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 用語集 -1
用
PowerPC UISAVEA
rAGPR
rBGPR
rDGPR
RISC
rSGPR
TLB
UISA
UISA
VEA
PowerPC VEAUISA OEA
R
T
U
V
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
語集 -2 Freescale Semiconductor
用語/略語集
PowerPC lwarx stwcx.
2
GPR
2 GPR
PowerPC
PowerPC
PowerPC
PowerPC
PowerPCPowerPC
2 3232
PowerPC
21 30 2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 用語集 -3
用
PowerPC1 6
1 1
2 2
BAT Ks Kp
Data Cache BlockFlush dcbf
PowerPC
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
語集 -4 Freescale Semiconductor
用語/略語集
PowerPC
0
31 Rc
CR
0
NaNNaN
NaN
16 16
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 用語集 -5
用
isync rfi
LSB
lsb
MSB
msb
PTE 21
NaN
NaN NaN
Exponent2
2
EA32
64 MMUI/O
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
語集 -6 Freescale Semiconductor
用語/略語集
2 2
1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 用語集 -7
用
256M PowerPC
3216
64
1
1
16
0 5 2
POWERPowerPC
T
1
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
語集 -8 Freescale Semiconductor
用語/略語集
2
GPR32
GPRGPR
0
n0 1
2 3 0
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 用語集 -9
用
FPR32
FPRFPR FPR 64
PowerPC
32 6464
32
128K 256MBAT
OEA 4K 4K
PTE
MMU
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
語集 -10 Freescale Semiconductor
用語/略語集
PowerPCPTE[V]=1
PTE8 PTE PTEG
PTEGSDR1
PTE4K
PTE 328 64 16
MESI
PTE 21
BATMSR IR
DR 1
PowerPC
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 用語集 -11
用
PowerPC
1
PowerPC
MMU
MMU
2
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
語集 -12 Freescale Semiconductor
用語/略語集
0 00 1
1 GPR
MMU MMUMSR IR DR
lwarx GPR
n3 2
1 0 3
MSR
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
Freescale Semiconductor 用語集 -13
32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1
用語集 -14 Freescale Semiconductor
32
PowerPC
本書に記載された情報は、システムおよびソフトウェア開発者がフリースケール製品を使用できるよう補助することのみを目的としています。本書は、ここに記載された情報に基づいて集積回路の設計/製造を行う著作権上のライセンスについては、明示的または暗黙を問わず、何ら許諾するものではありません。
当社は、本書に記載した製品について予告なく変更を加える権限を留保します。当社は、その製品が何らかの特定の目的に適合していることを保証または表明するものでなく、またいかなる製品もしくは回路であれ、その応用または使用から生ずる責任を負うものではなく、かつ派生的損害もしくは付随的損害を含む(但しこれらに限定されません)一切の責任について、これを排除します。当社のデータシートおよび/
または仕様に含まれて提出される「標準(Typical)」パラメータは、用途が異なれば変化する場合があり、かつ現実に変化するものであり、実際の性能は時間の経過とともに変動する可能性があります。「標準」パラメータを含むすべての動作パラメータは、利用者側で技術担当者が使用環境に応じて適切な値に設定することが求められます。当社は、自社の特許権または他社の何らかの権利に基づくライセンスの譲渡を行うものではありません。当社の製品は、外科的人体移植を意図したシステムの構成部品として、または、その他、生命維持を意図した用途に、または、当社の製品の不具合が、人的傷害や死亡をもたらし得る状況を発生する可能性がある用途に使用するために、設計、意図または認可されているものではありません。購入者が万一このような意図または認可されていない用途のために当社の製品を購入あるいは使用する場合、購入者は、当該使用に関連した人的傷害や死亡についてのすべての請求につき、(たとえ、当該請求において、当社が部品の設計や製造において過失があったという申立がなされたとしても)それから直接・間接に生ずる全ての請求、費用、損害、および合理的な弁護士費用から当社およびその役員、従業員、子会社、関連会社および代理店を防御、免責し、かつこれらに対し補償を行うものとします。
FreescaleおよびFreescaleのロゴマークは、フリースケール社の商標です。文中に記載されている他社の製品名、サービス名等は、それぞれ各社の商標です。
32ビットPowerPCアーキテクチャ プログラミング環境
2002 9 26 1 1
2005 12 26 2 1
Programming Environments Manual for 32-Bit Implementations of the PowerPC Architecture
(MPCFPE32B REV.3) by Freescale Semiconductor Inc.
153-0064 1-8-1 15
03-5434-1411
Copyright
MPCFPE32BJ REV.1 DEC/2005 ABE 0.5K
© Freescale Semiconductor, Inc. 2005. All rights reserved.
Document Number: MPCFPE32BJRev. 112/2005 (原本 MPCFPE32B Rev. 3)
32ビット PowerPC アーキテクチャプログラミング環境
Freescale SemiconductorReference Manual
MPCFPE32BJRev. 112/2005(原本 MPCFPE32B Rev. 3)
How to Reach Us:
Home Page:www.freescale.com
e-mail:[email protected]
USA/Europe or Locations Not Listed:Freescale SemiconductorTechnical Information Center, CH3701300 N. Alma School RoadChandler, Arizona [email protected]
Europe, Middle East, and Africa:Freescale Halbleiter Deutschland GmbHTechnical Information CenterSchatzbogen 781829 Muenchen, Germany+44 1296 380 456 (English)+46 8 52200080 (English)+49 89 92103 559 (German)+33 1 69 35 48 48 (French)[email protected]
Japan:Freescale Semiconductor Japan Ltd.HeadquartersARCO Tower 15F1-8-1, Shimo-Meguro, Meguro-ku,Tokyo 153-0064, Japan0120 191014+81 3 5437 [email protected]
Asia/Pacific:Freescale Semiconductor Hong Kong Ltd.Technical Information Center2 Dai King StreetTai Po Industrial Estate,Tai Po, N.T., Hong Kong+800 2666 [email protected]
For Literature Requests Only:Freescale SemiconductorLiterature Distribution CenterP.O. Box 5405Denver, Colorado 802171-800-441-2447303-675-2140Fax: 303-675-2150LDCForFreescaleSemiconductor
@hibbertgroup.com
本書に記載された情報は、システムおよびソフトウェア開発者がフリースケール製品を使用できるよう補助することのみを目的としています。本書は、ここに記載された情報に基づいて集積回路の設計/製造を行う著作権上のライセンスについては、明示的または暗黙を問わず、何ら許諾するものではありません。
当社は、本書に記載した製品について予告なく変更を加える権限を留保します。当社は、その製品が何らかの特定の目的に適合していることを保証または表明するものでなく、またいかなる製品もしくは回路であれ、その応用または使用から生ずる責任を負うものではなく、かつ派生的損害もしくは付随的損害を含む(但しこれらに限定されません)一切の責任について、これを排除します。当社のデータシートおよび/または仕様に含まれて提出される「標準(Typical)」パラメータは、用途が異なれば変化する場合があり、かつ現実に変化するものであり、実際の性能は時間の経過とともに変動する可能性があります。「標準」パラメータを含むすべての動作パラメータは、利用者側で技術担当者が使用環境に応じて適切な値に設定することが求められます。当社は、自社の特許権または他社の何らかの権利に基づくライセンスの譲渡を行うものではありません。当社の製品は、外科的人体移植を意図したシステムの構成部品として、または、その他、生命維持を意図した用途に、または、当社の製品の不具合が、人的傷害や死亡をもたらし得る状況を発生する可能性がある用途に使用するために、設計、意図または認可されているものではありません。購入者が万一このような意図または認可されていない用途のために当社の製品を購入あるいは使用する場合、購入者は、当該使用に関連した人的傷害や死亡についてのすべての請求につき、(たとえ、当該請求において、当社が部品の設計や製造において過失があったという申立がなされたとしても)それから直接・間接に生ずる全ての請求、費用、損害、および合理的な弁護士費用から当社およびその役員、従業員、子会社、関連会社および代理店を防御、免責し、かつこれらに対し補償を行うものとします。
FreescaleおよびFreescaleのロゴマークは、フリースケール社の商標です。文中に記載されている他社の製品名、サービス名等は、それぞれ各社の商標です。
32ビットPowerPC アーキテクチャ
プログラミング環境
Rev. 1
12/2005
32ビットPOWER PC B5-30mm.qxd 05.12.9 5:22 PM ページ1