32ビットpowerpcアーキテクチャ プログラミング環境...32ビット...

726
32ビット PowerPC アーキテクチャ プログラミング環境 Freescale Semiconductor Reference Manual MPCFPE32BJ Rev. 1 12/2005 (原本 MPCFPE32B Rev. 3)

Upload: others

Post on 05-Aug-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

© 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

Page 2: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

第1章

第2章

32 ビット PowerPCアーキテクチャ

プログラミング環境

第3章

第4章

第5章

第6章

第7章

第8章

付録A

付録B

付録C

付録D

付録E

概要

レジスタ・セット

オペランド規約

アドレッシング・モードと命令セット・サマリ

キャッシュ・モデルおよびメモリ・コヒーレンシ

例外

メモリ管理

命令セット

命令セット一覧

多倍精度シフト

浮動小数点モデル

同期化プログラミングの例

簡略ニーモニック

Page 3: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

本書について本書について本書について本書について

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-

Page 4: 32ビットPowerPCアーキテクチャ プログラミング環境...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

Page 5: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

本書の構成本書の構成本書の構成本書の構成

• 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-

Page 6: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

• 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

Page 7: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

関連文書関連文書関連文書関連文書

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-

Page 8: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 9: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

頭字語と省略形頭字語と省略形頭字語と省略形頭字語と省略形

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-

Page 10: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 頭字語と省略語(続き)頭字語と省略語(続き)頭字語と省略語(続き)頭字語と省略語(続き)

用語用語用語用語 意味意味意味意味

Page 11: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

用語の対応用語の対応用語の対応用語の対応

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-

Page 12: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 13: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

第1章

概要

第第第第 1 章章章章 概要概要概要概要

PowerPC 32 64

32 64

64

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 1-1

Page 14: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

1

UISA

VEA OEA 3

http://www.freescale.com

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-2 Freescale Semiconductor

Page 15: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 16: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

1.1 PowerPC アーキテクチャの概要

1

• 2 3

4 1

• IEEE-754

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-4 Freescale Semiconductor

Page 17: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 18: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 19: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 20: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

1.2 アーキテクチャ・モデル

1.2 アーキテクチャ・モデルアーキテクチャ・モデルアーキテクチャ・モデルアーキテクチャ・モデル

1.2.1 レジスタとプログラミング・モデルレジスタとプログラミング・モデルレジスタとプログラミング・モデルレジスタとプログラミング・モデル

3

2

PowerPC

1-1

UV

O

1

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-8 Freescale Semiconductor

Page 21: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 22: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 23: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 24: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 25: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 26: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 27: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 28: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 29: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

1.2 アーキテクチャ・モデル

第1章

概要

2

32

TLB

TLB

BAT

BAT

SPR

BAT

☞ 7

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 1-17

Page 30: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

1.2 アーキテクチャ・モデル

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

1-18 Freescale Semiconductor

Page 31: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 32: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 33: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 34: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 35: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 36: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 37: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 38: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 39: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 40: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 41: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 42: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 43: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 44: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 45: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 46: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 47: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 48: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 49: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 50: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

2.2 VEA のレジスタ・セット─タイム・ベース

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

2-20 Freescale Semiconductor

3

Page 51: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 52: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 53: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 54: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 55: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 56: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 57: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 58: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 59: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 60: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 61: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 62: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 63: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 64: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 65: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 66: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 67: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 68: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 69: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 70: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 71: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 72: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 73: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 74: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 75: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 76: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 77: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 78: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 の無効化を同期させるために他の条件が必要

です。

Page 79: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

第3章

オペランド規約

第第第第 3 章章章章 オペランド規約オペランド規約オペランド規約オペランド規約UISA

VEA

2

IEEE

☞ C

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 3-1

Page 80: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 81: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 82: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 83: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 84: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 85: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 86: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 87: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 88: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 89: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 90: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 91: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 92: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 93: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

3.2 オペランドの配置と処理速度─ VEA

第3章

オペランド規約

3.2.2 命令のリスタート命令のリスタート命令のリスタート命令のリスタート

BAT

BAT

BAT

BAT

☞ 7.5

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 3-15

