# HG changeset patch # User Andreas Woess # Date 1430431845 -7200 # Node ID f1f7695b5bdc5b25406ee002af35893e95497930 # Parent 422f913e9310896eacc3515400c6c7dbe982385e Truffle: frame cleanup diff -r 422f913e9310 -r f1f7695b5bdc graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithBoxing.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithBoxing.java Thu Apr 30 23:58:00 2015 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithBoxing.java Fri May 01 00:10:45 2015 +0200 @@ -22,11 +22,8 @@ */ package com.oracle.graal.truffle; -import java.lang.reflect.*; import java.util.*; -import sun.misc.*; - import com.oracle.truffle.api.*; import com.oracle.truffle.api.frame.*; @@ -236,70 +233,4 @@ static T unsafeCast(Object value, Class type, boolean condition, boolean nonNull) { return (T) value; } - - @SuppressWarnings("unused") - static int unsafeGetInt(Object receiver, long offset, boolean condition, Object locationIdentity) { - return UNSAFE.getInt(receiver, offset); - } - - @SuppressWarnings("unused") - static long unsafeGetLong(Object receiver, long offset, boolean condition, Object locationIdentity) { - return UNSAFE.getLong(receiver, offset); - } - - @SuppressWarnings("unused") - static float unsafeGetFloat(Object receiver, long offset, boolean condition, Object locationIdentity) { - return UNSAFE.getFloat(receiver, offset); - } - - @SuppressWarnings("unused") - static double unsafeGetDouble(Object receiver, long offset, boolean condition, Object locationIdentity) { - return UNSAFE.getDouble(receiver, offset); - } - - @SuppressWarnings("unused") - static Object unsafeGetObject(Object receiver, long offset, boolean condition, Object locationIdentity) { - return UNSAFE.getObject(receiver, offset); - } - - @SuppressWarnings("unused") - static void unsafePutInt(Object receiver, long offset, int value, Object locationIdentity) { - UNSAFE.putInt(receiver, offset, value); - } - - @SuppressWarnings("unused") - static void unsafePutLong(Object receiver, long offset, long value, Object locationIdentity) { - UNSAFE.putLong(receiver, offset, value); - } - - @SuppressWarnings("unused") - static void unsafePutFloat(Object receiver, long offset, float value, Object locationIdentity) { - UNSAFE.putFloat(receiver, offset, value); - } - - @SuppressWarnings("unused") - static void unsafePutDouble(Object receiver, long offset, double value, Object locationIdentity) { - UNSAFE.putDouble(receiver, offset, value); - } - - @SuppressWarnings("unused") - static void unsafePutObject(Object receiver, long offset, Object value, Object locationIdentity) { - UNSAFE.putObject(receiver, offset, value); - } - - private static final Unsafe UNSAFE = getUnsafe(); - - private static Unsafe getUnsafe() { - try { - return Unsafe.getUnsafe(); - } catch (SecurityException e) { - } - try { - Field theUnsafeInstance = Unsafe.class.getDeclaredField("theUnsafe"); - theUnsafeInstance.setAccessible(true); - return (Unsafe) theUnsafeInstance.get(Unsafe.class); - } catch (Exception e) { - throw new RuntimeException("exception while trying to get Unsafe.theUnsafe via reflection:", e); - } - } } diff -r 422f913e9310 -r f1f7695b5bdc graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithoutBoxing.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithoutBoxing.java Thu Apr 30 23:58:00 2015 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithoutBoxing.java Fri May 01 00:10:45 2015 +0200 @@ -104,7 +104,8 @@ } private Object getObjectUnsafe(int slotIndex, FrameSlot slot) { - return unsafeGetObject(getLocals(), Unsafe.ARRAY_OBJECT_BASE_OFFSET + slotIndex * (long) Unsafe.ARRAY_OBJECT_INDEX_SCALE, this.getTags()[slotIndex] == FrameSlotKind.Object.tag, slot); + boolean condition = this.getTags()[slotIndex] == OBJECT_TAG; + return unsafeGetObject(getLocals(), Unsafe.ARRAY_OBJECT_BASE_OFFSET + slotIndex * (long) Unsafe.ARRAY_OBJECT_INDEX_SCALE, condition, slot); } @Override @@ -127,7 +128,7 @@ private byte getByteUnsafe(int slotIndex, FrameSlot slot) { long offset = getPrimitiveOffset(slotIndex); - boolean condition = this.getTags()[slotIndex] == FrameSlotKind.Byte.tag; + boolean condition = this.getTags()[slotIndex] == BYTE_TAG; return (byte) unsafeGetInt(getPrimitiveLocals(), offset, condition, slot); } @@ -152,7 +153,7 @@ private boolean getBooleanUnsafe(int slotIndex, FrameSlot slot) { long offset = getPrimitiveOffset(slotIndex); - boolean condition = this.getTags()[slotIndex] == FrameSlotKind.Boolean.tag; + boolean condition = this.getTags()[slotIndex] == BOOLEAN_TAG; return unsafeGetInt(getPrimitiveLocals(), offset, condition, slot) != 0; } @@ -177,7 +178,7 @@ private float getFloatUnsafe(int slotIndex, FrameSlot slot) { long offset = getPrimitiveOffset(slotIndex); - boolean condition = this.getTags()[slotIndex] == FrameSlotKind.Float.tag; + boolean condition = this.getTags()[slotIndex] == FLOAT_TAG; return unsafeGetFloat(getPrimitiveLocals(), offset, condition, slot); } @@ -202,7 +203,7 @@ private long getLongUnsafe(int slotIndex, FrameSlot slot) { long offset = getPrimitiveOffset(slotIndex); - boolean condition = this.getTags()[slotIndex] == FrameSlotKind.Long.tag; + boolean condition = this.getTags()[slotIndex] == LONG_TAG; return unsafeGetLong(getPrimitiveLocals(), offset, condition, slot); } @@ -227,7 +228,7 @@ private int getIntUnsafe(int slotIndex, FrameSlot slot) { long offset = getPrimitiveOffset(slotIndex); - boolean condition = this.getTags()[slot.getIndex()] == FrameSlotKind.Int.tag; + boolean condition = this.getTags()[slot.getIndex()] == INT_TAG; return unsafeGetInt(getPrimitiveLocals(), offset, condition, slot); } @@ -252,7 +253,7 @@ private double getDoubleUnsafe(int slotIndex, FrameSlot slot) { long offset = getPrimitiveOffset(slotIndex); - boolean condition = this.getTags()[slotIndex] == FrameSlotKind.Double.tag; + boolean condition = this.getTags()[slotIndex] == DOUBLE_TAG; return unsafeGetDouble(getPrimitiveLocals(), offset, condition, slot); } @@ -306,20 +307,20 @@ resize(); } byte tag = getTags()[slotIndex]; - if (tag == FrameSlotKind.Boolean.tag) { + if (tag == BOOLEAN_TAG) { return getBooleanUnsafe(slotIndex, slot); - } else if (tag == FrameSlotKind.Byte.tag) { + } else if (tag == BYTE_TAG) { return getByteUnsafe(slotIndex, slot); - } else if (tag == FrameSlotKind.Int.tag) { + } else if (tag == INT_TAG) { return getIntUnsafe(slotIndex, slot); - } else if (tag == FrameSlotKind.Double.tag) { + } else if (tag == DOUBLE_TAG) { return getDoubleUnsafe(slotIndex, slot); - } else if (tag == FrameSlotKind.Long.tag) { + } else if (tag == LONG_TAG) { return getLongUnsafe(slotIndex, slot); - } else if (tag == FrameSlotKind.Float.tag) { + } else if (tag == FLOAT_TAG) { return getFloatUnsafe(slotIndex, slot); } else { - assert tag == FrameSlotKind.Object.tag; + assert tag == OBJECT_TAG; return getObjectUnsafe(slotIndex, slot); } } @@ -348,37 +349,37 @@ @Override public boolean isObject(FrameSlot slot) { - return getTag(slot) == FrameSlotKind.Object.tag; + return getTag(slot) == OBJECT_TAG; } @Override public boolean isByte(FrameSlot slot) { - return getTag(slot) == FrameSlotKind.Byte.tag; + return getTag(slot) == BYTE_TAG; } @Override public boolean isBoolean(FrameSlot slot) { - return getTag(slot) == FrameSlotKind.Boolean.tag; + return getTag(slot) == BOOLEAN_TAG; } @Override public boolean isInt(FrameSlot slot) { - return getTag(slot) == FrameSlotKind.Int.tag; + return getTag(slot) == INT_TAG; } @Override public boolean isLong(FrameSlot slot) { - return getTag(slot) == FrameSlotKind.Long.tag; + return getTag(slot) == LONG_TAG; } @Override public boolean isFloat(FrameSlot slot) { - return getTag(slot) == FrameSlotKind.Float.tag; + return getTag(slot) == FLOAT_TAG; } @Override public boolean isDouble(FrameSlot slot) { - return getTag(slot) == FrameSlotKind.Double.tag; + return getTag(slot) == DOUBLE_TAG; } @SuppressWarnings({"unchecked", "unused"})