Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(314)

Side by Side Diff: src/builtins/builtins-array.cc

Issue 2364473006: [stubs] Extract ToInteger to CodeStubAssembler (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/builtins/builtins-sharedarraybuffer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/builtins/builtins.h" 5 #include "src/builtins/builtins.h"
6 #include "src/builtins/builtins-utils.h" 6 #include "src/builtins/builtins-utils.h"
7 7
8 #include "src/code-factory.h" 8 #include "src/code-factory.h"
9 #include "src/elements.h" 9 #include "src/elements.h"
10 10
(...skipping 1289 matching lines...) Expand 10 before | Expand all | Expand 10 after
1300 1300
1301 len_var.Bind(assembler->SmiToWord(len)); 1301 len_var.Bind(assembler->SmiToWord(len));
1302 assembler->Branch(assembler->WordEqual(len_var.value(), intptr_zero), 1302 assembler->Branch(assembler->WordEqual(len_var.value(), intptr_zero),
1303 &return_false, &init_k); 1303 &return_false, &init_k);
1304 } 1304 }
1305 1305
1306 assembler->Bind(&init_k); 1306 assembler->Bind(&init_k);
1307 { 1307 {
1308 Label done(assembler), init_k_smi(assembler), init_k_heap_num(assembler), 1308 Label done(assembler), init_k_smi(assembler), init_k_heap_num(assembler),
1309 init_k_zero(assembler), init_k_n(assembler); 1309 init_k_zero(assembler), init_k_n(assembler);
1310 Callable call_to_integer = CodeFactory::ToInteger(assembler->isolate()); 1310 Node* tagged_n = assembler->ToInteger(context, start_from);
1311 Node* tagged_n = assembler->CallStub(call_to_integer, context, start_from);
1312 1311
1313 assembler->Branch(assembler->WordIsSmi(tagged_n), &init_k_smi, 1312 assembler->Branch(assembler->WordIsSmi(tagged_n), &init_k_smi,
1314 &init_k_heap_num); 1313 &init_k_heap_num);
1315 1314
1316 assembler->Bind(&init_k_smi); 1315 assembler->Bind(&init_k_smi);
1317 { 1316 {
1318 start_from_var.Bind(assembler->SmiUntag(tagged_n)); 1317 start_from_var.Bind(assembler->SmiUntag(tagged_n));
1319 assembler->Goto(&init_k_n); 1318 assembler->Goto(&init_k_n);
1320 } 1319 }
1321 1320
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
1748 1747
1749 len_var.Bind(assembler->SmiToWord(len)); 1748 len_var.Bind(assembler->SmiToWord(len));
1750 assembler->Branch(assembler->WordEqual(len_var.value(), intptr_zero), 1749 assembler->Branch(assembler->WordEqual(len_var.value(), intptr_zero),
1751 &return_not_found, &init_k); 1750 &return_not_found, &init_k);
1752 } 1751 }
1753 1752
1754 assembler->Bind(&init_k); 1753 assembler->Bind(&init_k);
1755 { 1754 {
1756 Label done(assembler), init_k_smi(assembler), init_k_heap_num(assembler), 1755 Label done(assembler), init_k_smi(assembler), init_k_heap_num(assembler),
1757 init_k_zero(assembler), init_k_n(assembler); 1756 init_k_zero(assembler), init_k_n(assembler);
1758 Callable call_to_integer = CodeFactory::ToInteger(assembler->isolate()); 1757 Node* tagged_n = assembler->ToInteger(context, start_from);
1759 Node* tagged_n = assembler->CallStub(call_to_integer, context, start_from);
1760 1758
1761 assembler->Branch(assembler->WordIsSmi(tagged_n), &init_k_smi, 1759 assembler->Branch(assembler->WordIsSmi(tagged_n), &init_k_smi,
1762 &init_k_heap_num); 1760 &init_k_heap_num);
1763 1761
1764 assembler->Bind(&init_k_smi); 1762 assembler->Bind(&init_k_smi);
1765 { 1763 {
1766 start_from_var.Bind(assembler->SmiUntag(tagged_n)); 1764 start_from_var.Bind(assembler->SmiUntag(tagged_n));
1767 assembler->Goto(&init_k_n); 1765 assembler->Goto(&init_k_n);
1768 } 1766 }
1769 1767
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
2070 assembler->Bind(&return_not_found); 2068 assembler->Bind(&return_not_found);
2071 assembler->Return(assembler->NumberConstant(-1)); 2069 assembler->Return(assembler->NumberConstant(-1));
2072 2070
2073 assembler->Bind(&call_runtime); 2071 assembler->Bind(&call_runtime);
2074 assembler->Return(assembler->CallRuntime(Runtime::kArrayIndexOf, context, 2072 assembler->Return(assembler->CallRuntime(Runtime::kArrayIndexOf, context,
2075 array, search_element, start_from)); 2073 array, search_element, start_from));
2076 } 2074 }
2077 2075
2078 } // namespace internal 2076 } // namespace internal
2079 } // namespace v8 2077 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/builtins/builtins-sharedarraybuffer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698