annotate graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/SystemIdentityHashCodeNode.java @ 18187:9619ba4daf4c

Rename Constant to JavaConstant.
author Roland Schatz <roland.schatz@oracle.com>
date Thu, 30 Oct 2014 12:21:07 +0100
parents 45b45f902bed
children f7d45e2426d4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13487
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
1 /*
18187
9619ba4daf4c Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents: 17450
diff changeset
2 * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
13487
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
4 *
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
8 *
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
13 * accompanied this code).
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
14 *
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
18 *
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
21 * questions.
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
22 */
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
23 package com.oracle.graal.hotspot.replacements;
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
24
15259
d90e5c22ba55 Move GraalOptions to graal.compiler.common.
Josef Eisl <josef.eisl@jku.at>
parents: 15018
diff changeset
25 import static com.oracle.graal.compiler.common.GraalOptions.*;
13487
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
26
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
27 import com.oracle.graal.api.meta.*;
15018
db4254246f9a Remove Constant.forObject and Constant.asObject to improve compiler/VM separation
Christian Wimmer <christian.wimmer@oracle.com>
parents: 13487
diff changeset
28 import com.oracle.graal.hotspot.meta.*;
16841
cbd42807a31f moved NodeInfo and friends into separate com.oracle.graal.nodeinfo project so that annotation processor can be applied to the base Node class
Doug Simon <doug.simon@oracle.com>
parents: 16822
diff changeset
29 import com.oracle.graal.nodeinfo.*;
13487
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
30 import com.oracle.graal.nodes.*;
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
31 import com.oracle.graal.replacements.nodes.*;
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
32
16822
5d468add216f added @NodeInfo annotations to all Node classes
Doug Simon <doug.simon@oracle.com>
parents: 15259
diff changeset
33 @NodeInfo
13487
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
34 public class SystemIdentityHashCodeNode extends PureFunctionMacroNode {
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
35
16895
06c15e88d383 added factory method to all Node classes; replaced Node classes instantiation with calls to factory methods; replaced identity tests on Node classes with ' == <node class>.getGenClass()' idiom
Doug Simon <doug.simon@oracle.com>
parents: 16841
diff changeset
36 public static SystemIdentityHashCodeNode create(Invoke invoke) {
17450
45b45f902bed removed Node generation (GRAAL-857)
Doug Simon <doug.simon@oracle.com>
parents: 16919
diff changeset
37 return new SystemIdentityHashCodeNode(invoke);
16895
06c15e88d383 added factory method to all Node classes; replaced Node classes instantiation with calls to factory methods; replaced identity tests on Node classes with ' == <node class>.getGenClass()' idiom
Doug Simon <doug.simon@oracle.com>
parents: 16841
diff changeset
38 }
06c15e88d383 added factory method to all Node classes; replaced Node classes instantiation with calls to factory methods; replaced identity tests on Node classes with ' == <node class>.getGenClass()' idiom
Doug Simon <doug.simon@oracle.com>
parents: 16841
diff changeset
39
06c15e88d383 added factory method to all Node classes; replaced Node classes instantiation with calls to factory methods; replaced identity tests on Node classes with ' == <node class>.getGenClass()' idiom
Doug Simon <doug.simon@oracle.com>
parents: 16841
diff changeset
40 protected SystemIdentityHashCodeNode(Invoke invoke) {
13487
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
41 super(invoke);
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
42 }
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
43
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
44 @Override
18187
9619ba4daf4c Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents: 17450
diff changeset
45 protected JavaConstant evaluate(JavaConstant param, MetaAccessProvider metaAccess) {
9619ba4daf4c Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents: 17450
diff changeset
46 return ImmutableCode.getValue() || param.isNull() ? null : JavaConstant.forInt(System.identityHashCode(HotSpotObjectConstant.asObject(param)));
13487
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
47 }
c5449c0d5909 Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
Christian Wimmer <christian.wimmer@oracle.com>
parents:
diff changeset
48 }