# Floating point support

The current release of the x86 decompiler supports floating point instructions. While everything works automatically, the following points are worth noting:

* IDA v5.5 or higher is required for floating point support. Earlier versions do not have the required functionality and the decompiler represents fpu instructions using inline assembler statements.
* The decompiler knows about all floating point types, including: **float, double, long double**, and **\_TBYTE**. We introduced \_TBYTE because sizeof(long double) is often different from sizeof(tbyte). While the size of long double can be configured (it is implicitly set to a reasonable value when the compiler is set), the size of tbyte is always equal to 10 bytes.
* Casts from integers types to floating point types and vice versa are always displayed in the listing, even if the output has the same meaning without them.
* The decompiler performs fpu stack analysis, which is similar to the [simplex method](http://hexblog.com/2006/06/simplex_method_in_ida_pro.html) performed by IDA. If it fails, the decompiler represents fpu instructions using inline assembler statements. In this case the decompiler adds one more prefix column to the disassembly listing, next to the stack pointer values. This column shows the calculated state of the fpu stack and may help to determine where exactly the fpu stack tracing went wrong.
* The decompiler ignores all manipulations with the floating point control word. In practice this means that it may miss an unusual rounding mode. We will address this issue in the future, as soon as we find a robust method to handle it.
* SSE floating point instructions are represented by [intrinsic functions](/9.1/user-guide/decompiler/intrinsics.md). Scalar SSE instructions are however directly mapped to floating point operations in pseudocode.
* Feel free to report all anomalies and problems with floating point support using the [Send database](/9.1/user-guide/decompiler/interactive.md#help-send-database) command. This will help us to improve the decompiler and make it more robust. Thank you!

See also: [Failures and troubleshooting](/9.1/user-guide/decompiler/failures.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hex-rays.com/9.1/user-guide/decompiler/fpu.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
