Code in LIR_OpVisitState::visit() was processing the receiver operand twice. On ARM which actually can use the maxNumberOfOperands(20) for register arguments this caused an assertion when an instance method was called with the max number of float and int type arguments. Webrev here: http://cr.openjdk.java.net/~bpittore/8005722/webrev.00/ bill