/* Calcite, src/user-apps/shell/assembler.h * Copyright 2026 Benji Dial * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #pragma once #include //name is copied void start_function(const char *name, int name_length); const char *get_function_name(); int get_function_name_length(); //returns interpret void (*end_function())(); void abort_function(); void *function_data_alloc(int bytes); void emit_ret(); void emit_call(void (*to)()); void emit_mov_edi(int value); void emit_mov_esi(int value); void emit_mov_rdi(uint64_t value);