public final class FrameWithoutBoxing extends Object implements com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.frame.MaterializedFrame
Modifier and Type | Field and Description |
---|---|
private Object[] |
arguments |
static byte |
BOOLEAN_TAG |
static byte |
BYTE_TAG |
private com.oracle.truffle.api.frame.FrameDescriptor |
descriptor |
static byte |
DOUBLE_TAG |
static byte |
FLOAT_TAG |
static byte |
ILLEGAL_TAG |
static byte |
INT_TAG |
private Object[] |
locals |
static byte |
LONG_TAG |
static byte |
OBJECT_TAG |
private long[] |
primitiveLocals |
private byte[] |
tags |
private static sun.misc.Unsafe |
UNSAFE |
Constructor and Description |
---|
FrameWithoutBoxing(com.oracle.truffle.api.frame.FrameDescriptor descriptor,
Object[] arguments) |
Modifier and Type | Method and Description |
---|---|
private void |
checkSlotIndex(int slotIndex) |
Object[] |
getArguments() |
boolean |
getBoolean(com.oracle.truffle.api.frame.FrameSlot slot) |
private boolean |
getBooleanUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot) |
byte |
getByte(com.oracle.truffle.api.frame.FrameSlot slot) |
private byte |
getByteUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot) |
double |
getDouble(com.oracle.truffle.api.frame.FrameSlot slot) |
private double |
getDoubleUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot) |
float |
getFloat(com.oracle.truffle.api.frame.FrameSlot slot) |
private float |
getFloatUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot) |
com.oracle.truffle.api.frame.FrameDescriptor |
getFrameDescriptor() |
int |
getInt(com.oracle.truffle.api.frame.FrameSlot slot) |
private int |
getIntUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot) |
private Object[] |
getLocals() |
long |
getLong(com.oracle.truffle.api.frame.FrameSlot slot) |
private long |
getLongUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot) |
Object |
getObject(com.oracle.truffle.api.frame.FrameSlot slot) |
private Object |
getObjectUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot) |
private long[] |
getPrimitiveLocals() |
private static long |
getPrimitiveOffset(int slotIndex) |
private byte |
getTag(com.oracle.truffle.api.frame.FrameSlot slot) |
private byte[] |
getTags() |
private static sun.misc.Unsafe |
getUnsafe() |
Object |
getValue(com.oracle.truffle.api.frame.FrameSlot slot) |
boolean |
isBoolean(com.oracle.truffle.api.frame.FrameSlot slot) |
boolean |
isByte(com.oracle.truffle.api.frame.FrameSlot slot) |
boolean |
isDouble(com.oracle.truffle.api.frame.FrameSlot slot) |
boolean |
isFloat(com.oracle.truffle.api.frame.FrameSlot slot) |
boolean |
isInt(com.oracle.truffle.api.frame.FrameSlot slot) |
boolean |
isLong(com.oracle.truffle.api.frame.FrameSlot slot) |
boolean |
isObject(com.oracle.truffle.api.frame.FrameSlot slot) |
com.oracle.truffle.api.frame.MaterializedFrame |
materialize() |
private boolean |
resize() |
void |
setBoolean(com.oracle.truffle.api.frame.FrameSlot slot,
boolean value) |
private void |
setBooleanUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot,
boolean value) |
void |
setByte(com.oracle.truffle.api.frame.FrameSlot slot,
byte value) |
private void |
setByteUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot,
byte value) |
void |
setDouble(com.oracle.truffle.api.frame.FrameSlot slot,
double value) |
private void |
setDoubleUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot,
double value) |
void |
setFloat(com.oracle.truffle.api.frame.FrameSlot slot,
float value) |
private void |
setFloatUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot,
float value) |
void |
setInt(com.oracle.truffle.api.frame.FrameSlot slot,
int value) |
private void |
setIntUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot,
int value) |
void |
setLong(com.oracle.truffle.api.frame.FrameSlot slot,
long value) |
private void |
setLongUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot,
long value) |
void |
setObject(com.oracle.truffle.api.frame.FrameSlot slot,
Object value) |
private void |
setObjectUnsafe(int slotIndex,
com.oracle.truffle.api.frame.FrameSlot slot,
Object value) |
(package private) static <T> T |
unsafeCast(Object value,
Class<T> type,
boolean condition,
boolean nonNull) |
(package private) static double |
unsafeGetDouble(Object receiver,
long offset,
boolean condition,
Object locationIdentity) |
(package private) static float |
unsafeGetFloat(Object receiver,
long offset,
boolean condition,
Object locationIdentity) |
(package private) static int |
unsafeGetInt(Object receiver,
long offset,
boolean condition,
Object locationIdentity) |
(package private) static long |
unsafeGetLong(Object receiver,
long offset,
boolean condition,
Object locationIdentity) |
(package private) static Object |
unsafeGetObject(Object receiver,
long offset,
boolean condition,
Object locationIdentity) |
(package private) static void |
unsafePutDouble(Object receiver,
long offset,
double value,
Object locationIdentity) |
(package private) static void |
unsafePutFloat(Object receiver,
long offset,
float value,
Object locationIdentity) |
(package private) static void |
unsafePutInt(Object receiver,
long offset,
int value,
Object locationIdentity) |
(package private) static void |
unsafePutLong(Object receiver,
long offset,
long value,
Object locationIdentity) |
(package private) static void |
unsafePutObject(Object receiver,
long offset,
Object value,
Object locationIdentity) |
private void |
verifyGet(int slotIndex,
byte tag) |
private void |
verifySet(int slotIndex,
byte tag) |
private final com.oracle.truffle.api.frame.FrameDescriptor descriptor
private long[] primitiveLocals
private byte[] tags
public static final byte OBJECT_TAG
public static final byte ILLEGAL_TAG
public static final byte LONG_TAG
public static final byte INT_TAG
public static final byte DOUBLE_TAG
public static final byte FLOAT_TAG
public static final byte BOOLEAN_TAG
public static final byte BYTE_TAG
private static final sun.misc.Unsafe UNSAFE
public FrameWithoutBoxing(com.oracle.truffle.api.frame.FrameDescriptor descriptor, Object[] arguments)
public Object[] getArguments()
getArguments
in interface com.oracle.truffle.api.frame.Frame
public com.oracle.truffle.api.frame.MaterializedFrame materialize()
materialize
in interface com.oracle.truffle.api.frame.Frame
public Object getObject(com.oracle.truffle.api.frame.FrameSlot slot) throws com.oracle.truffle.api.frame.FrameSlotTypeException
getObject
in interface com.oracle.truffle.api.frame.Frame
com.oracle.truffle.api.frame.FrameSlotTypeException
private long[] getPrimitiveLocals()
private byte[] getTags()
private Object getObjectUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot)
public void setObject(com.oracle.truffle.api.frame.FrameSlot slot, Object value)
setObject
in interface com.oracle.truffle.api.frame.Frame
private void setObjectUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot, Object value)
public byte getByte(com.oracle.truffle.api.frame.FrameSlot slot) throws com.oracle.truffle.api.frame.FrameSlotTypeException
getByte
in interface com.oracle.truffle.api.frame.Frame
com.oracle.truffle.api.frame.FrameSlotTypeException
private byte getByteUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot)
public void setByte(com.oracle.truffle.api.frame.FrameSlot slot, byte value)
setByte
in interface com.oracle.truffle.api.frame.Frame
private void setByteUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot, byte value)
public boolean getBoolean(com.oracle.truffle.api.frame.FrameSlot slot) throws com.oracle.truffle.api.frame.FrameSlotTypeException
getBoolean
in interface com.oracle.truffle.api.frame.Frame
com.oracle.truffle.api.frame.FrameSlotTypeException
private boolean getBooleanUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot)
public void setBoolean(com.oracle.truffle.api.frame.FrameSlot slot, boolean value)
setBoolean
in interface com.oracle.truffle.api.frame.Frame
private void setBooleanUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot, boolean value)
public float getFloat(com.oracle.truffle.api.frame.FrameSlot slot) throws com.oracle.truffle.api.frame.FrameSlotTypeException
getFloat
in interface com.oracle.truffle.api.frame.Frame
com.oracle.truffle.api.frame.FrameSlotTypeException
private float getFloatUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot)
public void setFloat(com.oracle.truffle.api.frame.FrameSlot slot, float value)
setFloat
in interface com.oracle.truffle.api.frame.Frame
private void setFloatUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot, float value)
public long getLong(com.oracle.truffle.api.frame.FrameSlot slot) throws com.oracle.truffle.api.frame.FrameSlotTypeException
getLong
in interface com.oracle.truffle.api.frame.Frame
com.oracle.truffle.api.frame.FrameSlotTypeException
private long getLongUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot)
public void setLong(com.oracle.truffle.api.frame.FrameSlot slot, long value)
setLong
in interface com.oracle.truffle.api.frame.Frame
private void setLongUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot, long value)
public int getInt(com.oracle.truffle.api.frame.FrameSlot slot) throws com.oracle.truffle.api.frame.FrameSlotTypeException
getInt
in interface com.oracle.truffle.api.frame.Frame
com.oracle.truffle.api.frame.FrameSlotTypeException
private int getIntUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot)
public void setInt(com.oracle.truffle.api.frame.FrameSlot slot, int value)
setInt
in interface com.oracle.truffle.api.frame.Frame
private void setIntUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot, int value)
public double getDouble(com.oracle.truffle.api.frame.FrameSlot slot) throws com.oracle.truffle.api.frame.FrameSlotTypeException
getDouble
in interface com.oracle.truffle.api.frame.Frame
com.oracle.truffle.api.frame.FrameSlotTypeException
private double getDoubleUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot)
public void setDouble(com.oracle.truffle.api.frame.FrameSlot slot, double value)
setDouble
in interface com.oracle.truffle.api.frame.Frame
private void setDoubleUnsafe(int slotIndex, com.oracle.truffle.api.frame.FrameSlot slot, double value)
public com.oracle.truffle.api.frame.FrameDescriptor getFrameDescriptor()
getFrameDescriptor
in interface com.oracle.truffle.api.frame.Frame
private void verifySet(int slotIndex, byte tag)
private void verifyGet(int slotIndex, byte tag) throws com.oracle.truffle.api.frame.FrameSlotTypeException
com.oracle.truffle.api.frame.FrameSlotTypeException
private void checkSlotIndex(int slotIndex)
private static long getPrimitiveOffset(int slotIndex)
public Object getValue(com.oracle.truffle.api.frame.FrameSlot slot)
getValue
in interface com.oracle.truffle.api.frame.Frame
private boolean resize()
private byte getTag(com.oracle.truffle.api.frame.FrameSlot slot)
public boolean isObject(com.oracle.truffle.api.frame.FrameSlot slot)
isObject
in interface com.oracle.truffle.api.frame.Frame
public boolean isByte(com.oracle.truffle.api.frame.FrameSlot slot)
isByte
in interface com.oracle.truffle.api.frame.Frame
public boolean isBoolean(com.oracle.truffle.api.frame.FrameSlot slot)
isBoolean
in interface com.oracle.truffle.api.frame.Frame
public boolean isInt(com.oracle.truffle.api.frame.FrameSlot slot)
isInt
in interface com.oracle.truffle.api.frame.Frame
public boolean isLong(com.oracle.truffle.api.frame.FrameSlot slot)
isLong
in interface com.oracle.truffle.api.frame.Frame
public boolean isFloat(com.oracle.truffle.api.frame.FrameSlot slot)
isFloat
in interface com.oracle.truffle.api.frame.Frame
public boolean isDouble(com.oracle.truffle.api.frame.FrameSlot slot)
isDouble
in interface com.oracle.truffle.api.frame.Frame
static <T> T unsafeCast(Object value, Class<T> type, boolean condition, boolean nonNull)
static int unsafeGetInt(Object receiver, long offset, boolean condition, Object locationIdentity)
static long unsafeGetLong(Object receiver, long offset, boolean condition, Object locationIdentity)
static float unsafeGetFloat(Object receiver, long offset, boolean condition, Object locationIdentity)
static double unsafeGetDouble(Object receiver, long offset, boolean condition, Object locationIdentity)
static Object unsafeGetObject(Object receiver, long offset, boolean condition, Object locationIdentity)
static void unsafePutInt(Object receiver, long offset, int value, Object locationIdentity)
static void unsafePutLong(Object receiver, long offset, long value, Object locationIdentity)
static void unsafePutFloat(Object receiver, long offset, float value, Object locationIdentity)
static void unsafePutDouble(Object receiver, long offset, double value, Object locationIdentity)
static void unsafePutObject(Object receiver, long offset, Object value, Object locationIdentity)
private static sun.misc.Unsafe getUnsafe()