annotate graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/SystemIdentityHashCodeNode.java @ 13487:c5449c0d5909

Move class SystemIdentityHashCodeNode to its own Java file to work around javac bug when compiling the inner class
author Christian Wimmer <christian.wimmer@oracle.com>
date Fri, 27 Dec 2013 15:11:12 -0800
parents
children db4254246f9a
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 /*
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
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
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
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
25 import static com.oracle.graal.phases.GraalOptions.*;
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.*;
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
28 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
29 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
30
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 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
32
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
33 public SystemIdentityHashCodeNode(Invoke 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
34 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
35 }
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
36
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
37 @Override
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
38 protected Constant evaluate(Constant param, MetaAccessProvider metaAccess) {
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
39 return ImmutableCode.getValue() || param.isNull() ? null : Constant.forInt(System.identityHashCode(param.asObject()));
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
40 }
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 }