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

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

Issue 2357323003: [ic][ia32][x87] Don't push/pop value/slot/vector in store handlers. (Closed)
Patch Set: Created 4 years, 3 months 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
« no previous file with comments | « src/s390/macro-assembler-s390.h ('k') | src/x87/code-stubs-x87.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/base/flags.h" 10 #include "src/base/flags.h"
(...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after
884 884
885 // Compare the given value and the value of weak cell. 885 // Compare the given value and the value of weak cell.
886 void CmpWeakValue(Register value, Handle<WeakCell> cell, Register scratch); 886 void CmpWeakValue(Register value, Handle<WeakCell> cell, Register scratch);
887 887
888 void GetWeakValue(Register value, Handle<WeakCell> cell); 888 void GetWeakValue(Register value, Handle<WeakCell> cell);
889 889
890 // Load the value of the weak cell in the value register. Branch to the given 890 // Load the value of the weak cell in the value register. Branch to the given
891 // miss label if the weak cell was cleared. 891 // miss label if the weak cell was cleared.
892 void LoadWeakValue(Register value, Handle<WeakCell> cell, Label* miss); 892 void LoadWeakValue(Register value, Handle<WeakCell> cell, Label* miss);
893 893
894 // Emit code that loads |parameter_index|'th parameter from the stack to
895 // the register according to the CallInterfaceDescriptor definition.
896 // |sp_to_caller_sp_offset_in_words| specifies the number of words pushed
897 // below the caller's sp (on x64 it's at least return address).
898 template <class Descriptor>
899 void LoadParameterFromStack(
900 Register reg, typename Descriptor::ParameterIndices parameter_index,
901 int sp_to_ra_offset_in_words = 1) {
902 DCHECK(Descriptor::kPassLastArgsOnStack);
903 UNIMPLEMENTED();
904 }
905
894 // Emit code to discard a non-negative number of pointer-sized elements 906 // Emit code to discard a non-negative number of pointer-sized elements
895 // from the stack, clobbering only the rsp register. 907 // from the stack, clobbering only the rsp register.
896 void Drop(int stack_elements); 908 void Drop(int stack_elements);
897 // Emit code to discard a positive number of pointer-sized elements 909 // Emit code to discard a positive number of pointer-sized elements
898 // from the stack under the return address which remains on the top, 910 // from the stack under the return address which remains on the top,
899 // clobbering the rsp register. 911 // clobbering the rsp register.
900 void DropUnderReturnAddress(int stack_elements, 912 void DropUnderReturnAddress(int stack_elements,
901 Register scratch = kScratchRegister); 913 Register scratch = kScratchRegister);
902 914
903 void Call(Label* target) { call(target); } 915 void Call(Label* target) { call(target); }
(...skipping 885 matching lines...) Expand 10 before | Expand all | Expand 10 after
1789 inline Operand StackOperandForReturnAddress(int32_t disp) { 1801 inline Operand StackOperandForReturnAddress(int32_t disp) {
1790 return Operand(rsp, disp); 1802 return Operand(rsp, disp);
1791 } 1803 }
1792 1804
1793 #define ACCESS_MASM(masm) masm-> 1805 #define ACCESS_MASM(masm) masm->
1794 1806
1795 } // namespace internal 1807 } // namespace internal
1796 } // namespace v8 1808 } // namespace v8
1797 1809
1798 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ 1810 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_
OLDNEW
« no previous file with comments | « src/s390/macro-assembler-s390.h ('k') | src/x87/code-stubs-x87.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698