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

Unified Diff: src/builtins/builtins-number.cc

Issue 2543873003: [stubs] Use CSA::IsHeapNumberMap() instead of manual map comparing. (Closed)
Patch Set: Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: src/builtins/builtins-number.cc
diff --git a/src/builtins/builtins-number.cc b/src/builtins/builtins-number.cc
index 098cac92171ed8ca10efe648317af3189908bb6b..f09bcb2819345d9f044e8969f31946854848cc99 100644
--- a/src/builtins/builtins-number.cc
+++ b/src/builtins/builtins-number.cc
@@ -989,9 +989,7 @@ TF_BUILTIN(Subtract, CodeStubAssembler) {
// Check if the {lhs} is a HeapNumber.
Label if_lhsisnumber(this), if_lhsisnotnumber(this, Label::kDeferred);
- Node* number_map = HeapNumberMapConstant();
- Branch(WordEqual(lhs_map, number_map), &if_lhsisnumber,
- &if_lhsisnotnumber);
+ Branch(IsHeapNumberMap(lhs_map), &if_lhsisnumber, &if_lhsisnotnumber);
Bind(&if_lhsisnumber);
{
@@ -1014,8 +1012,7 @@ TF_BUILTIN(Subtract, CodeStubAssembler) {
// Check if the {rhs} is a HeapNumber.
Label if_rhsisnumber(this), if_rhsisnotnumber(this, Label::kDeferred);
- Branch(WordEqual(rhs_map, number_map), &if_rhsisnumber,
- &if_rhsisnotnumber);
+ Branch(IsHeapNumberMap(rhs_map), &if_rhsisnumber, &if_rhsisnotnumber);
Bind(&if_rhsisnumber);
{
@@ -1067,8 +1064,6 @@ TF_BUILTIN(Multiply, CodeStubAssembler) {
Variable var_lhs_float64(this, MachineRepresentation::kFloat64),
var_rhs_float64(this, MachineRepresentation::kFloat64);
- Node* number_map = HeapNumberMapConstant();
-
// We might need to loop one or two times due to ToNumber conversions.
Variable var_lhs(this, MachineRepresentation::kTagged),
var_rhs(this, MachineRepresentation::kTagged),
@@ -1105,8 +1100,7 @@ TF_BUILTIN(Multiply, CodeStubAssembler) {
// Check if {rhs} is a HeapNumber.
Label rhs_is_number(this), rhs_is_not_number(this, Label::kDeferred);
- Branch(WordEqual(rhs_map, number_map), &rhs_is_number,
- &rhs_is_not_number);
+ Branch(IsHeapNumberMap(rhs_map), &rhs_is_number, &rhs_is_not_number);
Bind(&rhs_is_number);
{
@@ -1132,8 +1126,7 @@ TF_BUILTIN(Multiply, CodeStubAssembler) {
// Check if {lhs} is a HeapNumber.
Label lhs_is_number(this), lhs_is_not_number(this, Label::kDeferred);
- Branch(WordEqual(lhs_map, number_map), &lhs_is_number,
- &lhs_is_not_number);
+ Branch(IsHeapNumberMap(lhs_map), &lhs_is_number, &lhs_is_not_number);
Bind(&lhs_is_number);
{
@@ -1155,8 +1148,7 @@ TF_BUILTIN(Multiply, CodeStubAssembler) {
// Check if {rhs} is a HeapNumber.
Label rhs_is_number(this), rhs_is_not_number(this, Label::kDeferred);
- Branch(WordEqual(rhs_map, number_map), &rhs_is_number,
- &rhs_is_not_number);
+ Branch(IsHeapNumberMap(rhs_map), &rhs_is_number, &rhs_is_not_number);
Bind(&rhs_is_number);
{
@@ -1209,8 +1201,6 @@ TF_BUILTIN(Divide, CodeStubAssembler) {
Variable var_dividend_float64(this, MachineRepresentation::kFloat64),
var_divisor_float64(this, MachineRepresentation::kFloat64);
- Node* number_map = HeapNumberMapConstant();
-
// We might need to loop one or two times due to ToNumber conversions.
Variable var_dividend(this, MachineRepresentation::kTagged),
var_divisor(this, MachineRepresentation::kTagged),
@@ -1299,7 +1289,7 @@ TF_BUILTIN(Divide, CodeStubAssembler) {
// Check if {divisor} is a HeapNumber.
Label divisor_is_number(this),
divisor_is_not_number(this, Label::kDeferred);
- Branch(WordEqual(divisor_map, number_map), &divisor_is_number,
+ Branch(IsHeapNumberMap(divisor_map), &divisor_is_number,
&divisor_is_not_number);
Bind(&divisor_is_number);
@@ -1328,7 +1318,7 @@ TF_BUILTIN(Divide, CodeStubAssembler) {
// Check if {dividend} is a HeapNumber.
Label dividend_is_number(this),
dividend_is_not_number(this, Label::kDeferred);
- Branch(WordEqual(dividend_map, number_map), &dividend_is_number,
+ Branch(IsHeapNumberMap(dividend_map), &dividend_is_number,
&dividend_is_not_number);
Bind(&dividend_is_number);
@@ -1353,7 +1343,7 @@ TF_BUILTIN(Divide, CodeStubAssembler) {
// Check if {divisor} is a HeapNumber.
Label divisor_is_number(this),
divisor_is_not_number(this, Label::kDeferred);
- Branch(WordEqual(divisor_map, number_map), &divisor_is_number,
+ Branch(IsHeapNumberMap(divisor_map), &divisor_is_number,
&divisor_is_not_number);
Bind(&divisor_is_number);
@@ -1409,8 +1399,6 @@ TF_BUILTIN(Modulus, CodeStubAssembler) {
Variable var_dividend_float64(this, MachineRepresentation::kFloat64),
var_divisor_float64(this, MachineRepresentation::kFloat64);
- Node* number_map = HeapNumberMapConstant();
-
// We might need to loop one or two times due to ToNumber conversions.
Variable var_dividend(this, MachineRepresentation::kTagged),
var_divisor(this, MachineRepresentation::kTagged);
@@ -1447,7 +1435,7 @@ TF_BUILTIN(Modulus, CodeStubAssembler) {
// Check if {divisor} is a HeapNumber.
Label divisor_is_number(this),
divisor_is_not_number(this, Label::kDeferred);
- Branch(WordEqual(divisor_map, number_map), &divisor_is_number,
+ Branch(IsHeapNumberMap(divisor_map), &divisor_is_number,
&divisor_is_not_number);
Bind(&divisor_is_number);
@@ -1476,7 +1464,7 @@ TF_BUILTIN(Modulus, CodeStubAssembler) {
// Check if {dividend} is a HeapNumber.
Label dividend_is_number(this),
dividend_is_not_number(this, Label::kDeferred);
- Branch(WordEqual(dividend_map, number_map), &dividend_is_number,
+ Branch(IsHeapNumberMap(dividend_map), &dividend_is_number,
&dividend_is_not_number);
Bind(&dividend_is_number);
@@ -1501,7 +1489,7 @@ TF_BUILTIN(Modulus, CodeStubAssembler) {
// Check if {divisor} is a HeapNumber.
Label divisor_is_number(this),
divisor_is_not_number(this, Label::kDeferred);
- Branch(WordEqual(divisor_map, number_map), &divisor_is_number,
+ Branch(IsHeapNumberMap(divisor_map), &divisor_is_number,
&divisor_is_not_number);
Bind(&divisor_is_number);

Powered by Google App Engine
This is Rietveld 408576698