asmjit::FuncFrame Class Reference [¶]
Function frame.
Function frame is used directly by prolog and epilog insertion (PEI) utils. It provides information necessary to insert a proper and ABI conforming prolog and epilog. Function frame calculation is based on CallConv
and other function attributes.
SSE vs AVX vs AVX-512
Function frame provides a way to tell prolog/epilog inserter to use AVX instructions instead of SSE. Use set_avx_enabled()
and set_avx512_enabled()
to enable AVX and/or AVX-512, respectively. Enabling AVX-512 is mostly for Compiler as it would use 32 SIMD registers instead of 16 when enabled.
Note
If your code uses AVX instructions and AVX is not enabled there would be a performance hit in case that some registers had to be saved/restored in function's prolog/epilog, respectively. Thus, it's recommended to always let the function frame know about the use of AVX.
Function Frame Structure
Various properties can contribute to the size and structure of the function frame. The function frame in most cases won't use all of the properties illustrated (for example Spill Zone and Red Zone are never used together).