ユーザ用ツール

サイト用ツール


opengl:fpu_vfp

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
opengl:fpu_vfp [2014/04/15 08:45] – [コンパイラオプションとの対応付け] ogaopengl:fpu_vfp [2019/01/03 15:54] (現在) – [ARM VFP の機能ビット詳細] oga
行 65: 行 65:
 | vfpv3-d16      | VFPv3  |  16  |  -    -   | d16 が付いている場合は NEON 無し。double レジスタが半分の 16個しかない。vfpv2 相当。  | | vfpv3-d16      | VFPv3  |  16  |  -    -   | d16 が付いている場合は NEON 無し。double レジスタが半分の 16個しかない。vfpv2 相当。  |
 | vfpv3-fp16     | VFPv3  |  32  |  -    Y   | vfpv3 と同じだが half 型 (16bit float) 変換拡張命令に対応している。  | | vfpv3-fp16     | VFPv3  |  32  |  -    Y   | vfpv3 と同じだが half 型 (16bit float) 変換拡張命令に対応している。  |
 +| vfpv3-d16-fp16 | VFPv3  |  16  |  -    Y   | d16 かつ half 対応  |
 | neon-fp16      | VFPv3  |  32  |  Y    Y   | vfpv3-fp16 と同じで neon 命令の生成も行う。   | | neon-fp16      | VFPv3  |  32  |  Y    Y   | vfpv3-fp16 と同じで neon 命令の生成も行う。   |
-| vfpv3xd        | VFPv3  |      |  -    -     +| vfpv3xd        | VFPv3  |  --  |  -    -   single のみ。倍精度なし。  
-| vfpv3xd-fp16   | VFPv3  |      |  -    Y     |+| vfpv3xd-fp16   | VFPv3  |  --  |  -    Y   single のみ。倍精度なし。half 対応  |
 | vfpv4          | VFPv4  |  32  |  -    Y   | VFPv4 は IEEE754 対応の FMA が追加されている。VFPv4 は標準で half (fp16) も搭載。  | | vfpv4          | VFPv4  |  32  |  -    Y   | VFPv4 は IEEE754 対応の FMA が追加されている。VFPv4 は標準で half (fp16) も搭載。  |
 | vfpv4-d16      | VFPv4  |  16  |  -    Y   | vfpv4 における double が半分のバージョン。NEON 無しのモデル。Cortex-A5 等にあり。  | | vfpv4-d16      | VFPv4  |  16  |  -    Y   | vfpv4 における double が半分のバージョン。NEON 無しのモデル。Cortex-A5 等にあり。  |
 | neon-vfpv4     | VFPv4  |  32  |  Y    Y   | vfpv4 に加えて NEON 命令を用いてコンパイルを行う。d32 対応。  | | neon-vfpv4     | VFPv4  |  32  |  Y    Y   | vfpv4 に加えて NEON 命令を用いてコンパイルを行う。d32 対応。  |
-| fpv4-sp-d16    | VFPv4  |      |  -    Y   | single のみ。Cortex-M4 専用?  |+| fpv4-sp-d16    | VFPv4  |  --  |  -    Y   | single のみ 32個。Cortex-M4 専用?  |
 | fp-armv8       | AA64    32  |  -    Y   | ARMv8A AArch64 (arm64) の FPU を用いる。neon vector 命令を使わない。スカラーのみ  | | fp-armv8       | AA64    32  |  -    Y   | ARMv8A AArch64 (arm64) の FPU を用いる。neon vector 命令を使わない。スカラーのみ  |
 | neon-fp-armv8  | AA64    32  |  Y    Y   | ARMv8A AArch64 (arm64) の FPU を用いる。neon vector 命令を使用する。    | | neon-fp-armv8  | AA64    32  |  Y    Y   | ARMv8A AArch64 (arm64) の FPU を用いる。neon vector 命令を使用する。    |
 +| crypto-neon-fp-armv8  | AA64    32  |  Y    Y   | crypto 命令に対応。    |
  
 例 -mfpu=vfpv3-d16 例 -mfpu=vfpv3-d16
