Commit 87aeb5eb authored by Georg Neis's avatar Georg Neis Committed by Commit Bot

[bigint,compiler] Add new BigInt bitset type.

R=jarin@chromium.org

Bug: v8:6791
Change-Id: I8519d0a9afdb457398ff428d0d3ec0734306052b
Reviewed-on: https://chromium-review.googlesource.com/765947Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49342}
parent a3f983a4
......@@ -1064,6 +1064,7 @@ Type* JSType(Type* type) {
if (type->Is(Type::Boolean())) return Type::Boolean();
if (type->Is(Type::String())) return Type::String();
if (type->Is(Type::Number())) return Type::Number();
if (type->Is(Type::BigInt())) return Type::BigInt();
if (type->Is(Type::Undefined())) return Type::Undefined();
if (type->Is(Type::Null())) return Type::Null();
if (type->Is(Type::Symbol())) return Type::Symbol();
......
......@@ -179,6 +179,8 @@ Type::bitset BitsetType::Lub(i::Map* map) {
return kInternalizedSeqString;
case SYMBOL_TYPE:
return kSymbol;
case BIGINT_TYPE:
return kBigInt;
case ODDBALL_TYPE: {
Heap* heap = map->GetHeap();
if (map == heap->undefined_map()) return kUndefined;
......@@ -281,7 +283,6 @@ Type::bitset BitsetType::Lub(i::Map* map) {
case MODULE_TYPE:
case MODULE_INFO_ENTRY_TYPE:
case CELL_TYPE:
case BIGINT_TYPE:
return kOtherInternal;
// Remaining instance types are unsupported for now. If any of them do
......
......@@ -129,6 +129,7 @@ namespace compiler {
V(OtherInternal, 1u << 25) \
V(ExternalPointer, 1u << 26) \
V(Array, 1u << 27) \
V(BigInt, 1u << 28) \
\
V(Signed31, kUnsigned30 | kNegative31) \
V(Signed32, kSigned31 | kOtherUnsigned31 | \
......@@ -148,6 +149,7 @@ namespace compiler {
V(OrderedNumber, kPlainNumber | kMinusZero) \
V(MinusZeroOrNaN, kMinusZero | kNaN) \
V(Number, kOrderedNumber | kNaN) \
V(Numeric, kNumber | kBigInt) \
V(InternalizedString, kInternalizedNonSeqString | \
kInternalizedSeqString) \
V(OtherString, kOtherNonSeqString | kOtherSeqString) \
......@@ -174,7 +176,7 @@ namespace compiler {
kNumber | kNullOrUndefined | kBoolean) \
V(PlainPrimitive, kNumberOrString | kBoolean | \
kNullOrUndefined) \
V(Primitive, kSymbol | kPlainPrimitive) \
V(Primitive, kSymbol | kBigInt | kPlainPrimitive) \
V(OtherUndetectableOrUndefined, kOtherUndetectable | kUndefined) \
V(Proxy, kCallableProxy | kOtherProxy) \
V(ArrayOrOtherObject, kArray | kOtherObject) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment