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 を指定できるのは T32 コードで、前に IT 命令を使用した場合のみですが、これは非推奨です。この命令は、A32 コードでは無条件命令なので、cond を使用しないで下さい。

Rn

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

offset

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

Rm

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

shift

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

label

PC 相対式を指定します。

Show/hideオフセットの範囲

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

  • A32 命令:-4095 ~ +4095

  • T32 命令:-255 ~ +4095(Rn が PC ではない場合)

  • T32 命令:-4095 ~ +4095(Rn が PC である場合)

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

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

A32 コードでは、Rm の値は Rn の値に対して加算または減算されます。T32 コードでは、Rm の値は Rn の値に加算できますが、減算はできません。その結果は、プリロード用のメモリアドレスとして使用されます。

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

  • T32 命令:LSL #0 ~ #3

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

    • LSL #0 ~ #31

    • LSR #1 ~ #32

    • ASR #1 ~ #32

    • ROR #1 ~ #31

    • RRX

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

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

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

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

構文 PLtype{cond} [Rn, +/-Rm{, #shift}] の T32 命令では、Rn に PC を指定できません。

Show/hide可用性

これらの 32 ビット命令は A32 および T32 で使用できます。

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

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

Show/hide関連項目

Copyright © 2014 ARM. All rights reserved.ARM DUI 0802AJ
Non-ConfidentialID061814