Lookupswitch(ab.code); // rework to fit avm+ semantics
int default_addr = default_addrs.removeLast();
Int24(ab.code, default_addr - start);
IntList case_addr = case_addrs.removeLast();
Int(ab.code, case_addr.size() - 1);
for (int case_index = 0, n=case_addr.size(); case_index < n; ++case_index)
{
Int24(ab.code, case_addr.get(case_index) - start);
}
if (show_instructions)
{
code_out.write(" [" + cur_stack + "]");
}
// We push a continue_addrs to keep the loop index stacks synchronized.
// But switch doesn't support continue, so copy any continues up to the
// surrounding loop.
IntList switch_continues = continue_addrs.removeLast();
if (continue_addrs.size() != 0)
{
IntList outer_continues = continue_addrs.last();
outer_continues.addAll(switch_continues);
}
continue_scope_depth.removeLast();
}