You can write callj to have the assembler or the linker determine the most appropriate form of subroutine call: ‘ call ’, ‘ bal ’, or ‘ calls ’. If the assembly source contains enough information—a ‘ .leafproc ’ or ‘ .sysproc ’ directive defining the operand—then as translates the callj ; if not, it simply emits the callj , leaving it for the linker to resolve.