|
| void | emit_mov_reg_imm64 (code_buffer *buf, x64_gpr reg, uint64_t value) |
| |
| void | emit_mov_reg_imm32 (code_buffer *buf, x64_gpr reg, int32_t imm) |
| |
| void | emit_mov_reg_reg (code_buffer *buf, x64_gpr dest, x64_gpr src) |
| |
| void | emit_mov_reg_mem (code_buffer *buf, x64_gpr dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_mov_reg32_mem (code_buffer *buf, x64_gpr dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_movsxd_reg_mem (code_buffer *buf, x64_gpr dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_movsx_reg64_mem8 (code_buffer *buf, x64_gpr dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_movsx_reg64_mem16 (code_buffer *buf, x64_gpr dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_movzx_reg64_mem8 (code_buffer *buf, x64_gpr dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_movzx_reg64_mem16 (code_buffer *buf, x64_gpr dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_mov_mem_reg (code_buffer *buf, x64_gpr dest_base, int32_t offset, x64_gpr src) |
| |
| void | emit_mov_mem_reg32 (code_buffer *buf, x64_gpr dest_base, int32_t offset, x64_gpr src) |
| |
| void | emit_mov_mem_reg16 (code_buffer *buf, x64_gpr dest_base, int32_t offset, x64_gpr src) |
| |
| void | emit_mov_mem_reg8 (code_buffer *buf, x64_gpr dest_base, int32_t offset, x64_gpr src) |
| |
| void | emit_movss_xmm_mem (code_buffer *buf, x64_xmm dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_movss_mem_xmm (code_buffer *buf, x64_gpr dest_base, int32_t offset, x64_xmm src) |
| |
| void | emit_movsd_xmm_mem (code_buffer *buf, x64_xmm dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_movsd_mem_xmm (code_buffer *buf, x64_gpr dest_base, int32_t offset, x64_xmm src) |
| |
| void | emit_movups_xmm_mem (code_buffer *buf, x64_xmm dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_movups_mem_xmm (code_buffer *buf, x64_gpr dest_base, int32_t offset, x64_xmm src) |
| |
| void | emit_vmovupd_ymm_mem (code_buffer *buf, x64_xmm dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_vmovupd_zmm_mem (code_buffer *buf, x64_xmm dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_vmovupd_mem_zmm (code_buffer *buf, x64_gpr dest_base, int32_t offset, x64_xmm src) |
| |
| void | emit_vmovupd_mem_ymm (code_buffer *buf, x64_gpr dest_base, int32_t offset, x64_xmm src) |
| |
| void | emit_movq_xmm_gpr (code_buffer *buf, x64_xmm dest, x64_gpr src) |
| |
| void | emit_movq_gpr_xmm (code_buffer *buf, x64_gpr dest, x64_xmm src) |
| |
| void | emit_fldt_mem (code_buffer *buf, x64_gpr base, int32_t offset) |
| |
| void | emit_fstpt_mem (code_buffer *buf, x64_gpr base, int32_t offset) |
| |
| void | emit_lea_reg_mem (code_buffer *buf, x64_gpr dest, x64_gpr src_base, int32_t offset) |
| |
| void | emit_add_reg_imm8 (code_buffer *buf, x64_gpr reg, int8_t imm) |
| |
| void | emit_add_reg_imm32 (code_buffer *buf, x64_gpr reg, int32_t imm) |
| |
| void | emit_sub_reg_imm32 (code_buffer *buf, x64_gpr reg, int32_t imm) |
| |
| void | emit_dec_reg (code_buffer *buf, x64_gpr reg) |
| |
| void | emit_push_reg (code_buffer *buf, x64_gpr reg) |
| |
| void | emit_pop_reg (code_buffer *buf, x64_gpr reg) |
| |
| void | emit_call_reg (code_buffer *buf, x64_gpr reg) |
| |
| void | emit_ret (code_buffer *buf) |
| |
| void | emit_test_reg_reg (code_buffer *buf, x64_gpr reg1, x64_gpr reg2) |
| |
| void | emit_jnz_short (code_buffer *buf, int8_t offset) |
| |
| void | emit_jmp_reg (code_buffer *buf, x64_gpr reg) |
| |
| void | emit_ud2 (code_buffer *buf) |
| |
| void | emit_modrm (code_buffer *buf, uint8_t mod, uint8_t reg_opcode, uint8_t rm) |
| |
| void | emit_rex_prefix (code_buffer *buf, bool w, bool r, bool x, bool b) |
| |
| void | emit_syscall (code_buffer *buf) |
| |
Declares internal helper functions for emitting x86-64 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 this code under the terms of either license.
SPDX-License-Identifier: (Artistic-2.0 OR MIT)
The documentation blocks within this file are licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
SPDX-License-Identifier: CC-BY-4.0