@@ -1601,16 +1601,7 @@ codet java_bytecode_convert_methodt::convert_instructions(
1601
1601
}
1602
1602
else if (statement==" pop" || statement==" pop2" )
1603
1603
{
1604
- // these are skips
1605
- c=code_skipt ();
1606
-
1607
- // pop2 removes two single-word items from the stack (e.g. two
1608
- // integers, or an integer and an object reference) or one
1609
- // two-word item (i.e. a double or a long).
1610
- // http://cs.au.dk/~mis/dOvs/jvmspec/ref-pop2.html
1611
- if (statement==" pop2" &&
1612
- get_bytecode_type_width (op[0 ].type ())==32 )
1613
- pop (1 );
1604
+ c = convert_pop (statement, op);
1614
1605
}
1615
1606
else if (statement==" instanceof" )
1616
1607
{
@@ -1880,6 +1871,22 @@ codet java_bytecode_convert_methodt::convert_instructions(
1880
1871
return code;
1881
1872
}
1882
1873
1874
+ codet java_bytecode_convert_methodt::convert_pop (
1875
+ const irep_idt &statement,
1876
+ const exprt::operandst &op)
1877
+ {
1878
+ // these are skips
1879
+ codet c = code_skipt ();
1880
+
1881
+ // pop2 removes two single-word items from the stack (e.g. two
1882
+ // integers, or an integer and an object reference) or one
1883
+ // two-word item (i.e. a double or a long).
1884
+ // http://cs.au.dk/~mis/dOvs/jvmspec/ref-pop2.html
1885
+ if (statement == " pop2" && get_bytecode_type_width (op[0 ].type ()) == 32 )
1886
+ pop (1 );
1887
+ return c;
1888
+ }
1889
+
1883
1890
codet java_bytecode_convert_methodt::convert_switch (
1884
1891
java_bytecode_convert_methodt::address_mapt &address_map,
1885
1892
const std::vector<java_bytecode_parse_treet::instructiont>::const_iterator
0 commit comments