| OLD | NEW |
| 1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 2441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2452 } | 2452 } |
| 2453 | 2453 |
| 2454 // Resolve the call. | 2454 // Resolve the call. |
| 2455 Result result = | 2455 Result result = |
| 2456 frame_->CallRuntime(Runtime::kResolvePossiblyDirectEval, 2); | 2456 frame_->CallRuntime(Runtime::kResolvePossiblyDirectEval, 2); |
| 2457 | 2457 |
| 2458 // Touch up the stack with the right values for the function and the | 2458 // Touch up the stack with the right values for the function and the |
| 2459 // receiver. Use a scratch register to avoid destroying the result. | 2459 // receiver. Use a scratch register to avoid destroying the result. |
| 2460 Result scratch = allocator_->Allocate(); | 2460 Result scratch = allocator_->Allocate(); |
| 2461 ASSERT(scratch.is_valid()); | 2461 ASSERT(scratch.is_valid()); |
| 2462 __ movl(scratch.reg(), | 2462 __ movq(scratch.reg(), |
| 2463 FieldOperand(result.reg(), FixedArray::OffsetOfElementAt(0))); | 2463 FieldOperand(result.reg(), FixedArray::OffsetOfElementAt(0))); |
| 2464 frame_->SetElementAt(arg_count + 1, &scratch); | 2464 frame_->SetElementAt(arg_count + 1, &scratch); |
| 2465 | 2465 |
| 2466 // We can reuse the result register now. | 2466 // We can reuse the result register now. |
| 2467 frame_->Spill(result.reg()); | 2467 frame_->Spill(result.reg()); |
| 2468 __ movl(result.reg(), | 2468 __ movq(result.reg(), |
| 2469 FieldOperand(result.reg(), FixedArray::OffsetOfElementAt(1))); | 2469 FieldOperand(result.reg(), FixedArray::OffsetOfElementAt(1))); |
| 2470 frame_->SetElementAt(arg_count, &result); | 2470 frame_->SetElementAt(arg_count, &result); |
| 2471 | 2471 |
| 2472 // Call the function. | 2472 // Call the function. |
| 2473 CodeForSourcePosition(node->position()); | 2473 CodeForSourcePosition(node->position()); |
| 2474 InLoopFlag in_loop = loop_nesting() > 0 ? IN_LOOP : NOT_IN_LOOP; | 2474 InLoopFlag in_loop = loop_nesting() > 0 ? IN_LOOP : NOT_IN_LOOP; |
| 2475 CallFunctionStub call_function(arg_count, in_loop); | 2475 CallFunctionStub call_function(arg_count, in_loop); |
| 2476 result = frame_->CallStub(&call_function, arg_count + 1); | 2476 result = frame_->CallStub(&call_function, arg_count + 1); |
| 2477 | 2477 |
| 2478 // Restore the context and overwrite the function on the stack with | 2478 // Restore the context and overwrite the function on the stack with |
| (...skipping 4456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6935 int CompareStub::MinorKey() { | 6935 int CompareStub::MinorKey() { |
| 6936 // Encode the two parameters in a unique 16 bit value. | 6936 // Encode the two parameters in a unique 16 bit value. |
| 6937 ASSERT(static_cast<unsigned>(cc_) < (1 << 15)); | 6937 ASSERT(static_cast<unsigned>(cc_) < (1 << 15)); |
| 6938 return (static_cast<unsigned>(cc_) << 1) | (strict_ ? 1 : 0); | 6938 return (static_cast<unsigned>(cc_) << 1) | (strict_ ? 1 : 0); |
| 6939 } | 6939 } |
| 6940 | 6940 |
| 6941 | 6941 |
| 6942 #undef __ | 6942 #undef __ |
| 6943 | 6943 |
| 6944 } } // namespace v8::internal | 6944 } } // namespace v8::internal |
| OLD | NEW |