summaryrefslogtreecommitdiff
path: root/deps/v8/src/torque/instructions.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/torque/instructions.cc')
-rw-r--r--deps/v8/src/torque/instructions.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/deps/v8/src/torque/instructions.cc b/deps/v8/src/torque/instructions.cc
index 36a22ee8fa..5bc2149f41 100644
--- a/deps/v8/src/torque/instructions.cc
+++ b/deps/v8/src/torque/instructions.cc
@@ -133,7 +133,7 @@ void CallCsaMacroInstruction::TypeInstruction(Stack<const Type*>* stack,
if (catch_block) {
Stack<const Type*> catch_stack = *stack;
- catch_stack.Push(TypeOracle::GetObjectType());
+ catch_stack.Push(TypeOracle::GetJSAnyType());
(*catch_block)->SetInputTypes(catch_stack);
}
@@ -170,7 +170,7 @@ void CallCsaMacroAndBranchInstruction::TypeInstruction(
if (catch_block) {
Stack<const Type*> catch_stack = *stack;
- catch_stack.Push(TypeOracle::GetObjectType());
+ catch_stack.Push(TypeOracle::GetJSAnyType());
(*catch_block)->SetInputTypes(catch_stack);
}
@@ -201,7 +201,7 @@ void CallBuiltinInstruction::TypeInstruction(Stack<const Type*>* stack,
if (catch_block) {
Stack<const Type*> catch_stack = *stack;
- catch_stack.Push(TypeOracle::GetObjectType());
+ catch_stack.Push(TypeOracle::GetJSAnyType());
(*catch_block)->SetInputTypes(catch_stack);
}
@@ -236,7 +236,7 @@ void CallRuntimeInstruction::TypeInstruction(Stack<const Type*>* stack,
if (catch_block) {
Stack<const Type*> catch_stack = *stack;
- catch_stack.Push(TypeOracle::GetObjectType());
+ catch_stack.Push(TypeOracle::GetJSAnyType());
(*catch_block)->SetInputTypes(catch_stack);
}
@@ -292,15 +292,14 @@ void UnsafeCastInstruction::TypeInstruction(Stack<const Type*>* stack,
void CreateFieldReferenceInstruction::TypeInstruction(
Stack<const Type*>* stack, ControlFlowGraph* cfg) const {
- ExpectSubtype(stack->Pop(), class_type);
- stack->Push(TypeOracle::GetHeapObjectType());
+ ExpectSubtype(stack->Top(), type);
stack->Push(TypeOracle::GetIntPtrType());
}
void LoadReferenceInstruction::TypeInstruction(Stack<const Type*>* stack,
ControlFlowGraph* cfg) const {
ExpectType(TypeOracle::GetIntPtrType(), stack->Pop());
- ExpectType(TypeOracle::GetHeapObjectType(), stack->Pop());
+ ExpectSubtype(stack->Pop(), TypeOracle::GetHeapObjectType());
DCHECK_EQ(std::vector<const Type*>{type}, LowerType(type));
stack->Push(type);
}
@@ -309,7 +308,7 @@ void StoreReferenceInstruction::TypeInstruction(Stack<const Type*>* stack,
ControlFlowGraph* cfg) const {
ExpectSubtype(stack->Pop(), type);
ExpectType(TypeOracle::GetIntPtrType(), stack->Pop());
- ExpectType(TypeOracle::GetHeapObjectType(), stack->Pop());
+ ExpectSubtype(stack->Pop(), TypeOracle::GetHeapObjectType());
}
bool CallRuntimeInstruction::IsBlockTerminator() const {