| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 5324ef39cb320f0662ffbefec360cf87a4bf93f8..25fc74973a8a721c0c3afdffbd76722d6026c5bc 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -10509,6 +10509,35 @@ void HOptimizedGraphBuilder::GenerateRegExpExec(CallRuntime* call) {
|
| }
|
|
|
|
|
| +void HOptimizedGraphBuilder::GenerateDoubleLo(CallRuntime* call) {
|
| + ASSERT_EQ(1, call->arguments()->length());
|
| + CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
|
| + HValue* value = Pop();
|
| + HInstruction* result = NewUncasted<HDoubleBits>(value, HDoubleBits::LOW);
|
| + return ast_context()->ReturnInstruction(result, call->id());
|
| +}
|
| +
|
| +
|
| +void HOptimizedGraphBuilder::GenerateDoubleHi(CallRuntime* call) {
|
| + ASSERT_EQ(1, call->arguments()->length());
|
| + CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
|
| + HValue* value = Pop();
|
| + HInstruction* result = NewUncasted<HDoubleBits>(value, HDoubleBits::HIGH);
|
| + return ast_context()->ReturnInstruction(result, call->id());
|
| +}
|
| +
|
| +
|
| +void HOptimizedGraphBuilder::GenerateConstructDouble(CallRuntime* call) {
|
| + ASSERT_EQ(2, call->arguments()->length());
|
| + CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
|
| + CHECK_ALIVE(VisitForValue(call->arguments()->at(1)));
|
| + HValue* lo = Pop();
|
| + HValue* hi = Pop();
|
| + HInstruction* result = NewUncasted<HConstructDouble>(hi, lo);
|
| + return ast_context()->ReturnInstruction(result, call->id());
|
| +}
|
| +
|
| +
|
| // Construct a RegExp exec result with two in-object properties.
|
| void HOptimizedGraphBuilder::GenerateRegExpConstructResult(CallRuntime* call) {
|
| ASSERT_EQ(3, call->arguments()->length());
|
|
|