|
| void | _emit_context_init (emit_context_t *ctx, emit_architecture_t arch, emit_format_t format) |
| |
| void | _emit_context_free (emit_context_t *ctx) |
| |
| static emit_section_t * | _create_section (const char *name, emit_section_flags_t flags) |
| |
| emit_section_t * | _emit_lookup_section (emit_context_t *ctx, const char *name) |
| |
| emit_symbol_t * | _emit_lookup_symbol (emit_context_t *ctx, const char *name) |
| |
| INFIX_API infix_status | emit_create (emit_context_t **out_ctx, emit_architecture_t arch, emit_format_t format) |
| |
| INFIX_API void | emit_destroy (emit_context_t *ctx) |
| |
| INFIX_API infix_status | emit_add_section (emit_context_t *ctx, const char *name, emit_section_flags_t flags) |
| |
| INFIX_API infix_status | emit_begin_section (emit_context_t *ctx, const char *section_name) |
| |
| INFIX_API infix_status | emit_define_symbol (emit_context_t *ctx, const char *name, emit_visibility_t visibility, bool is_function) |
| |
| INFIX_API infix_status | emit_emit_label (emit_context_t *ctx, const char *name) |
| |
| INFIX_API infix_status | emit_create_label (emit_context_t *ctx, const char *name) |
| |
| static infix_status | _ensure_section_capacity (emit_context_t *ctx, uint64_t needed) |
| |
| static infix_status | emit_emit_bytes (emit_context_t *ctx, const void *data, size_t size) |
| |
| INFIX_API INFIX_NODISCARD infix_status | emit_emit_u8 (emit_context_t *ctx, uint8_t byte) |
| |
| INFIX_API infix_status | emit_emit_u16 (emit_context_t *ctx, uint16_t value) |
| |
| INFIX_API INFIX_NODISCARD infix_status | emit_emit_u32 (emit_context_t *ctx, uint32_t value) |
| |
| INFIX_API infix_status | emit_emit_u64 (emit_context_t *ctx, uint64_t value) |
| |
| INFIX_API infix_status | emit_align (emit_context_t *ctx, uint64_t alignment) |
| |
| INFIX_API INFIX_NODISCARD infix_status | emit_add_relocation (emit_context_t *ctx, const char *name, uint64_t offset, uint8_t size, uint8_t inst_size) |
| |
| static void | write_raw_binary (emit_context_t *ctx, uint8_t *buffer, c23_maybe_unused uint64_t total_size) |
| |
| infix_status | _emit_resolve_relocations (emit_context_t *ctx) |
| |
| void | _emit_arch_nop (emit_context_t *ctx, uint8_t size) |
| |
| infix_status | _emit_arch_align (emit_context_t *ctx, uint64_t alignment) |
| |
| INFIX_API infix_status | emit_get_binary (const emit_context_t *ctx, const uint8_t **out_data, size_t *out_size) |
| |
| INFIX_API infix_status | emit_get_offset (const emit_context_t *ctx, uint64_t *out_offset) |
| |
Implementation of the emit API for generating machine code.
Copyright (c) 2025 Sanko Robinson
This source code is dual-licensed under the Artistic License 2.0 or the MIT License. You may choose to use the code under the terms of either license.
SPDX-License-Identifier: (Artistic-2.0 OR MIT)