Page 94: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 95: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 96: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 97: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 98: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 99: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 100: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 101: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 102: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 103: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 104: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 105: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 106: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 107: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 108: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 109: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 110: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 111: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 112: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 113: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 114: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 115: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 116: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 117: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 118: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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]

Page 119: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 120: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 121: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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]による)�

Page 122: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 123: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 124: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 125: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

3.3 浮動小数点実行モデル─ UISA

第3章

オペランド規約

FPSCR

• FPSCR FPSCR[XX]=1

• FPR

• FPSCR[FPRF]

FPSCR[XE]

FPSCR[FEX]

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 3-47

Page 126: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

3.3 浮動小数点実行モデル─ UISA

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

3-48 Freescale Semiconductor

Page 127: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

第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

Page 128: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 129: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 130: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 131: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 132: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 133: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 134: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 135: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 136: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 137: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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]

Page 138: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 139: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 140: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 141: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)整数演算命令(続き)

名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション

Page 142: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 143: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 144: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 145: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 整数論理命令(続き)整数論理命令(続き)整数論理命令(続き)整数論理命令(続き)

名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション

Page 146: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 147: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 148: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 149: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 150: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 151: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 152: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 浮動小数点演算命令(続き)浮動小数点演算命令(続き)浮動小数点演算命令(続き)浮動小数点演算命令(続き)

名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション

Page 153: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 154: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 155: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 156: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 157: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 158: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 159: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 160: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 161: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 162: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 163: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 整数ロード命令(続き)整数ロード命令(続き)整数ロード命令(続き)整数ロード命令(続き)

名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション

Page 164: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 165: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 166: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 167: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 168: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 169: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 170: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 171: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 172: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 173: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 174: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 175: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 176: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 177: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 178: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 179: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 180: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 181: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 182: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 183: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 184: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 185: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 186: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 187: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 188: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 189: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 190: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 191: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 192: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 193: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 194: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 195: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 196: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)ユーザ・レベルのキャッシュ命令(続き)

名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション

Page 197: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 198: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 外部制御命令(続き)外部制御命令(続き)外部制御命令(続き)外部制御命令(続き)

名前名前名前名前 ニーモニックニーモニックニーモニックニーモニック 構文構文構文構文 オペレーションオペレーションオペレーションオペレーション

Page 199: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 200: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 201: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 202: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 203: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 204: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 205: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 206: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

4.4 OEA の命令

4

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-80 Freescale Semiconductor

Page 207: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

第5章

キャッシュ・モデルおよびメモリ・コヒ

レンシ

第第第第 5 章章章章 キャッシュ・モデルおよびメモリ・コキャッシュ・モデルおよびメモリ・コキャッシュ・モデルおよびメモリ・コキャッシュ・モデルおよびメモリ・コヒーレンシヒーレンシヒーレンシヒーレンシ

VEA

OEA

UV

O

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 5-1

Page 208: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

5.1 概要

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

5-2 Freescale Semiconductor

5.1 概要概要概要概要

PowerPC

VEA

BAT

Page 209: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 210: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 211: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 212: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 213: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 214: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

5.2 仮想環境

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

5-8 Freescale Semiconductor

5.2.4.1.1 ライトスルー指定のページライトスルー指定のページライトスルー指定のページライトスルー指定のページ

dcbst

dcbf

5.2.4.1.2 キャッシュ禁止指定のページキャッシュ禁止指定のページキャッシュ禁止指定のページキャッシュ禁止指定のページ

Page 215: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 216: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 217: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 218: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 219: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 220: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 221: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 222: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 223: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 224: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 225: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 226: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 227: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 228: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 229: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

5.2 仮想環境

第5章

キャッシュ・モデルおよびメモリ・コヒ

レンシ

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 5-23

bne- lwz isync

lwarx isync

Page 230: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 231: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 232: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 233: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 234: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 235: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 236: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 237: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 238: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 239: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 240: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 241: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

5.3 動作環境

第5章

キャッシュ・モデルおよびメモリ・コヒ

レンシ

dcbi

2

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 5-35

Page 242: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

5.3 動作環境

5

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-36 Freescale Semiconductor

Page 243: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

第6章

例外

第第第第 6 章章章章 例外例外例外例外PowerPC OEA PowerPC

