|
|
@ -2,7 +2,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
namespace vm::lifters
|
|
|
|
namespace vm::lifters
|
|
|
|
{
|
|
|
|
{
|
|
|
|
lifter_t addq = {
|
|
|
|
vm::lifters::lifter_t addq = {
|
|
|
|
// vsp[0] = vsp[1] + vsp[0];
|
|
|
|
// vsp[0] = vsp[1] + vsp[0];
|
|
|
|
vm::handler::ADDQ, []( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr ) {
|
|
|
|
vm::handler::ADDQ, []( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr ) {
|
|
|
|
auto [ t0, t1 ] = blk->tmp( 64, 64 );
|
|
|
|
auto [ t0, t1 ] = blk->tmp( 64, 64 );
|
|
|
@ -13,7 +13,7 @@ namespace vm::lifters
|
|
|
|
blk->pushf();
|
|
|
|
blk->pushf();
|
|
|
|
} };
|
|
|
|
} };
|
|
|
|
|
|
|
|
|
|
|
|
lifter_t adddw = {
|
|
|
|
vm::lifters::lifter_t adddw = {
|
|
|
|
// vsp[0] = vsp[1] + vsp[0];
|
|
|
|
// vsp[0] = vsp[1] + vsp[0];
|
|
|
|
vm::handler::ADDDW, []( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr ) {
|
|
|
|
vm::handler::ADDDW, []( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr ) {
|
|
|
|
auto [ t0, t1 ] = blk->tmp( 32, 32 );
|
|
|
|
auto [ t0, t1 ] = blk->tmp( 32, 32 );
|
|
|
@ -24,7 +24,7 @@ namespace vm::lifters
|
|
|
|
blk->pushf();
|
|
|
|
blk->pushf();
|
|
|
|
} };
|
|
|
|
} };
|
|
|
|
|
|
|
|
|
|
|
|
lifter_t addw = {
|
|
|
|
vm::lifters::lifter_t addw = {
|
|
|
|
// vsp[0] = vsp[1] + vsp[0];
|
|
|
|
// vsp[0] = vsp[1] + vsp[0];
|
|
|
|
vm::handler::ADDW, []( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr ) {
|
|
|
|
vm::handler::ADDW, []( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr ) {
|
|
|
|
auto [ t0, t1 ] = blk->tmp( 16, 16 );
|
|
|
|
auto [ t0, t1 ] = blk->tmp( 16, 16 );
|
|
|
|