行 85: 行 87:
  
  
-                        ^  MVFR0                             ^^^^^^^^  MVFR1                                ^^^^^^^^ + 
-                        ^      VFP     ^^    ^            ^    ^    ^      NEON             ^^^^ VFP ^  ^ +                         ^  MVFR0                             ^^^^^^^^  MVFR1                                ^^^^^^^^  MVFR2     ^^  AA64PFR0  ^^ 
-                        ^ D32 ^ VSP ^ VDP ^ TE ^ DIV ^ SQR ^ SV ^ RM ^ FZ ^ NaN ^ NLS ^ NI ^ NSP ^ NHP ^ VHP ^ FMA ^ +                         ^      VFP     ^^    ^            ^    ^    ^      NEON             ^^^^ VFP ^     ^ SIMD  FP  ^ VFP ^ SIMD 
-| ARM1176JZF-S | vfpv2      | -   ◎  ◎  ◎ ◎  ◎  ◎ |    |    |            |                 | +                         ^ D32 ^ VSP ^ VDP ^ TE ^ DIV ^ SQR ^ SV ^ RM ^ FZ ^ NaN ^ NLS ^ NI ^ NSP ^ NHP ^ VHP ^ FMA ^ MISC ^ MISC ^  FP ^ ASMD 
-| Cortex-A8   | vfpv3+NEON ◎  ◎  ◎  | -  | ◎  ◎  ◎ ◎ ◎ ◎  ◎  ◎ ◎  | -   | -   | -   +| ARM1176JZF-S | vfpv2             Y      Y  |    |    |            |                 |      |      |          
-| Cortex-A9   | vfpv3-D16   | -   ◎  ◎  | -  | ◎  ◎  ◎ ◎ ◎ ◎  | -   | -  | -   | -   ◎  | -   +| Cortex-A8    | vfpv3+NEON       | -  |     1  1  1      1               |      |          
-| Cortex-A9   | vfpv3+NEON ◎  ◎  ◎  | -  | ◎  ◎  | -  | ◎ ◎ ◎  ◎  ◎ ◎  ◎  ◎  | -   +| Cortex-A9    | vfpv3-D16         | -  |     Y  Y  Y      | -  |              |      |          
-| Cortex-A5   | vfpv4-D16   | -   ◎  ◎  | -  | ◎  ◎  | -  | ◎ ◎ ◎  | -   | -  | -   | -   ◎  ◎  | +| Cortex-A9    | vfpv3+NEON       | -  |     | -  | Y  Y      Y               |      |          
-| Cortex-A5   | vfpv4+NEON ◎  ◎  ◎  | -  | ◎  ◎  | -  | ◎ ◎ ◎  ◎  ◎ ◎  ◎  ◎  ◎  | +| Cortex-A5    | vfpv4-D16         | -  |     | -  | Y  Y      | -  |       |  Y  |      |      |          
-| Cortex-A15  | vfpv4+NEON ◎  ◎  ◎  | -  | ◎  ◎  | -  | ◎ ◎ ◎  ◎  ◎ ◎  ◎  ◎  ◎  |+| Cortex-A5    | vfpv4+NEON       | -  |     | -  | Y  Y      Y          |      |      |          
 +| Cortex-A15   | vfpv4+NEON  |  2  |  2  |  2  | -  |  1  |  1  | -  | 1  | 1  |  1  |  1  | 1  |  1  |  1  |  1  |  1  |      |      |          | 
 +| Cortex-A7    | vfpv4+NEON       | -  |     | -  | 1  1      1                    |          | 
 +| Cortex-A17   | vfpv4+NEON  |  2  |  2  |  2  | -  |  1  |  1  | -  | 1  | 1  |  1  |  1  | 1  |  1  |  1  |  1  |  1  |      |      |          | 
 +| Cortex-A53   | AA64 ASIMD  |  2  |  2  |  2  | -  |  1  |  1  | -  | 1  | 1  |  1  |  1  | 1  |  1  |  1  |  2  |  1  |  3    4    0  |  0   | 
 +| Cortex-A57   | AA64 ASIMD  |  2  |  2  |  2  | -  |  1  |  1  | -  | 1  | 1  |  1  |  1  | 1  |  1  |  1  |  2  |  1  |  3    4    0  |  0   | 
 +| Cortex-A72   | AA64 ASIMD  |  2  |  2  |  2  | -  |  1  |  1  | -  | 1  | 1  |  1  |  1  | 1  |  1  |  1  |  2  |  1  |  3    4    0  |  0   | 
 +| Cortex-A35   | AA64 ASIMD  |  2  |  2  |  2  | -  |  1  |  1  | -  | 1  | 1  |  1  |  1  | 1  |  1  |  1  |  2  |  1  |  3    4    0  |  0   | 
 +| Cortex-A73   | AA64 ASIMD  |  2  |  2  |  2  | -  |  1  |  1  | -  | 1  | 1  |  1  |  1  | 1  |  1  |  1  |  2  |  1  |  3    4   | F/0 | F/0  | 
 +| Cortex-A55   | AA64 ASIMD  |  2  |  2  |  2  | -  |  1  |  1  | -  | 1  | 1  |  1  |  1  | 1  |  1  |  2  |  3  |  1  |  3    4   | F/1 | F/1  | 
 +| Cortex-A75   | AA64 ASIMD  |  2  |  2  |  2  | -  |  1  |  1  | -  | 1  | 1  |  1  |  1  | 1  |  1  |  2  |  3  |  1  |  3    4    1  |  1   | 
 +| Cortex-A76   | AA64 ASIMD  |  2  |  2  |  2  | -  |  1  |  1  | -  | 1  | 1  |  1  |  1  | 1  |  1  |  2  |  3  |  1  |  3    4    1  |  1   | 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +^ MVFR0           ^^ Bit    ^     ^ 
 +| D32  | SIMDReg   | 0- 3   | D16 / D32       | 
 +| VSP  | FPSP      | 4- 7   | VFP Single precision   | 
 +| VDP  | FPDP      | 8-11   | VFP double precision 
 +| TE   | FPTrap    | 12-15  | Trap     | 
 +| DIV  | FPDivide  | 16-19  | VFP hw divide    | 
 +| SQR  | FPSqrt    | 20-23  | VFP hw square root    | 
 +| SV   | FPShVec   | 24-27  | VFP short vector    | 
 +| RM   | FPRound   | 28-31  | VFP all rounding mode supported 
 +^ MVFR1           ^^ Bit    ^     ^ 
 +| FZ   | FPFtZ     | 0- 3   | VFP Full denormal arithmetic    | 
 +| Nan  | FPDNaN    | 4- 7   | VFP Propagation of NaN values    | 
 +| NLS  | SIMDLS    | 8-11   | NEON Load/store instructions    | 
 +| NI   | SIMDInt   | 12-15  | NEON Integier instructions    | 
 +| NSP  | SIMDSP    | 16-19  | NEON single precision operations    | 
 +| NHP  | SIMDHP    | 20-23  | NEON half-precision operations    | 
 +| VHP  | FPHP      | 24-27  | VFP half-precision operations    | 
 +| FMA  | SIMDFMAC  | 28-31  | Fused Multiply Add    | 
 +^ MVFR2           ^^ Bit    ^     ^ 
 +| MISC | SIMDMisc  | 0-3    |   | 
 +| MISC | FPMisc    | 4-7    |   | 
 +^ ID_AA64PFR0      ^^ Bit    ^     ^ 
 +| EL0  | EL0       | 0-3    |   | 
 +| EL1  | EL1       | 4-7    |   | 
 +| EL2  | EL2       | 8-11     | 
 +| EL3  | EL3       | 12-15  |   | 
 +| FP   | FP        | 16-19  | Floating-point, 15=not implemented, 0=implemented, 1=+half    | 
 +| ASMD | AdvSIMD   | 20-23  | Advanced SIMD   15=not implemented, 0=implemented, 1=+half    | 
 +| GIC  | GIC       | 24-27  |   | 
 + 
 + 
 + 
 + 
 + 
  
  