UISA

OEA

PowerPC

1

DSISR FPSCR

PowerPC

1

O

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 6-1

Page 244: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

6-2 Freescale Semiconductor

SRR0 SRR1

Page 245: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 246: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 247: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 248: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 249: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 同期/プリサイス例外同期/プリサイス例外同期/プリサイス例外同期/プリサイス例外

Page 250: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 251: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 252: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 253: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 254: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

6.1 例外クラス

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

6-12 Freescale Semiconductor

DSI

rA

6.1.5 例外の優先順位例外の優先順位例外の優先順位例外の優先順位

1.

2.

3.

4.

Page 255: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

6.1 例外クラス

第6章

例外

6-4

表表表表 6-4 例外の優先順位例外の優先順位例外の優先順位例外の優先順位

例外クラス例外クラス例外クラス例外クラス 優先順位優先順位優先順位優先順位 例 外例 外例 外例 外

1

2

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 6-13

Page 256: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 257: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

6.1 例外クラス

第6章

例外

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 6-15

1

5

MSR[EE] EE

6

MSR[EE] EE

表表表表 6-4 例外の優先順位(続き)例外の優先順位(続き)例外の優先順位(続き)例外の優先順位(続き)

例外クラス例外クラス例外クラス例外クラス 優先順位優先順位優先順位優先順位 例 外例 外例 外例 外

Page 258: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 259: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 260: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 261: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 262: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 263: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 264: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 265: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 266: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 267: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 268: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 269: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 270: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 例外─レジスタ設定(続き)例外─レジスタ設定(続き)例外─レジスタ設定(続き)例外─レジスタ設定(続き)

レジスタレジスタレジスタレジスタ 説明説明説明説明

Page 271: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 272: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 273: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 274: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 275: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 アライメント例外─レジスタ設定(続き)アライメント例外─レジスタ設定(続き)アライメント例外─レジスタ設定(続き)アライメント例外─レジスタ設定(続き)

レジスタレジスタレジスタレジスタ 説明説明説明説明

Page 276: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 277: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 278: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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] 命令命令命令命令

Page 279: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 280: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 281: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 282: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 283: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 284: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 285: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 286: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 287: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

第7章

メモリ管理

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 7-1

第第第第 7 章章章章 メモリ管理メモリ管理メモリ管理メモリ管理

Page 288: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 289: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 290: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

7.3 MMU の概要

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

7-4 Freescale Semiconductor

7.3 MMU の概要の概要の概要の概要

MMU

32

52

32

MMU

BAT SDR1

MMU

Page 291: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 292: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 293: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 294: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 295: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

7.3 MMU の概要

第7章

メモリ管理

32

TLB

TLB MMU

17

TLB BAT BAT

BAT BAT

BAT

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 7-9

Page 296: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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)�

リアル・アドレッシング・モード 実効アドレス=物理アドレス��

  �

物理アドレス� 物理アドレス�

Page 297: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 298: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

7.3 MMU の概要

☞ 5.2.5.2

MMU

MMU

I/O

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

7-12 Freescale Semiconductor

Page 299: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 300: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 301: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

7.3 MMU の概要

第7章

メモリ管理

7.3.6.2 ページおよび直接ストアのアドレス変換の選択ページおよび直接ストアのアドレス変換の選択ページおよび直接ストアのアドレス変換の選択ページおよび直接ストアのアドレス変換の選択

BAT

T

7-4

N

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 7-15

Page 302: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 303: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 304: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 305: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 306: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 307: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 308: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 309: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 310: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

7.4 リアル・アドレッシング・モード

☞ 2

☞ 6.4.2

0x00200

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

7-24 Freescale Semiconductor

Page 311: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 312: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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]データ・アクセス�

Page 313: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 314: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 アレイ・ヒット�

Page 315: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 316: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 317: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 318: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 319: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 320: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 321: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 322: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 323: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 324: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 325: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 326: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 327: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 328: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 329: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 330: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 331: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 332: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 333: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 334: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 335: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 336: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 337: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 338: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 339: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 340: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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参照)

Page 341: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 342: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

ページ・テーブル�

