1 /* |
1 /* |
2 * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. Oracle designates this |
7 * published by the Free Software Foundation. Oracle designates this |
42 * <li>The JVM bytecode format supports immediate constants of |
42 * <li>The JVM bytecode format supports immediate constants of |
43 * the classes {@link java.lang.invoke.MethodHandle MethodHandle} and {@link java.lang.invoke.MethodType MethodType}. |
43 * the classes {@link java.lang.invoke.MethodHandle MethodHandle} and {@link java.lang.invoke.MethodType MethodType}. |
44 * </li> |
44 * </li> |
45 * </ul> |
45 * </ul> |
46 * |
46 * |
47 * <h1><a name="jvm_mods"></a>Summary of relevant Java Virtual Machine changes</h1> |
47 * <h1><a id="jvm_mods"></a>Summary of relevant Java Virtual Machine changes</h1> |
48 * The following low-level information summarizes relevant parts of the |
48 * The following low-level information summarizes relevant parts of the |
49 * Java Virtual Machine specification. For full details, please see the |
49 * Java Virtual Machine specification. For full details, please see the |
50 * current version of that specification. |
50 * current version of that specification. |
51 * |
51 * |
52 * Each occurrence of an {@code invokedynamic} instruction is called a <em>dynamic call site</em>. |
52 * Each occurrence of an {@code invokedynamic} instruction is called a <em>dynamic call site</em>. |
53 * <h2><a name="indyinsn"></a>{@code invokedynamic} instructions</h2> |
53 * <h2><a id="indyinsn"></a>{@code invokedynamic} instructions</h2> |
54 * A dynamic call site is originally in an unlinked state. In this state, there is |
54 * A dynamic call site is originally in an unlinked state. In this state, there is |
55 * no target method for the call site to invoke. |
55 * no target method for the call site to invoke. |
56 * <p> |
56 * <p> |
57 * Before the JVM can execute a dynamic call site (an {@code invokedynamic} instruction), |
57 * Before the JVM can execute a dynamic call site (an {@code invokedynamic} instruction), |
58 * the call site must first be <em>linked</em>. |
58 * the call site must first be <em>linked</em>. |