-  * D32  0- 3: D16 / D32 
-  * VSP  4- 7: VFP Single precision 
-  * VDP  8-11: VFP double precision 
-  * TE  12-15: Trap 
-  * DIV 16-19: VFP hw divide 
-  * SQR 20-23: VFP hw square root 
-  * SV  24-27: VFP short vector 
-  * RM  28-31: VFP all rounding mode supported 
-  * FZ   0- 3: VFP Full denormal arithmetic 
-  * Nan  4- 7: VFP Propagation of NaN values 
-  * NLS  8-11: NEON Load/store instructions 
-  * NI  12-15: NEON Integier instructions 
-  * NSP 16-19: NEON single precision operations 
-  * NHP 20-23: NEON half-precision operations 
-  * VHP 24-27: VFP half-precision operations 
-  * FMA 28-31: Fused Multiply Add 
  
 MVFR0/MVFR1 は特権命令からのアクセスのみ。 MVFR0/MVFR1 は特権命令からのアクセスのみ。
行 127: 行 166:
   * A5 VFP NEON http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0450b/CHDEICCE.html   * A5 VFP NEON http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0450b/CHDEICCE.html
   * A15 VFP NEON http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0438c/CDEFCBDC.html   * A15 VFP NEON http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0438c/CDEFCBDC.html
 +  * A7 VFP NEON http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0438c/CDEFCBDC.html
 +  * A17 VRP NEON http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0462f/CHDJHDHB.html
 +  * A53 VFP NEON http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0462f/CHDJHDHB.html
 +  * A72 ASIMD http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0462f/CHDJHDHB.html
 +  * A73 ASIMD http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.100048_0100_06_en/meg1411720673088.html
 +  * A75 ASIMD http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.100403_0301_00_en/lau1442504316638.html
 +  * A76 ASIMD http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.100798_0301_00_en/lau1442502550390.html
 +
 +
 +
  
opengl/fpu_vfp.txt · 最終更新: 2019/01/03 15:54 by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki