< prev index next >

src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java

Print this page




  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     }


< prev index next >