# Specification

IDA Decompilers come in 12 different flavors:

* x86 decompiler (32-bit code)
* x64 decompiler (64-bit code)
* ARM decompiler (32-bit code)
* ARM64 decompiler (64-bit code)
* PowerPC decompiler (32-bit code)
* PowerPC64 decompiler (64-bit code)
* MIPS decompiler (O32 and N32 ABI)
* MIPS64 decompiler (N64 ABI)
* RISC-V decompiler (32-bit code)
* RISC-V 64 decompiler (64-bit code)
* ARC decompiler (32-bit code)
* V850 decompiler (32-bit code)

Currently the decompiler can handle compiler generated code. Manually crafted code may be decompiled too but the results are usually worse than for compiler code.

## Current Constraints

Below are the most important limitations of our decompilers (all processors):

* exception handling is not supported (except msvc x64 c++ exceptions)
* type recovery is not performed
* global program analysis is not performed
* execution timings are not preserved
* memory access patterns are not preserved

Limitations specific to PPC:

* Vector/DFP/VSX/SPE instructions are not supported

Limitations specific to MIPS:

* O32, O64, N32, EABI32, P32(nanoMIPS) are supported
* only 32-bit FPR in O32,EABI32 and 64-bit FPR in N32,O64 are supported

Limitations specific to MIPS64:

* only N64 ABI is supported
* only 64-bit FPR are supported


---

# 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/core/decompiler/specification.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.
