Split asm in two phases because after jvm phase type args is lost