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

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

Issue 1238143002: [stubs] Optimize LoadGlobalViaContextStub and StoreGlobalViaContextStub. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix ARM typo. Created 5 years, 5 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
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/bailout-reason.h" 10 #include "src/bailout-reason.h"
(...skipping 1751 matching lines...) Expand 10 before | Expand all | Expand 10 after
1762 1762
1763 void JumpIfInNewSpace(Register object, 1763 void JumpIfInNewSpace(Register object,
1764 Label* branch) { 1764 Label* branch) {
1765 InNewSpace(object, eq, branch); 1765 InNewSpace(object, eq, branch);
1766 } 1766 }
1767 1767
1768 // Notify the garbage collector that we wrote a pointer into an object. 1768 // Notify the garbage collector that we wrote a pointer into an object.
1769 // |object| is the object being stored into, |value| is the object being 1769 // |object| is the object being stored into, |value| is the object being
1770 // stored. value and scratch registers are clobbered by the operation. 1770 // stored. value and scratch registers are clobbered by the operation.
1771 // The offset is the offset from the start of the object, not the offset from 1771 // The offset is the offset from the start of the object, not the offset from
1772 // the tagged HeapObject pointer. For use with FieldOperand(reg, off). 1772 // the tagged HeapObject pointer. For use with FieldMemOperand(reg, off).
1773 void RecordWriteField( 1773 void RecordWriteField(
1774 Register object, 1774 Register object,
1775 int offset, 1775 int offset,
1776 Register value, 1776 Register value,
1777 Register scratch, 1777 Register scratch,
1778 LinkRegisterStatus lr_status, 1778 LinkRegisterStatus lr_status,
1779 SaveFPRegsMode save_fp, 1779 SaveFPRegsMode save_fp,
1780 RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET, 1780 RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET,
1781 SmiCheck smi_check = INLINE_SMI_CHECK, 1781 SmiCheck smi_check = INLINE_SMI_CHECK,
1782 PointersToHereCheck pointers_to_here_check_for_value = 1782 PointersToHereCheck pointers_to_here_check_for_value =
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
2226 // Available scratch registers. 2226 // Available scratch registers.
2227 CPURegList* available_; // kRegister 2227 CPURegList* available_; // kRegister
2228 CPURegList* availablefp_; // kFPRegister 2228 CPURegList* availablefp_; // kFPRegister
2229 2229
2230 // The state of the available lists at the start of this scope. 2230 // The state of the available lists at the start of this scope.
2231 RegList old_available_; // kRegister 2231 RegList old_available_; // kRegister
2232 RegList old_availablefp_; // kFPRegister 2232 RegList old_availablefp_; // kFPRegister
2233 }; 2233 };
2234 2234
2235 2235
2236 inline MemOperand ContextMemOperand(Register context, int index) { 2236 inline MemOperand ContextMemOperand(Register context, int index = 0) {
2237 return MemOperand(context, Context::SlotOffset(index)); 2237 return MemOperand(context, Context::SlotOffset(index));
2238 } 2238 }
2239 2239
2240 inline MemOperand GlobalObjectMemOperand() { 2240 inline MemOperand GlobalObjectMemOperand() {
2241 return ContextMemOperand(cp, Context::GLOBAL_OBJECT_INDEX); 2241 return ContextMemOperand(cp, Context::GLOBAL_OBJECT_INDEX);
2242 } 2242 }
2243 2243
2244 2244
2245 // Encode and decode information about patchable inline SMI checks. 2245 // Encode and decode information about patchable inline SMI checks.
2246 class InlineSmiCheckInfo { 2246 class InlineSmiCheckInfo {
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
2296 #error "Unsupported option" 2296 #error "Unsupported option"
2297 #define CODE_COVERAGE_STRINGIFY(x) #x 2297 #define CODE_COVERAGE_STRINGIFY(x) #x
2298 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) 2298 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x)
2299 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 2299 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
2300 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 2300 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
2301 #else 2301 #else
2302 #define ACCESS_MASM(masm) masm-> 2302 #define ACCESS_MASM(masm) masm->
2303 #endif 2303 #endif
2304 2304
2305 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ 2305 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698