Incomplete second pass encoding
This commit is contained in:
@ -7,6 +7,15 @@ typedef struct encoder {
|
||||
symbol_table_t *symbols;
|
||||
} encoder_t;
|
||||
|
||||
constexpr uint8_t modrm_mod_memory = 0b00'000'000;
|
||||
constexpr uint8_t modrm_mod_memory_displacement8 = 0b01'000'000;
|
||||
constexpr uint8_t modrm_mod_memory_displacement32 = 0b10'000'000;
|
||||
constexpr uint8_t modrm_mod_register = 0b11'000'000;
|
||||
|
||||
constexpr uint8_t modrm_reg_mask = 0b00'111'000;
|
||||
constexpr uint8_t modrm_rm_mask = 0b00'000'111;
|
||||
constexpr uint8_t modrm_mod_mask = 0b11'000'000;
|
||||
|
||||
error_t *encoder_alloc(encoder_t **encoder);
|
||||
error_t *encoder_encode(encoder_t *encoder, ast_node_t *ast);
|
||||
void encoder_free(encoder_t *encoder);
|
||||
@ -16,5 +25,8 @@ extern error_t *const err_encoder_number_overflow;
|
||||
extern error_t *const err_encoder_invalid_number_format;
|
||||
extern error_t *const err_encoder_invalid_size_suffix;
|
||||
extern error_t *const err_encoder_unknown_symbol_reference;
|
||||
extern error_t *const err_encoder_no_encoding_found;
|
||||
extern error_t *const err_encoder_not_implemented;
|
||||
extern error_t *const err_encoder_unexpected_length;
|
||||
|
||||
#endif // INCLUDE_ENCODER_ENCODER_H_
|
||||
|
Reference in New Issue
Block a user