Page 343: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 344: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 345: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 346: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 347: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 348: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 349: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 350: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 351: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 352: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 353: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 354: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 355: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 356: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 357: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 358: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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参照)

ページ・�フォルト�

注:�

インプリメンテーション依存�

Page 359: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 360: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 361: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 362: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 363: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 364: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 365: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 366: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

7.8 直接ストア・セグメントのアドレス変換

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

7-80 Freescale Semiconductor

Page 367: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

第8章

命令セット

第第第第 8 章章章章 命令セット命令セット命令セット命令セット

UISA VEA OEA

32

☞ 4

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 8-1

Page 368: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 369: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 370: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 371: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 372: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 疑似コードの表記と規約(続き)疑似コードの表記と規約(続き)疑似コードの表記と規約(続き)疑似コードの表記と規約(続き)

表記/規約表記/規約表記/規約表記/規約 意 味意 味意 味意 味

Page 373: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 374: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 375: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 376: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 377: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 378: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 379: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 380: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

aA

ddic addic

dd 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

Page 381: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 382: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

aA

ddis addis

dd 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

Page 383: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 384: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 385: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 386: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 387: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 388: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 389: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 390: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 391: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 392: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 393: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 394: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 395: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 396: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 397: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 398: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 399: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 400: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 401: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 402: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 403: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 404: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

cC

rand crand

ondition 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

Page 405: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 406: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

cC

reqv creqv

ondition 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

Page 407: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 408: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

cC

rnor crnor

ondition 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

Page 409: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 410: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 411: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 412: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 413: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

第8章

命令セット

dcba eieio

DSI

dcba

OEA

dcba dcba

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

VEA √ X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 8-47

Page 414: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 415: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

第8章

命令セット

dcbf EA

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

VEA X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 8-49

Page 416: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 417: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

第8章

命令セット

EA

dcbf

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

OEA √ X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 8-51

Page 418: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 419: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 420: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 421: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 422: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

☞ 6

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

VEA X

8

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-56 Freescale Semiconductor

Page 423: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 424: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 425: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 426: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

• XER

SO OV OE=1

XER 32

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA XO

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-60 Freescale Semiconductor

Page 427: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 428: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

eieio

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

VEA √ X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-62 Freescale Semiconductor

Page 429: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 430: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式��

VEA √ X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-64 Freescale Semiconductor

Page 431: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 432: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 433: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 434: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

eE

xtsbx extsbx

xtend 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

Page 435: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 436: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

fF

absx fabsxloating Absolute Value

fabs 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

Page 437: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 438: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

fF

addsx faddsxloating Add Single

fadds 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

Page 439: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 440: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

FPCC FX VXSNAN VXVC

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-74 Freescale Semiconductor

Page 441: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 442: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 443: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 444: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

f

divx fdivxFloating Divide

fdiv 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

Page 445: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 446: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 447: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 448: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

fF

mrx fmrxloating Move Register

fmr 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

Page 449: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 450: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

fF

msubsx fmsubsxloating Multiply-Subtract Single

fmsubs 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

Page 451: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 452: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

fF

mulsx fmulsxloating Multiply Single

fmuls 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

Page 453: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 454: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

fF

negx fnegxloating Negate

fneg 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

Page 455: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 456: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA A

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-90 Freescale Semiconductor

Page 457: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 458: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 459: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

第8章

命令セット

FPRF FR FI FX OX UX XX VXSNAN VXISI VXIMZ

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA A

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 8-93

Page 460: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

fF

nmsubsx fnmsubsxloating Negative Multiply-Subtract Single

fnmsubs 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

Page 461: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 462: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 463: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 464: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

fF

rsqrtex frsqrtexloating Reciprocal Square Root Estimate

frsqrte 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

Page 465: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 466: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 467: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 468: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

fF

sqrtsx fsqrtsxloating Square Root Single

fsqrts 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

Page 469: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 470: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

fF

subsx fsubsxloating Subtract Single

fsubs 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

Page 471: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 472: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

EA

rA|0+rB EA

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

VEA X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-106 Freescale Semiconductor

Page 473: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 474: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

lL

bz lbzoad Byte and Zero

lbz 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

Page 475: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 476: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

lL

bzux lbzuxoad Byte and Zero with Update Indexed

