infix
A JIT-Powered FFI Library for C
Loading...
Searching...
No Matches
abi_arm64_emitters.h File Reference

Declares internal helper functions for emitting AArch64 machine code. More...

Include dependency graph for abi_arm64_emitters.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void emit_arm64_load_u64_immediate (code_buffer *buf, arm64_gpr dest, uint64_t value)
 
void emit_arm64_mov_reg (code_buffer *buf, bool is64, arm64_gpr dest, arm64_gpr src)
 
void emit_arm64_ldr_imm (code_buffer *buf, bool is64, arm64_gpr dest, arm64_gpr base, int32_t offset)
 
void emit_arm64_ldrsw_imm (code_buffer *buf, arm64_gpr dest, arm64_gpr base, int32_t offset)
 
void emit_arm64_str_imm (code_buffer *buf, bool is64, arm64_gpr src, arm64_gpr base, int32_t offset)
 
void emit_arm64_strb_imm (code_buffer *buf, arm64_gpr src, arm64_gpr base, int32_t offset)
 
void emit_arm64_strh_imm (code_buffer *buf, arm64_gpr src, arm64_gpr base, int32_t offset)
 
void emit_arm64_stp_pre_index (code_buffer *buf, bool is64, arm64_gpr src1, arm64_gpr src2, arm64_gpr base, int32_t offset)
 
void emit_arm64_ldp_post_index (code_buffer *buf, bool is64, arm64_gpr dest1, arm64_gpr dest2, arm64_gpr base, int32_t offset)
 
void emit_arm64_ldr_vpr (code_buffer *buf, bool is64, arm64_vpr dest, arm64_gpr base, int32_t offset)
 
void emit_arm64_str_vpr (code_buffer *buf, bool is64, arm64_vpr src, arm64_gpr base, int32_t offset)
 
void emit_arm64_ldr_q_imm (code_buffer *buf, arm64_vpr dest, arm64_gpr base, int32_t offset)
 
void emit_arm64_str_q_imm (code_buffer *buf, arm64_vpr src, arm64_gpr base, int32_t offset)
 
void emit_arm64_add_imm (code_buffer *buf, bool is64, bool set_flags, arm64_gpr dest, arm64_gpr base, uint32_t imm)
 
void emit_arm64_sub_imm (code_buffer *buf, bool is64, bool set_flags, arm64_gpr dest, arm64_gpr base, uint32_t imm)
 
void emit_arm64_blr_reg (code_buffer *buf, arm64_gpr reg)
 
void emit_arm64_ret (code_buffer *buf, arm64_gpr reg)
 
void emit_arm64_cbnz (code_buffer *buf, bool is64, arm64_gpr reg, int32_t offset)
 
void emit_arm64_brk (code_buffer *buf, uint16_t imm)
 
void emit_arm64_b_reg (code_buffer *buf, arm64_gpr reg)
 

Detailed Description

Declares internal helper functions for emitting AArch64 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

Function Documentation

◆ emit_arm64_add_imm()

void emit_arm64_add_imm ( code_buffer buf,
bool  is64,
bool  set_flags,
arm64_gpr  dest,
arm64_gpr  base,
uint32_t  imm 
)

◆ emit_arm64_b_reg()

void emit_arm64_b_reg ( code_buffer buf,
arm64_gpr  reg 
)

◆ emit_arm64_blr_reg()

void emit_arm64_blr_reg ( code_buffer buf,
arm64_gpr  reg 
)

◆ emit_arm64_brk()

void emit_arm64_brk ( code_buffer buf,
uint16_t  imm 
)

◆ emit_arm64_cbnz()

void emit_arm64_cbnz ( code_buffer buf,
bool  is64,
arm64_gpr  reg,
int32_t  offset 
)

◆ emit_arm64_ldp_post_index()

void emit_arm64_ldp_post_index ( code_buffer buf,
bool  is64,
arm64_gpr  dest1,
arm64_gpr  dest2,
arm64_gpr  base,
int32_t  offset 
)

◆ emit_arm64_ldr_imm()

void emit_arm64_ldr_imm ( code_buffer buf,
bool  is64,
arm64_gpr  dest,
arm64_gpr  base,
int32_t  offset 
)

◆ emit_arm64_ldr_q_imm()

void emit_arm64_ldr_q_imm ( code_buffer buf,
arm64_vpr  dest,
arm64_gpr  base,
int32_t  offset 
)

◆ emit_arm64_ldr_vpr()

void emit_arm64_ldr_vpr ( code_buffer buf,
bool  is64,
arm64_vpr  dest,
arm64_gpr  base,
int32_t  offset 
)

◆ emit_arm64_ldrsw_imm()

void emit_arm64_ldrsw_imm ( code_buffer buf,
arm64_gpr  dest,
arm64_gpr  base,
int32_t  offset 
)

◆ emit_arm64_load_u64_immediate()

void emit_arm64_load_u64_immediate ( code_buffer buf,
arm64_gpr  dest,
uint64_t  value 
)

◆ emit_arm64_mov_reg()

void emit_arm64_mov_reg ( code_buffer buf,
bool  is64,
arm64_gpr  dest,
arm64_gpr  src 
)

◆ emit_arm64_ret()

void emit_arm64_ret ( code_buffer buf,
arm64_gpr  reg 
)

◆ emit_arm64_stp_pre_index()

void emit_arm64_stp_pre_index ( code_buffer buf,
bool  is64,
arm64_gpr  src1,
arm64_gpr  src2,
arm64_gpr  base,
int32_t  offset 
)

◆ emit_arm64_str_imm()

void emit_arm64_str_imm ( code_buffer buf,
bool  is64,
arm64_gpr  src,
arm64_gpr  base,
int32_t  offset 
)

◆ emit_arm64_str_q_imm()

void emit_arm64_str_q_imm ( code_buffer buf,
arm64_vpr  src,
arm64_gpr  base,
int32_t  offset 
)

◆ emit_arm64_str_vpr()

void emit_arm64_str_vpr ( code_buffer buf,
bool  is64,
arm64_vpr  src,
arm64_gpr  base,
int32_t  offset 
)

◆ emit_arm64_strb_imm()

void emit_arm64_strb_imm ( code_buffer buf,
arm64_gpr  src,
arm64_gpr  base,
int32_t  offset 
)

◆ emit_arm64_strh_imm()

void emit_arm64_strh_imm ( code_buffer buf,
arm64_gpr  src,
arm64_gpr  base,
int32_t  offset 
)

◆ emit_arm64_sub_imm()

void emit_arm64_sub_imm ( code_buffer buf,
bool  is64,
bool  set_flags,
arm64_gpr  dest,
arm64_gpr  base,
uint32_t  imm 
)