| IDA SDK

Macros
abi options

## Detailed Description

Used by idainfo::abibits.

## 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...

## 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