Decimal Floating Point (Debugging with ROCGDB)

Previous: Debugging C Plus Plus, Up: C [Contents][Index]

#### 15.4.1.8 Decimal Floating Point format

ROCGDB can examine, set and perform computations with numbers in decimal floating point format, which in the C language correspond to the `_Decimal32`, `_Decimal64` and `_Decimal128` types as specified by the extension to support decimal floating-point arithmetic.

There are two encodings in use, depending on the architecture: BID (Binary Integer Decimal) for x86 and x86-64, and DPD (Densely Packed Decimal) for PowerPC and S/390. ROCGDB will use the appropriate encoding for the configured target.

Because of a limitation in `libdecnumber`, the library used by ROCGDB to manipulate decimal floating point numbers, it is not possible to convert (using a cast, for example) integers wider than 32-bit to decimal float.

In addition, in order to imitate ROCGDB’s behaviour with binary floating point computations, error checking in decimal float operations ignores underflow, overflow and divide by zero exceptions.

In the PowerPC architecture, ROCGDB provides a set of pseudo-registers to inspect `_Decimal128` values stored in floating point registers. See PowerPC for more details.