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

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

Issue 2357323003: [ic][ia32][x87] Don't push/pop value/slot/vector in store handlers. (Closed)
Patch Set: Created 4 years, 2 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/arm/macro-assembler-arm.h ('k') | src/assembler.h » ('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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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_ARM64_MACRO_ASSEMBLER_ARM64_H_ 5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "src/arm64/assembler-arm64.h" 10 #include "src/arm64/assembler-arm64.h"
(...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 void PokePair(const CPURegister& src1, const CPURegister& src2, int offset); 735 void PokePair(const CPURegister& src1, const CPURegister& src2, int offset);
736 736
737 // Peek at two values on the stack, and put them in 'dst1' and 'dst2'. The 737 // Peek at two values on the stack, and put them in 'dst1' and 'dst2'. The
738 // values peeked will be adjacent, with the value in 'dst2' being from a 738 // values peeked will be adjacent, with the value in 'dst2' being from a
739 // higher address than 'dst1'. The offset is in bytes. 739 // higher address than 'dst1'. The offset is in bytes.
740 // 740 //
741 // If the current stack pointer (according to StackPointer()) is csp, then 741 // If the current stack pointer (according to StackPointer()) is csp, then
742 // csp must be aligned to 16 bytes. 742 // csp must be aligned to 16 bytes.
743 void PeekPair(const CPURegister& dst1, const CPURegister& dst2, int offset); 743 void PeekPair(const CPURegister& dst1, const CPURegister& dst2, int offset);
744 744
745 // Emit code that loads |parameter_index|'th parameter from the stack to
746 // the register according to the CallInterfaceDescriptor definition.
747 // |sp_to_caller_sp_offset_in_words| specifies the number of words pushed
748 // below the caller's sp.
749 template <class Descriptor>
750 void LoadParameterFromStack(
751 Register reg, typename Descriptor::ParameterIndices parameter_index,
752 int sp_to_ra_offset_in_words = 0) {
753 DCHECK(Descriptor::kPassLastArgsOnStack);
754 UNIMPLEMENTED();
755 }
756
745 // Claim or drop stack space without actually accessing memory. 757 // Claim or drop stack space without actually accessing memory.
746 // 758 //
747 // In debug mode, both of these will write invalid data into the claimed or 759 // In debug mode, both of these will write invalid data into the claimed or
748 // dropped space. 760 // dropped space.
749 // 761 //
750 // If the current stack pointer (according to StackPointer()) is csp, then it 762 // If the current stack pointer (according to StackPointer()) is csp, then it
751 // must be aligned to 16 bytes and the size claimed or dropped must be a 763 // must be aligned to 16 bytes and the size claimed or dropped must be a
752 // multiple of 16 bytes. 764 // multiple of 16 bytes.
753 // 765 //
754 // Note that unit_size must be specified in bytes. For variants which take a 766 // Note that unit_size must be specified in bytes. For variants which take a
(...skipping 1553 matching lines...) Expand 10 before | Expand all | Expand 10 after
2308 class RegisterBits : public BitField<unsigned, 0, 5> {}; 2320 class RegisterBits : public BitField<unsigned, 0, 5> {};
2309 class DeltaBits : public BitField<uint32_t, 5, 32-5> {}; 2321 class DeltaBits : public BitField<uint32_t, 5, 32-5> {};
2310 }; 2322 };
2311 2323
2312 } // namespace internal 2324 } // namespace internal
2313 } // namespace v8 2325 } // namespace v8
2314 2326
2315 #define ACCESS_MASM(masm) masm-> 2327 #define ACCESS_MASM(masm) masm->
2316 2328
2317 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ 2329 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
OLDNEW
« no previous file with comments | « src/arm/macro-assembler-arm.h ('k') | src/assembler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698