lbzux 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

Page 477: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 478: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

lL

fd lfdoad Floating-Point Double

lfd 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

Page 479: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 480: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

lL

fdux lfduxoad Floating-Point Double with Update Indexed

lfdux 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

Page 481: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 482: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 483: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 484: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 485: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 486: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

lL

ha lhaoad Half Word Algebraic

lha 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

Page 487: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 488: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

lL

haux lhauxoad Half Word Algebraic with Update Indexed

lhaux 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

Page 489: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 490: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

lL

hbrx lhbrxoad Half Word Byte-Reverse Indexed

lhbrx 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

Page 491: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 492: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

lL

hzu lhzuoad Half Word and Zero with Update

lhzu 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

Page 493: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 494: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 495: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 496: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 497: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

第8章

命令セット

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 8-131

Page 498: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 499: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

第8章

命令セット

☞ 6.4.3 DSI 0x00300

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 8-133

Page 500: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 501: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

第8章

命令セット

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 8-135

Page 502: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

lL

wbrx lwbrxoad Word Byte-Reverse Indexed

lwbrx 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

Page 503: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 504: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

lL

wzu lwzuoad Word and Zero with Update

lwzu 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

Page 505: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 506: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

lL

wzx lwzxoad Word and Zero Indexed

lwzx 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

Page 507: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 508: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 509: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 510: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 511: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 512: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 513: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 514: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 515: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 516: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 517: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 518: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 519: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

第8章

命令セット

mftb rD = mftb rD,268

mftbu rD = mftb rD,269

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

VEA XFX

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 8-153

Page 520: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 521: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 522: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 523: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 524: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 525: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 526: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 527: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 528: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 529: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 530: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 531: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 532: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 533: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 534: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 535: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 536: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 537: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 538: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 539: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 540: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 541: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 542: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 543: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 544: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

rR

lwimix rlwimixotate Left Word Immediate then Mask Insert

rlwimi 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

Page 545: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 546: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 547: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 548: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

8-182 Freescale Semiconductor

rotlw rA,rS,rB = rlwnm rA,rS,rB,0,31

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA M

Page 549: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 550: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

• SRR0

• SRR1

• MSR

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA/OEA SC

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-184 Freescale Semiconductor

Page 551: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 552: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

sS

rawx srawx

hift 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

Page 553: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 554: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 555: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 556: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

sS

tbu

tore 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

Page 557: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 558: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

sS

tbx stbx

tore 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

Page 559: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 560: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

sS

tfdu stfdu

tore 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

Page 561: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 562: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

sS

tfdx stfdx

tore 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

Page 563: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 564: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 565: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 566: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 567: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 568: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 569: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 570: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

sS

thu sthu

tore 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

Page 571: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 572: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 573: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 574: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 575: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

第8章

命令セット

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 8-209

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA X

Page 576: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 577: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

第8章

命令セット

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 8-211

Page 578: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 579: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 580: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 581: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 582: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

sS

twu stwu

tore 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

Page 583: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 584: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

sS

twx stwx

tore 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

Page 585: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 586: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

sS

ubfcx subfcx

ubtract 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

Page 587: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 588: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 589: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 590: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 591: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 592: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

アーキテクチャ・レベル� スーパバイザ・レベル�オプション� 形式�

UISA X

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-226 Freescale Semiconductor

Page 593: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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√

Page 594: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 595: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 596: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

8.2 命令セット

8

tT

w twrap Word

tw 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

Page 597: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 598: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 599: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 600: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 601: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 602: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 603: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 604: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 605: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 606: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 607: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 608: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 609: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 610: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 611: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 612: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 613: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 614: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 615: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 616: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 617: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 618: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 619: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 620: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 621: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 622: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 623: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 624: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 625: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 626: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 627: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 628: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 629: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 630: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 631: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 632: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 633: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 634: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 635: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 636: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 637: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 638: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 639: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 640: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 641: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 642: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 643: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 644: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 645: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 646: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 647: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 648: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 649: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 650: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 651: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 652: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 653: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 654: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

A.7 命令セットのクィック・リファレンス

A

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

-54 Freescale Semiconductor

Page 655: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 656: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 657: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 658: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

