#include namespace vmp2::lifters { // %t1 = %stack[%sp] // add %sp, 8 // %vregX = %1 lifter_callback_t sregq = [ & ]( vm::vmp_rtn_t *rtn, const vm::instrs::code_block_t &vm_code_block, const vm::instrs::virt_instr_t &vinstr, llvm::IRBuilder<> *ir_builder ) { auto t1 = rtn->pop( 8 ); auto vreg = rtn->virtual_registers[ vinstr.operand.imm.u ? vinstr.operand.imm.u / 8 : 0 ]; ir_builder->CreateStore( t1, vreg )->setAlignment( llvm::Align( 8 ) ); }; } // namespace vmp2::lifters