11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 package jdk.vm.ci.hotspot;
24
25 import static jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.fromObjectClass;
26
27 import java.lang.invoke.CallSite;
28 import java.lang.invoke.ConstantCallSite;
29 import java.lang.invoke.MethodHandle;
30
31 import jdk.vm.ci.inittimer.SuppressFBWarnings;
32 import jdk.vm.ci.meta.Assumptions;
33 import jdk.vm.ci.meta.Constant;
34 import jdk.vm.ci.meta.JavaConstant;
35 import jdk.vm.ci.meta.JavaKind;
36 import jdk.vm.ci.meta.ResolvedJavaType;
37
38 /**
39 * Represents a constant non-{@code null} object reference, within the compiler and across the
40 * compiler/runtime interface.
41 */
42 final class HotSpotObjectConstantImpl implements HotSpotObjectConstant, HotSpotProxified {
43
44 static JavaConstant forObject(Object object) {
45 return forObject(object, false);
46 }
47
48 static JavaConstant forObject(Object object, boolean compressed) {
49 if (object == null) {
50 return compressed ? HotSpotCompressedNullConstant.COMPRESSED_NULL : JavaConstant.NULL_POINTER;
51 } else {
52 return new HotSpotObjectConstantImpl(object, compressed);
53 }
54 }
55
56 public static JavaConstant forBoxedValue(JavaKind kind, Object value) {
57 if (kind == JavaKind.Object) {
58 return HotSpotObjectConstantImpl.forObject(value);
59 } else {
60 return JavaConstant.forBoxedPrimitive(value);
61 }
62 }
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 package jdk.vm.ci.hotspot;
24
25 import static jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.fromObjectClass;
26
27 import java.lang.invoke.CallSite;
28 import java.lang.invoke.ConstantCallSite;
29 import java.lang.invoke.MethodHandle;
30
31 import jdk.vm.ci.meta.Assumptions;
32 import jdk.vm.ci.meta.Constant;
33 import jdk.vm.ci.meta.JavaConstant;
34 import jdk.vm.ci.meta.JavaKind;
35 import jdk.vm.ci.meta.ResolvedJavaType;
36
37 /**
38 * Represents a constant non-{@code null} object reference, within the compiler and across the
39 * compiler/runtime interface.
40 */
41 final class HotSpotObjectConstantImpl implements HotSpotObjectConstant {
42
43 static JavaConstant forObject(Object object) {
44 return forObject(object, false);
45 }
46
47 static JavaConstant forObject(Object object, boolean compressed) {
48 if (object == null) {
49 return compressed ? HotSpotCompressedNullConstant.COMPRESSED_NULL : JavaConstant.NULL_POINTER;
50 } else {
51 return new HotSpotObjectConstantImpl(object, compressed);
52 }
53 }
54
55 public static JavaConstant forBoxedValue(JavaKind kind, Object value) {
56 if (kind == JavaKind.Object) {
57 return HotSpotObjectConstantImpl.forObject(value);
58 } else {
59 return JavaConstant.forBoxedPrimitive(value);
60 }
61 }
|