Go to the documentation of this file.
27 #ifndef FCML_OPTIMIZERS_H_
28 #define FCML_OPTIMIZERS_H_
115 #define FCML_OPTF_ASA_16 0x01
116 #define FCML_OPTF_ASA_32 0x02
117 #define FCML_OPTF_ASA_64 0x03
118 #define FCML_OPTF_OSA_16 0x10
119 #define FCML_OPTF_OSA_32 0x20
120 #define FCML_OPTF_OSA_64 0x30
122 #define FCML_OPTF_ALL_FORMS 0xFF
LIB_EXPORT fcml_ceh_error LIB_CALL fcml_fn_asm_default_optimizer(fcml_st_asm_optimizer_context *context, fcml_st_asm_optimizer_processing_details *ds_flags, fcml_fnp_asm_optimizer_callback callback, fcml_ptr callback_args)
Default optimizer implementation.
Nullable wrapper for mask of size flags.
Definition: fcml_common.h:524
fcml_ceh_error(LIB_CALL * fcml_fnp_asm_optimizer)(fcml_st_asm_optimizer_context *context, fcml_st_asm_optimizer_processing_details *ds_flags, fcml_fnp_asm_optimizer_callback callback, fcml_ptr args)
Function pointer declaration for optimizers.
Definition: fcml_optimizers.h:109
fcml_usize eosa
Effective operand size attribute chosen for currently processed instruction form.
Definition: fcml_optimizers.h:85
Optimizer context used as a connector with the environment.
Definition: fcml_optimizers.h:41
struct fcml_st_asm_optimizer_context fcml_st_asm_optimizer_context
Optimizer context used as a connector with the environment.
fcml_usize asa
Default address size attribute not modified by prefixes yet.
Definition: fcml_optimizers.h:51
fcml_uint16_t fcml_ceh_error
All error codes should be held in variables of this type.
Definition: fcml_errors.h:156
fcml_usize vector_length
Vector length of AVX instructions.
Definition: fcml_optimizers.h:87
Processing details for optimizers.
Definition: fcml_optimizers.h:59
fcml_st_nullable_size_flags allowed_eosa
Allowed values of the operand size attribute calculated by the assembler engine.
Definition: fcml_optimizers.h:64
fcml_en_operating_mode
Supported processor operating modes.
Definition: fcml_common.h:73
struct fcml_st_asm_optimizer_processing_details fcml_st_asm_optimizer_processing_details
Processing details for optimizers.
fcml_uint16_t optimizer_flags
Optimizer flags passed through the assembler context.
Definition: fcml_optimizers.h:45
fcml_ceh_error(* fcml_fnp_asm_optimizer_callback)(fcml_ptr args)
Callback used to invoke encoding process for given processing details configuration.
Definition: fcml_optimizers.h:98
fcml_st_nullable_size_flags allowed_easa
Allowed values of the address size attribute calculated by the assembler engine.
Definition: fcml_optimizers.h:69
fcml_usize osa
Default operand size attribute not modified by prefixes yet.
Definition: fcml_optimizers.h:55
fcml_usize easa
Effective address size attribute chosen for currently processed instruction form.
Definition: fcml_optimizers.h:77
fcml_en_operating_mode op_mode
Processor operating mode 16/32/64-bit.
Definition: fcml_optimizers.h:47
fcml_bool break_optimization
Set to true in order to break optimization process immediately.
Definition: fcml_optimizers.h:89