Commit 739b99d5 authored by Ross McIlroy's avatar Ross McIlroy Committed by Commit Bot

[CSA][cleanup] TNodify keyed-store-generic.

Also TNodify TypeOf in code-stub-assembler.

BUG=v8:6949, v8:9396

Change-Id: I12a66a077fe82df44ce3c46a87f1fda754be9423
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1803334Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63757}
parent e651ab6f
...@@ -12980,8 +12980,8 @@ TNode<Oddball> CodeStubAssembler::HasProperty(SloppyTNode<Context> context, ...@@ -12980,8 +12980,8 @@ TNode<Oddball> CodeStubAssembler::HasProperty(SloppyTNode<Context> context,
return result.value(); return result.value();
} }
Node* CodeStubAssembler::Typeof(Node* value) { TNode<String> CodeStubAssembler::Typeof(SloppyTNode<Object> value) {
VARIABLE(result_var, MachineRepresentation::kTagged); TVARIABLE(String, result_var);
Label return_number(this, Label::kDeferred), if_oddball(this), Label return_number(this, Label::kDeferred), if_oddball(this),
return_function(this), return_undefined(this), return_object(this), return_function(this), return_undefined(this), return_object(this),
...@@ -12989,7 +12989,8 @@ Node* CodeStubAssembler::Typeof(Node* value) { ...@@ -12989,7 +12989,8 @@ Node* CodeStubAssembler::Typeof(Node* value) {
GotoIf(TaggedIsSmi(value), &return_number); GotoIf(TaggedIsSmi(value), &return_number);
TNode<Map> map = LoadMap(value); TNode<HeapObject> value_heap_object = CAST(value);
TNode<Map> map = LoadMap(value_heap_object);
GotoIf(IsHeapNumberMap(map), &return_number); GotoIf(IsHeapNumberMap(map), &return_number);
...@@ -13015,49 +13016,50 @@ Node* CodeStubAssembler::Typeof(Node* value) { ...@@ -13015,49 +13016,50 @@ Node* CodeStubAssembler::Typeof(Node* value) {
GotoIf(IsBigIntInstanceType(instance_type), &return_bigint); GotoIf(IsBigIntInstanceType(instance_type), &return_bigint);
CSA_ASSERT(this, InstanceTypeEqual(instance_type, SYMBOL_TYPE)); CSA_ASSERT(this, InstanceTypeEqual(instance_type, SYMBOL_TYPE));
result_var.Bind(HeapConstant(isolate()->factory()->symbol_string())); result_var = HeapConstant(isolate()->factory()->symbol_string());
Goto(&return_result); Goto(&return_result);
BIND(&return_number); BIND(&return_number);
{ {
result_var.Bind(HeapConstant(isolate()->factory()->number_string())); result_var = HeapConstant(isolate()->factory()->number_string());
Goto(&return_result); Goto(&return_result);
} }
BIND(&if_oddball); BIND(&if_oddball);
{ {
TNode<Object> type = LoadObjectField(value, Oddball::kTypeOfOffset); TNode<String> type =
result_var.Bind(type); CAST(LoadObjectField(value_heap_object, Oddball::kTypeOfOffset));
result_var = type;
Goto(&return_result); Goto(&return_result);
} }
BIND(&return_function); BIND(&return_function);
{ {
result_var.Bind(HeapConstant(isolate()->factory()->function_string())); result_var = HeapConstant(isolate()->factory()->function_string());
Goto(&return_result); Goto(&return_result);
} }
BIND(&return_undefined); BIND(&return_undefined);
{ {
result_var.Bind(HeapConstant(isolate()->factory()->undefined_string())); result_var = HeapConstant(isolate()->factory()->undefined_string());
Goto(&return_result); Goto(&return_result);
} }
BIND(&return_object); BIND(&return_object);
{ {
result_var.Bind(HeapConstant(isolate()->factory()->object_string())); result_var = HeapConstant(isolate()->factory()->object_string());
Goto(&return_result); Goto(&return_result);
} }
BIND(&return_string); BIND(&return_string);
{ {
result_var.Bind(HeapConstant(isolate()->factory()->string_string())); result_var = HeapConstant(isolate()->factory()->string_string());
Goto(&return_result); Goto(&return_result);
} }
BIND(&return_bigint); BIND(&return_bigint);
{ {
result_var.Bind(HeapConstant(isolate()->factory()->bigint_string())); result_var = HeapConstant(isolate()->factory()->bigint_string());
Goto(&return_result); Goto(&return_result);
} }
......
...@@ -3481,7 +3481,7 @@ class V8_EXPORT_PRIVATE CodeStubAssembler ...@@ -3481,7 +3481,7 @@ class V8_EXPORT_PRIVATE CodeStubAssembler
HasPropertyLookupMode::kHasProperty); HasPropertyLookupMode::kHasProperty);
} }
Node* Typeof(Node* value); TNode<String> Typeof(SloppyTNode<Object> value);
TNode<Object> GetSuperConstructor(SloppyTNode<Context> context, TNode<Object> GetSuperConstructor(SloppyTNode<Context> context,
SloppyTNode<JSFunction> active_function); SloppyTNode<JSFunction> active_function);
......
This diff is collapsed.
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