|
|
@ -128,10 +128,13 @@ namespace vm
|
|
|
|
|
|
|
|
|
|
|
|
for ( auto idx = 0u; idx < vmp_rtn->vmp2_code_blocks.size(); ++idx )
|
|
|
|
for ( auto idx = 0u; idx < vmp_rtn->vmp2_code_blocks.size(); ++idx )
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
ir_builder->SetInsertPoint( vmp_rtn->llvm_code_blocks[ idx ].second );
|
|
|
|
if ( vmp_rtn->vmp2_code_blocks[ idx ].vinstrs.size() < 35 )
|
|
|
|
if ( vmp_rtn->vmp2_code_blocks[ idx ].vinstrs.size() < 35 )
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
ir_builder->CreateRetVoid();
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ir_builder->SetInsertPoint( vmp_rtn->llvm_code_blocks[ idx ].second );
|
|
|
|
|
|
|
|
for ( auto &vinstr : vmp_rtn->vmp2_code_blocks[ idx ].vinstrs )
|
|
|
|
for ( auto &vinstr : vmp_rtn->vmp2_code_blocks[ idx ].vinstrs )
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if ( !lifters->lift( this, vmp_rtn->vmp2_code_blocks[ idx ], vinstr, ir_builder.get() ) )
|
|
|
|
if ( !lifters->lift( this, vmp_rtn->vmp2_code_blocks[ idx ], vinstr, ir_builder.get() ) )
|
|
|
|