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

Side by Side Diff: src/x64/macro-assembler-x64.h

Issue 764003003: Reland parts of 'Use weak cells in map checks in polymorphic ICs' (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_X64_MACRO_ASSEMBLER_X64_H_ 5 #ifndef V8_X64_MACRO_ASSEMBLER_X64_H_
6 #define V8_X64_MACRO_ASSEMBLER_X64_H_ 6 #define V8_X64_MACRO_ASSEMBLER_X64_H_
7 7
8 #include "src/assembler.h" 8 #include "src/assembler.h"
9 #include "src/bailout-reason.h" 9 #include "src/bailout-reason.h"
10 #include "src/frames.h" 10 #include "src/frames.h"
(...skipping 829 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 void Cmp(const Operand& dst, Smi* src); 840 void Cmp(const Operand& dst, Smi* src);
841 void Push(Handle<Object> source); 841 void Push(Handle<Object> source);
842 842
843 // Load a heap object and handle the case of new-space objects by 843 // Load a heap object and handle the case of new-space objects by
844 // indirecting via a global cell. 844 // indirecting via a global cell.
845 void MoveHeapObject(Register result, Handle<Object> object); 845 void MoveHeapObject(Register result, Handle<Object> object);
846 846
847 // Load a global cell into a register. 847 // Load a global cell into a register.
848 void LoadGlobalCell(Register dst, Handle<Cell> cell); 848 void LoadGlobalCell(Register dst, Handle<Cell> cell);
849 849
850 // Compare the given value and the value of weak cell.
851 void CmpWeakValue(Register value, Handle<WeakCell> cell, Register scratch);
852
853 // Load the value of the weak cell in the value register. Branch to the given
854 // miss label if the weak cell was cleared.
855 void LoadWeakValue(Register value, Handle<WeakCell> cell, Label* miss);
856
850 // Emit code to discard a non-negative number of pointer-sized elements 857 // Emit code to discard a non-negative number of pointer-sized elements
851 // from the stack, clobbering only the rsp register. 858 // from the stack, clobbering only the rsp register.
852 void Drop(int stack_elements); 859 void Drop(int stack_elements);
853 // Emit code to discard a positive number of pointer-sized elements 860 // Emit code to discard a positive number of pointer-sized elements
854 // from the stack under the return address which remains on the top, 861 // from the stack under the return address which remains on the top,
855 // clobbering the rsp register. 862 // clobbering the rsp register.
856 void DropUnderReturnAddress(int stack_elements, 863 void DropUnderReturnAddress(int stack_elements,
857 Register scratch = kScratchRegister); 864 Register scratch = kScratchRegister);
858 865
859 void Call(Label* target) { call(target); } 866 void Call(Label* target) { call(target); }
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
1645 masm->popfq(); \ 1652 masm->popfq(); \
1646 } \ 1653 } \
1647 masm-> 1654 masm->
1648 #else 1655 #else
1649 #define ACCESS_MASM(masm) masm-> 1656 #define ACCESS_MASM(masm) masm->
1650 #endif 1657 #endif
1651 1658
1652 } } // namespace v8::internal 1659 } } // namespace v8::internal
1653 1660
1654 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ 1661 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698