Latest available version: IDA and decompilers v8.4.240320sp1 see all releases
Hex-Rays logo State-of-the-art binary code analysis tools
email icon
abi options

Used by idainfo::abibits. More...

Macros

#define ABI_8ALIGN4   0x00000001
 4 byte alignment for 8byte scalars (__int64/double) inside structures?
 
#define ABI_PACK_STKARGS   0x00000002
 do not align stack arguments to stack slots
 
#define ABI_BIGARG_ALIGN   0x00000004
 use natural type alignment for argument if the alignment exceeds native word size. More...
 
#define ABI_STACK_LDBL   0x00000008
 long double arguments are passed on stack
 
#define ABI_STACK_VARARGS   0x00000010
 varargs are always passed on stack (even when there are free registers)
 
#define ABI_HARD_FLOAT   0x00000020
 use the floating-point register set
 
#define ABI_SET_BY_USER   0x00000040
 compiler/abi were set by user flag and require SETCOMP_BY_USER flag to be changed
 
#define ABI_GCC_LAYOUT   0x00000080
 use gcc layout for udts (used for mingw)
 
#define ABI_MAP_STKARGS   0x00000100
 register arguments are mapped to stack area (and consume stack slots)
 
#define ABI_HUGEARG_ALIGN   0x00000200
 use natural type alignment for an argument even if its alignment exceeds double native word size (the default is to use double word max). More...
 

Detailed Description

Used by idainfo::abibits.

Macro Definition Documentation

◆ ABI_BIGARG_ALIGN

#define ABI_BIGARG_ALIGN   0x00000004

use natural type alignment for argument if the alignment exceeds native word size.

(e.g. __int64 argument should be 8byte aligned on some 32bit platforms)

◆ ABI_HUGEARG_ALIGN

#define ABI_HUGEARG_ALIGN   0x00000200

use natural type alignment for an argument even if its alignment exceeds double native word size (the default is to use double word max).

e.g. if this bit is set, __int128 has 16-byte alignment. this bit is not used by ida yet