You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.6 KiB
67 lines
2.6 KiB
#include <vmlifters.hpp>
|
|
|
|
namespace vm::lifters
|
|
{
|
|
vm::lifters::lifter_t lconstq = {
|
|
// push imm<N>
|
|
vm::handler::LCONSTQ,
|
|
[]( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr, vmp2::v3::code_block_t *code_blk ) {
|
|
blk->push( vtil::operand( vinstr->operand.imm.u, 64 ) );
|
|
} };
|
|
|
|
vm::lifters::lifter_t lconstdw = {
|
|
// push imm<N>
|
|
vm::handler::LCONSTDW,
|
|
[]( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr, vmp2::v3::code_block_t *code_blk ) {
|
|
blk->push( vtil::operand( vinstr->operand.imm.u, 32 ) );
|
|
} };
|
|
|
|
vm::lifters::lifter_t lconstw = {
|
|
// push imm<N>
|
|
vm::handler::LCONSTW,
|
|
[]( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr, vmp2::v3::code_block_t *code_blk ) {
|
|
blk->push( vtil::operand( vinstr->operand.imm.u, 16 ) );
|
|
} };
|
|
|
|
vm::lifters::lifter_t lconstbzxw = {
|
|
// push imm<N>
|
|
vm::handler::LCONSTBZXW,
|
|
[]( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr, vmp2::v3::code_block_t *code_blk ) {
|
|
blk->push( vtil::operand( vinstr->operand.imm.u, 16 ) );
|
|
} };
|
|
|
|
vm::lifters::lifter_t lconstbsxdw = {
|
|
// push imm<N>
|
|
vm::handler::LCONSTBSXDW,
|
|
[]( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr, vmp2::v3::code_block_t *code_blk ) {
|
|
blk->push( vtil::operand( vinstr->operand.imm.u, 32 ) );
|
|
} };
|
|
|
|
vm::lifters::lifter_t lconstbsxq = {
|
|
// push imm<N>
|
|
vm::handler::LCONSTBSXQ,
|
|
[]( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr, vmp2::v3::code_block_t *code_blk ) {
|
|
blk->push( vtil::operand( vinstr->operand.imm.u, 64 ) );
|
|
} };
|
|
|
|
vm::lifters::lifter_t lconstdwsxq = {
|
|
// push imm<N>
|
|
vm::handler::LCONSTDWSXQ,
|
|
[]( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr, vmp2::v3::code_block_t *code_blk ) {
|
|
blk->push( vtil::operand( vinstr->operand.imm.u, 64 ) );
|
|
} };
|
|
|
|
vm::lifters::lifter_t lconstwsxq = {
|
|
// push imm<N>
|
|
vm::handler::LCONSTWSXQ,
|
|
[]( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr, vmp2::v3::code_block_t *code_blk ) {
|
|
blk->push( vtil::operand( vinstr->operand.imm.u, 64 ) );
|
|
} };
|
|
|
|
vm::lifters::lifter_t lconstwsxdw = {
|
|
// push imm<N>
|
|
vm::handler::LCONSTWSXDW,
|
|
[]( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr, vmp2::v3::code_block_t *code_blk ) {
|
|
blk->push( vtil::operand( vinstr->operand.imm.u, 32 ) );
|
|
} };
|
|
} // namespace vm::lifters
|