annotate graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/SystemIdentityHashCodeNode.java @ 15018:db4254246f9a

Remove Constant.forObject and Constant.asObject to improve compiler/VM separation
author Christian Wimmer <christian.wimmer@oracle.com>
date Mon, 07 Apr 2014 16:09:17 -0700
parents c5449c0d5909
children d90e5c22ba55
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.*;
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.*;
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
29 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
30 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
31
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 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
33
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 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
35 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
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
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 @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
39 protected Constant evaluate(Constant param, MetaAccessProvider metaAccess) {
15018
db4254246f9a Remove Constant.forObject and Constant.asObject to improve compiler/VM separation
Christian Wimmer <christian.wimmer@oracle.com>
parents: 13487
diff changeset
40 return ImmutableCode.getValue() || param.isNull() ? null : Constant.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
41 }
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 }