スカラ演算、ベクタ演算、および混合演算の制御

VFP 算術命令を使用すると、以下を演算の対象にすることができます。

ベクタの長さは、FPSCRLEN ビットを使用して制御します。LEN が 1 の場合、すべての VFP 演算はスカラになります。

LEN が 1 より大きい場合、VFP 演算はスカラ、ベクタ、または混合演算のいずれかになります。VFP 算術演算の動作は、デスティネーションレジスタとペランドレジスタが配置されているレジスタバンクによって異なります。

最初のレジスタバンク(s0 ~ s7 または d0 ~ d3)と 5 番目のレジスタバンク(d16 ~ d19)は、スカラバンクです。それ以外のバンクはすべて、ベクタバンクです。デスティネーションレジスタがいずれかのベクタバンクに配置されている場合、ベクタ演算または混合演算になります。

以下の汎用形式の命令を指定するとします。

    Op  Fd,Fn,Fm
    Op  Fd,Fm

各パラメータには以下の意味があります。

Op

VFP 命令を指定します。

Fd

デスティネーションレジスタを指定します。

Fn

オペランドレジスタを指定します。

Fm

唯一のオペランドレジスタまたは 2 番目のオペランドレジスタを指定します。

演算の動作は以下のようになります。

スカラ演算では、Op は、Fm の値と、Fn が指定されている場合はその値に対する演算を行います。演算結果は Fd に返されます。

ベクタ演算では、Op は、Fm で始まるベクタ内の値と、Fn が指定されている場合はその値で始まるベクタ内の値に対する演算を行います。演算結果は、Fd で始まるベクタに返されます。

オペランドが 1 つの混合演算では、Op は、Fm の単一の値に対して演算を行います。結果の LEN 個のコピーは、Fd で始まるベクタに返されます。

オペランドが 2 つの混合演算では、Op は、Fm の単一の値と、Fn で始まるベクタ内の値に対する演算を行います。演算結果は、Fd で始まるベクタに返されます。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0473FJ
Non-ConfidentialID111311