== "D" Extension for Double-Precision Floating-Point, Version 2.2 This chapter describes the standard double-precision floating-point instruction-set extension, which is named "D" and adds double-precision floating-point computational instructions compliant with the IEEE 754-2008 arithmetic standard. The D extension depends on the base single-precision instruction subset F. (((double-precision, floating point))) (((floating point, double precision))) === D Register State The D extension widens the 32 floating-point registers, `f0-f31`, to 64 bits (FLEN=64 in <>. The `f` registers can now hold either 32-bit or 64-bit floating-point values as described below in <>. [NOTE] ==== FLEN can be 32, 64, or 128 depending on which of the F, D, and Q extensions are supported. There can be up to four different floating-point precisions supported, including H, F, D, and Q. ==== (((floating-point, supported precisions))) [[nanboxing]] === NaN Boxing of Narrower Values When multiple floating-point precisions are supported, then valid values of narrower _n_-bit types, _n_