= {
.target = {
.arch = BFC_ARCH_X86_64,
.os = BFC_OS_MACOS,
},
}
static bfc_error_t emit_data_section(bfc_asm_t *asm_prog)
Declares the zero-initialized Brainfuck tape in Mach-O BSS.
Definition bfc_backend_macos_aarch64.c:74
static bfc_error_t emit_op_set(bfc_asm_t *asm_prog, int64_t imm)
Stores a normalized immediate byte in the current cell.
Definition bfc_backend_macos_aarch64.c:224
static bfc_error_t emit_op_move(bfc_asm_t *asm_prog, int64_t imm)
Moves the tape pointer using direct or register materialized immediates.
Definition bfc_backend_macos_aarch64.c:155
static bfc_error_t emit_loop_test_nz(bfc_asm_t *asm_prog, const char *label)
Uses cbnz to branch when the current cell is nonzero.
Definition bfc_backend_macos_aarch64.c:263
static bfc_error_t emit_loop_test_z(bfc_asm_t *asm_prog, const char *label)
Uses cbz to branch when the current cell is zero.
Definition bfc_backend_macos_aarch64.c:247
static bfc_error_t emit_symbol(bfc_asm_t *asm_prog)
Emits the macOS main symbol, frame setup, saved tape register, and tape address.
Definition bfc_backend_macos_aarch64.c:92
static bfc_error_t emit_op_put(bfc_asm_t *asm_prog)
Loads the current byte and calls putchar.
Definition bfc_backend_macos_aarch64.c:210
static bfc_error_t emit_op_get(bfc_asm_t *asm_prog)
Calls getchar, maps EOF to zero, and stores one byte.
Definition bfc_backend_macos_aarch64.c:194
static bfc_error_t emit_header(bfc_asm_t *asm_prog)
Emits the initial text-section directives.
Definition bfc_backend_macos_aarch64.c:60
static bfc_error_t emit_op_add(bfc_asm_t *asm_prog, int64_t imm)
Loads, adds, and stores one wrapping byte cell.
Definition bfc_backend_macos_aarch64.c:131
static bfc_error_t emit_end(bfc_asm_t *asm_prog)
Restores callee-saved state and returns a zero process status.
Definition bfc_backend_macos_aarch64.c:114
Immutable backend descriptor exported to generic code generation.