Index: src/code-stub-assembler.cc |
diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc |
index a656a963c64c4096559ff1d867481f99dff0a6aa..0f3d9daa92b67804da0fef0ed4261f494ee9ab7b 100644 |
--- a/src/code-stub-assembler.cc |
+++ b/src/code-stub-assembler.cc |
@@ -726,17 +726,13 @@ Node* CodeStubAssembler::TruncateTaggedToWord32(Node* context, Node* value) { |
return var_result.value(); |
} |
-Node* CodeStubAssembler::TruncateFloat64ToInt32(Node* value) { |
- return TruncateFloat64ToInt32JavaScript(value); |
-} |
- |
Node* CodeStubAssembler::TruncateHeapNumberValueToWord32(Node* object) { |
Node* value = LoadHeapNumberValue(object); |
- return TruncateFloat64ToInt32(value); |
+ return TruncateFloat64ToWord32(value); |
} |
Node* CodeStubAssembler::ChangeFloat64ToTagged(Node* value) { |
- Node* value32 = TruncateFloat64ToInt32RoundToZero(value); |
+ Node* value32 = RoundFloat64ToInt32(value); |
Node* value64 = ChangeInt32ToFloat64(value32); |
Label if_valueisint32(this), if_valueisheapnumber(this), if_join(this); |
@@ -745,16 +741,9 @@ Node* CodeStubAssembler::ChangeFloat64ToTagged(Node* value) { |
Branch(Float64Equal(value, value64), &if_valueisequal, &if_valueisnotequal); |
Bind(&if_valueisequal); |
{ |
- Label if_valueiszero(this), if_valueisnotzero(this); |
- Branch(Float64Equal(value, Float64Constant(0.0)), &if_valueiszero, |
- &if_valueisnotzero); |
- |
- Bind(&if_valueiszero); |
+ GotoUnless(Word32Equal(value32, Int32Constant(0)), &if_valueisint32); |
BranchIfInt32LessThan(Float64ExtractHighWord32(value), Int32Constant(0), |
&if_valueisheapnumber, &if_valueisint32); |
- |
- Bind(&if_valueisnotzero); |
- Goto(&if_valueisint32); |
} |
Bind(&if_valueisnotequal); |
Goto(&if_valueisheapnumber); |