PLD、PLDW、PLI

データと命令をプリロードする命令です。プロセッサは、アドレスからデータまたは命令のロードが実行されることをメモリシステムに事前に通することができます。

Show/hide構文

PLtype{cond} [Rn {, #offset}]
PLtype{cond} [Rn, +/-Rm {, shift}]
PLtype{cond} label

各項目には以下の意味があります。

type

以下のいずれかになります。

D

データアドレス

DW

書き込むためのデータアドレス

I

命令アドレス

構文で label が指定されている場合は、typeDW にすることはできません。

cond

任意の条件コードを指定します。

Note

cond を指定できるのは、32 ビット Thumb コードで、前に IT 命令を使用した場合のみです。この命令は、ARM では無条件命令なので、cond を使用しないで下さい。

Rn

メモリアドレスのベースとなるレジスタを指定します。

offset

イミディエートオフセットを指定します。オフセットを指定しなかった場合、アドレスは Rn 内の値になります。

Rm

オフセットとして使用される値を保持するレジスタを指定します。

shift

任意に指定できるシフトです。

label

PC 相対式を指定します。

Show/hideオフセットの範囲

このオフセットは、プリロードが発生する前に Rn の値に適用されます。その結果は、プリロード用のメモリアドレスとして使用されます。使用できるオフセットの範囲を以下に示します。

  • ARM 命令:-4095 ~ +4095

  • Rn が PC の場合、32 ビット Thumb 命令は -255 から +4095 です。

  • Rn が PC の場合、32 ビット Thumb 命令は -4095 から +4095 です。

アセンブラは、PC からオフセットを算出します。label が範囲外である場合、アセンブラはエラーを生成します。

Show/hideレジスタオフセットまたはシフトレジスタオフセット

ARM では、Rm の値は Rn の値に対して加算または減算されます。32 ビット Thumb では、Rm の値は Rn の値に加算できますが、減算はできません。この結果は、プリロード用のメモリアドレスとして使用されます。

可能なシフトの範囲を以下に示します。

  • 32 ビット Thumb 命令は LSL #0 から #3 です。

  • ARM 命令:以下のいずれかの範囲

    • LSL #0 ~ #31

    • LSR #1 ~ #32

    • ASR #1 ~ #32

    • ROR #1 ~ #31

    • RRX

Show/hideプリロード用のアドレス境界調整

プリロード命令では、境界調整チェックは実行されません。

Show/hideレジスタの制約条件

Rm に PC は指定できません。Thumb 命令の場合、Rm には SP も指定できません。

構文 PLtype{cond} [Rn, +/-Rm{, #shift}] の Thumb 命令では、Rn は PC であることはできません。

Show/hideアーキテクチャ

ARM PLD は ARMv5TE 以降で使用できます。

32 ビット Thumb PLD は ARMv6T2 以降で使用できます。

PLDW を使用できるのは、マルチプロセス拡張を実装した ARMv7 以降だけです。

PLI を使用できるのは ARMv7 以降だけです。

16 ビットの Thumb PLDPLDW、および PLI 命令はありません。

これらはヒント命令であり、その実装はオプションです。実装されていない場合、NOP として実行されます。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489FJ
Non-ConfidentialID111211