Exemple #1
0
void asm_x64_mov_local_addr_to_r64(asm_x64_t* as, int local_num, int dest_r64) {
    int offset = asm_x64_local_offset_from_ebp(local_num);
    if (offset == 0) {
        asm_x64_mov_r64_to_r64(as, REG_RBP, dest_r64);
    } else {
        asm_x64_lea_disp_to_r64(as, REG_RBP, offset, dest_r64);
    }
}
Exemple #2
0
void asm_x64_push_local_addr(asm_x64_t* as, int local_num, int temp_r64)
{
    asm_x64_mov_r64_to_r64(as, REG_RBP, temp_r64);
    asm_x64_add_i32_to_r32(as, asm_x64_local_offset_from_ebp(local_num), temp_r64);
    asm_x64_push_r64(as, temp_r64);
}
Exemple #3
0
void asm_x64_push_local(asm_x64_t* as, int local_num) {
    asm_x64_push_disp(as, REG_RBP, asm_x64_local_offset_from_ebp(local_num));
}
Exemple #4
0
void asm_x64_mov_r64_to_local(asm_x64_t* as, int src_r64, int dest_local_num) {
    asm_x64_mov_r64_to_disp(as, src_r64, REG_RBP, asm_x64_local_offset_from_ebp(dest_local_num));
}
Exemple #5
0
void asm_x64_mov_local_to_r64(asm_x64_t* as, int src_local_num, int dest_r64) {
    asm_x64_mov_disp_to_r64(as, REG_RBP, asm_x64_local_offset_from_ebp(src_local_num), dest_r64);
}
Exemple #6
0
void asm_x64_mov_r64_to_local(asm_x64_t *as, int src_r64, int dest_local_num) {
    asm_x64_mov_r64_to_mem64(as, src_r64, ASM_X64_REG_RBP, asm_x64_local_offset_from_ebp(as, dest_local_num));
}
Exemple #7
0
void asm_x64_mov_local_to_r64(asm_x64_t *as, int src_local_num, int dest_r64) {
    asm_x64_mov_mem64_to_r64(as, ASM_X64_REG_RBP, asm_x64_local_offset_from_ebp(as, src_local_num), dest_r64);
}