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

Side by Side Diff: src/arm/macro-assembler-arm.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 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_ARM_MACRO_ASSEMBLER_ARM_H_ 5 #ifndef V8_ARM_MACRO_ASSEMBLER_ARM_H_
6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_ 6 #define V8_ARM_MACRO_ASSEMBLER_ARM_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 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 // Detects conservatively whether an object is data-only, i.e. it does need to 243 // Detects conservatively whether an object is data-only, i.e. it does need to
244 // be scanned by the garbage collector. 244 // be scanned by the garbage collector.
245 void JumpIfDataObject(Register value, 245 void JumpIfDataObject(Register value,
246 Register scratch, 246 Register scratch,
247 Label* not_data_object); 247 Label* not_data_object);
248 248
249 // Notify the garbage collector that we wrote a pointer into an object. 249 // Notify the garbage collector that we wrote a pointer into an object.
250 // |object| is the object being stored into, |value| is the object being 250 // |object| is the object being stored into, |value| is the object being
251 // stored. value and scratch registers are clobbered by the operation. 251 // stored. value and scratch registers are clobbered by the operation.
252 // The offset is the offset from the start of the object, not the offset from 252 // The offset is the offset from the start of the object, not the offset from
253 // the tagged HeapObject pointer. For use with FieldOperand(reg, off). 253 // the tagged HeapObject pointer. For use with FieldMemOperand(reg, off).
254 void RecordWriteField( 254 void RecordWriteField(
255 Register object, 255 Register object,
256 int offset, 256 int offset,
257 Register value, 257 Register value,
258 Register scratch, 258 Register scratch,
259 LinkRegisterStatus lr_status, 259 LinkRegisterStatus lr_status,
260 SaveFPRegsMode save_fp, 260 SaveFPRegsMode save_fp,
261 RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET, 261 RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET,
262 SmiCheck smi_check = INLINE_SMI_CHECK, 262 SmiCheck smi_check = INLINE_SMI_CHECK,
263 PointersToHereCheck pointers_to_here_check_for_value = 263 PointersToHereCheck pointers_to_here_check_for_value =
(...skipping 1261 matching lines...) Expand 10 before | Expand all | Expand 10 after
1525 byte* address_; // The address of the code being patched. 1525 byte* address_; // The address of the code being patched.
1526 int size_; // Number of bytes of the expected patch size. 1526 int size_; // Number of bytes of the expected patch size.
1527 MacroAssembler masm_; // Macro assembler used to generate the code. 1527 MacroAssembler masm_; // Macro assembler used to generate the code.
1528 FlushICache flush_cache_; // Whether to flush the I cache after patching. 1528 FlushICache flush_cache_; // Whether to flush the I cache after patching.
1529 }; 1529 };
1530 1530
1531 1531
1532 // ----------------------------------------------------------------------------- 1532 // -----------------------------------------------------------------------------
1533 // Static helper functions. 1533 // Static helper functions.
1534 1534
1535 inline MemOperand ContextOperand(Register context, int index) { 1535 inline MemOperand ContextOperand(Register context, int index = 0) {
1536 return MemOperand(context, Context::SlotOffset(index)); 1536 return MemOperand(context, Context::SlotOffset(index));
1537 } 1537 }
1538 1538
1539 1539
1540 inline MemOperand GlobalObjectOperand() { 1540 inline MemOperand GlobalObjectOperand() {
1541 return ContextOperand(cp, Context::GLOBAL_OBJECT_INDEX); 1541 return ContextOperand(cp, Context::GLOBAL_OBJECT_INDEX);
1542 } 1542 }
1543 1543
1544 1544
1545 #ifdef GENERATED_CODE_COVERAGE 1545 #ifdef GENERATED_CODE_COVERAGE
1546 #define CODE_COVERAGE_STRINGIFY(x) #x 1546 #define CODE_COVERAGE_STRINGIFY(x) #x
1547 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) 1547 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x)
1548 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1548 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1549 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1549 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1550 #else 1550 #else
1551 #define ACCESS_MASM(masm) masm-> 1551 #define ACCESS_MASM(masm) masm->
1552 #endif 1552 #endif
1553 1553
1554 1554
1555 } } // namespace v8::internal 1555 } } // namespace v8::internal
1556 1556
1557 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 1557 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698