B.2 32 ビット・インプリメンテーションの多倍精度シフト

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

B-4 Freescale Semiconductor

Page 659: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 660: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 661: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 662: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 663: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 664: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 665: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 666: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 667: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 668: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 669: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 670: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 671: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 672: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 673: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 674: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 675: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 676: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 677: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 678: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 679: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 680: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

C.7 浮動小数点ストア命令

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

C-22 Freescale Semiconductor

Page 681: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 682: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 683: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 684: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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.

Page 685: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 686: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 687: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 688: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

D.5 リスト挿入

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

D-8 Freescale Semiconductor

Page 689: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 690: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -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

Page 691: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 692: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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 ワード比較命令の簡略ニーモニック(続き)ワード比較命令の簡略ニーモニック(続き)ワード比較命令の簡略ニーモニック(続き)ワード比較命令の簡略ニーモニック(続き)

オペレーションオペレーションオペレーションオペレーション 簡略ニーモニック簡略ニーモニック簡略ニーモニック簡略ニーモニック 対応ニーモニック対応ニーモニック対応ニーモニック対応ニーモニック

Page 693: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 694: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 695: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 696: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 697: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 698: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 699: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 700: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 701: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 702: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 703: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 704: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 705: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 706: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 707: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 708: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 709: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 710: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

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

Page 711: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

用語/略語集

用語/略語集用語/略語集用語/略語集用語/略語集

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

Page 712: 32ビットPowerPCアーキテクチャ プログラミング環境...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

Page 713: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

用語/略語集

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

Page 714: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

PowerPC1 6

1 1

2 2

BAT Ks Kp

Data Cache BlockFlush dcbf

PowerPC

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

語集 -4 Freescale Semiconductor

Page 715: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

用語/略語集

PowerPC

0

31 Rc

CR

0

NaNNaN

NaN

16 16

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 用語集 -5

Page 716: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

isync rfi

LSB

lsb

MSB

msb

PTE 21

NaN

NaN NaN

Exponent2

2

EA32

64 MMUI/O

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

語集 -6 Freescale Semiconductor

Page 717: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

用語/略語集

2 2

1

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 用語集 -7

Page 718: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

256M PowerPC

3216

64

1

1

16

0 5 2

POWERPowerPC

T

1

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

語集 -8 Freescale Semiconductor

Page 719: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

用語/略語集

2

GPR32

GPRGPR

0

n0 1

2 3 0

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 用語集 -9

Page 720: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

FPR32

FPRFPR FPR 64

PowerPC

32 6464

32

128K 256MBAT

OEA 4K 4K

PTE

MMU

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

語集 -10 Freescale Semiconductor

Page 721: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

用語/略語集

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

Page 722: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

PowerPC

1

PowerPC

MMU

MMU

2

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

語集 -12 Freescale Semiconductor

Page 723: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

用語/略語集

0 00 1

1 GPR

MMU MMUMSR IR DR

lwarx GPR

n3 2

1 0 3

MSR

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

Freescale Semiconductor 用語集 -13

Page 724: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

32 ビットビットビットビット PowerPC アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境アーキテクチャプログラミング環境 Rev.1

用語集 -14 Freescale Semiconductor

32

PowerPC

Page 725: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

本書に記載された情報は、システムおよびソフトウェア開発者がフリースケール製品を使用できるよう補助することのみを目的としています。本書は、ここに記載された情報に基づいて集積回路の設計/製造を行う著作権上のライセンスについては、明示的または暗黙を問わず、何ら許諾するものではありません。

当社は、本書に記載した製品について予告なく変更を加える権限を留保します。当社は、その製品が何らかの特定の目的に適合していることを保証または表明するものでなく、またいかなる製品もしくは回路であれ、その応用または使用から生ずる責任を負うものではなく、かつ派生的損害もしくは付随的損害を含む(但しこれらに限定されません)一切の責任について、これを排除します。当社のデータシートおよび/

または仕様に含まれて提出される「標準(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

Page 726: 32ビットPowerPCアーキテクチャ プログラミング環境...32ビット PowerPCアーキテクチャプログラミング環境 Rev.1 Freescale Semiconductor -1-本書について

© 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

r31989