390 // %%% We should use this to handle Class and String constants also. |
390 // %%% We should use this to handle Class and String constants also. |
391 // %%% It will simplify the ldc/primitive path considerably. |
391 // %%% It will simplify the ldc/primitive path considerably. |
392 void TemplateTable::fast_aldc(bool wide) { |
392 void TemplateTable::fast_aldc(bool wide) { |
393 transition(vtos, atos); |
393 transition(vtos, atos); |
394 |
394 |
395 if (!EnableMethodHandles) { |
395 if (!EnableInvokeDynamic) { |
396 // We should not encounter this bytecode if !EnableMethodHandles. |
396 // We should not encounter this bytecode if !EnableInvokeDynamic. |
397 // The verifier will stop it. However, if we get past the verifier, |
397 // The verifier will stop it. However, if we get past the verifier, |
398 // this will stop the thread in a reasonable way, without crashing the JVM. |
398 // this will stop the thread in a reasonable way, without crashing the JVM. |
399 __ call_VM(noreg, CAST_FROM_FN_PTR(address, |
399 __ call_VM(noreg, CAST_FROM_FN_PTR(address, |
400 InterpreterRuntime::throw_IncompatibleClassChangeError)); |
400 InterpreterRuntime::throw_IncompatibleClassChangeError)); |
401 // the call_VM checks for exception, so we should never return here. |
401 // the call_VM checks for exception, so we should never return here. |