The assembly code for the general subclass check is duplicated (with minor variations) in interp_masm, stubGenerator, and c1_LIRAssembler. In order to control the code shape more directly, we will factor it into a new subroutine MacroAssembler::check_klass_subtype.
This will let us use the subroutine in a new places, such as code for a direct method handle which adapts to a wider incoming argument type.
It will also reduce the number of modifications required to add enhancements to subtype checking, such as for the interface injection project.