< prev index next >
src/jdk/nashorn/internal/ir/Symbol.java
Print this page
@@ -80,18 +80,16 @@
public static final int IS_PROGRAM_LEVEL = 1 << 9;
/** Are this symbols' values stored in local variable slots? */
public static final int HAS_SLOT = 1 << 10;
/** Is this symbol known to store an int value ? */
public static final int HAS_INT_VALUE = 1 << 11;
- /** Is this symbol known to store a long value ? */
- public static final int HAS_LONG_VALUE = 1 << 12;
/** Is this symbol known to store a double value ? */
- public static final int HAS_DOUBLE_VALUE = 1 << 13;
+ public static final int HAS_DOUBLE_VALUE = 1 << 12;
/** Is this symbol known to store an object value ? */
- public static final int HAS_OBJECT_VALUE = 1 << 14;
+ public static final int HAS_OBJECT_VALUE = 1 << 13;
/** Is this symbol seen a declaration? Used for block scoped LET and CONST symbols only. */
- public static final int HAS_BEEN_DECLARED = 1 << 15;
+ public static final int HAS_BEEN_DECLARED = 1 << 14;
/** Null or name identifying symbol. */
private final String name;
/** Symbol flags. */
@@ -254,11 +252,10 @@
*
* @return Number of slots.
*/
public int slotCount() {
return ((flags & HAS_INT_VALUE) == 0 ? 0 : 1) +
- ((flags & HAS_LONG_VALUE) == 0 ? 0 : 2) +
((flags & HAS_DOUBLE_VALUE) == 0 ? 0 : 2) +
((flags & HAS_OBJECT_VALUE) == 0 ? 0 : 1);
}
private boolean isSlotted() {
@@ -276,11 +273,10 @@
sb.append(' ').
append('(').
append("slot=").
append(firstSlot).append(' ');
if((flags & HAS_INT_VALUE) != 0) { sb.append('I'); }
- if((flags & HAS_LONG_VALUE) != 0) { sb.append('J'); }
if((flags & HAS_DOUBLE_VALUE) != 0) { sb.append('D'); }
if((flags & HAS_OBJECT_VALUE) != 0) { sb.append('O'); }
sb.append(')');
}
@@ -571,15 +567,10 @@
if(type.isBoolean() || type.isInteger()) {
assert (flags & HAS_INT_VALUE) != 0;
return typeSlot;
}
typeSlot += ((flags & HAS_INT_VALUE) == 0 ? 0 : 1);
- if(type.isLong()) {
- assert (flags & HAS_LONG_VALUE) != 0;
- return typeSlot;
- }
- typeSlot += ((flags & HAS_LONG_VALUE) == 0 ? 0 : 2);
if(type.isNumber()) {
assert (flags & HAS_DOUBLE_VALUE) != 0;
return typeSlot;
}
assert type.isObject();
@@ -593,12 +584,10 @@
* @return true if this symbol has a local variable slot for storing a value of specific type.
*/
public boolean hasSlotFor(final Type type) {
if(type.isBoolean() || type.isInteger()) {
return (flags & HAS_INT_VALUE) != 0;
- } else if(type.isLong()) {
- return (flags & HAS_LONG_VALUE) != 0;
} else if(type.isNumber()) {
return (flags & HAS_DOUBLE_VALUE) != 0;
}
assert type.isObject();
return (flags & HAS_OBJECT_VALUE) != 0;
@@ -609,12 +598,10 @@
* @param type the type
*/
public void setHasSlotFor(final Type type) {
if(type.isBoolean() || type.isInteger()) {
setFlag(HAS_INT_VALUE);
- } else if(type.isLong()) {
- setFlag(HAS_LONG_VALUE);
} else if(type.isNumber()) {
setFlag(HAS_DOUBLE_VALUE);
} else {
assert type.isObject();
setFlag(HAS_OBJECT_VALUE);
< prev index next >