OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 2541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2552 // Handle store cache miss. | 2552 // Handle store cache miss. |
2553 __ bind(&miss); | 2553 __ bind(&miss); |
2554 Handle<Code> ic(Builtins::builtin(Builtins::KeyedStoreIC_Miss)); | 2554 Handle<Code> ic(Builtins::builtin(Builtins::KeyedStoreIC_Miss)); |
2555 __ jmp(ic, RelocInfo::CODE_TARGET); | 2555 __ jmp(ic, RelocInfo::CODE_TARGET); |
2556 | 2556 |
2557 // Return the generated code. | 2557 // Return the generated code. |
2558 return GetCode(NORMAL, NULL); | 2558 return GetCode(NORMAL, NULL); |
2559 } | 2559 } |
2560 | 2560 |
2561 | 2561 |
| 2562 MaybeObject* KeyedStoreStubCompiler::CompileStorePixelArray( |
| 2563 JSObject* receiver) { |
| 2564 // ----------- S t a t e ------------- |
| 2565 // -- rax : value |
| 2566 // -- rcx : key |
| 2567 // -- rdx : receiver |
| 2568 // -- rsp[0] : return address |
| 2569 // ----------------------------------- |
| 2570 Label miss; |
| 2571 |
| 2572 // Check that the map matches. |
| 2573 __ CheckMap(rdx, Handle<Map>(receiver->map()), &miss, false); |
| 2574 |
| 2575 // Do the load. |
| 2576 GenerateFastPixelArrayStore(masm(), |
| 2577 rdx, |
| 2578 rcx, |
| 2579 rax, |
| 2580 rdi, |
| 2581 rbx, |
| 2582 true, |
| 2583 false, |
| 2584 &miss, |
| 2585 &miss, |
| 2586 NULL, |
| 2587 &miss); |
| 2588 |
| 2589 // Handle store cache miss. |
| 2590 __ bind(&miss); |
| 2591 Handle<Code> ic(Builtins::builtin(Builtins::KeyedStoreIC_Miss)); |
| 2592 __ jmp(ic, RelocInfo::CODE_TARGET); |
| 2593 |
| 2594 // Return the generated code. |
| 2595 return GetCode(NORMAL, NULL); |
| 2596 } |
| 2597 |
| 2598 |
2562 MaybeObject* LoadStubCompiler::CompileLoadNonexistent(String* name, | 2599 MaybeObject* LoadStubCompiler::CompileLoadNonexistent(String* name, |
2563 JSObject* object, | 2600 JSObject* object, |
2564 JSObject* last) { | 2601 JSObject* last) { |
2565 // ----------- S t a t e ------------- | 2602 // ----------- S t a t e ------------- |
2566 // -- rax : receiver | 2603 // -- rax : receiver |
2567 // -- rcx : name | 2604 // -- rcx : name |
2568 // -- rsp[0] : return address | 2605 // -- rsp[0] : return address |
2569 // ----------------------------------- | 2606 // ----------------------------------- |
2570 Label miss; | 2607 Label miss; |
2571 | 2608 |
(...skipping 884 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3456 __ TailCallRuntime(Runtime::kSetProperty, 3, 1); | 3493 __ TailCallRuntime(Runtime::kSetProperty, 3, 1); |
3457 | 3494 |
3458 return GetCode(flags); | 3495 return GetCode(flags); |
3459 } | 3496 } |
3460 | 3497 |
3461 #undef __ | 3498 #undef __ |
3462 | 3499 |
3463 } } // namespace v8::internal | 3500 } } // namespace v8::internal |
3464 | 3501 |
3465 #endif // V8_TARGET_ARCH_X64 | 3502 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |