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

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

Issue 1261473002: PPC: [stubs] Optimize LoadGlobalViaContextStub and StoreGlobalViaContextStub. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: 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
« no previous file with comments | « src/ppc/lithium-codegen-ppc.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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_PPC_MACRO_ASSEMBLER_PPC_H_ 5 #ifndef V8_PPC_MACRO_ASSEMBLER_PPC_H_
6 #define V8_PPC_MACRO_ASSEMBLER_PPC_H_ 6 #define V8_PPC_MACRO_ASSEMBLER_PPC_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 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 206
207 // Detects conservatively whether an object is data-only, i.e. it does need to 207 // Detects conservatively whether an object is data-only, i.e. it does need to
208 // be scanned by the garbage collector. 208 // be scanned by the garbage collector.
209 void JumpIfDataObject(Register value, Register scratch, 209 void JumpIfDataObject(Register value, Register scratch,
210 Label* not_data_object); 210 Label* not_data_object);
211 211
212 // Notify the garbage collector that we wrote a pointer into an object. 212 // Notify the garbage collector that we wrote a pointer into an object.
213 // |object| is the object being stored into, |value| is the object being 213 // |object| is the object being stored into, |value| is the object being
214 // stored. value and scratch registers are clobbered by the operation. 214 // stored. value and scratch registers are clobbered by the operation.
215 // The offset is the offset from the start of the object, not the offset from 215 // The offset is the offset from the start of the object, not the offset from
216 // the tagged HeapObject pointer. For use with FieldOperand(reg, off). 216 // the tagged HeapObject pointer. For use with FieldMemOperand(reg, off).
217 void RecordWriteField( 217 void RecordWriteField(
218 Register object, int offset, Register value, Register scratch, 218 Register object, int offset, Register value, Register scratch,
219 LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, 219 LinkRegisterStatus lr_status, SaveFPRegsMode save_fp,
220 RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET, 220 RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET,
221 SmiCheck smi_check = INLINE_SMI_CHECK, 221 SmiCheck smi_check = INLINE_SMI_CHECK,
222 PointersToHereCheck pointers_to_here_check_for_value = 222 PointersToHereCheck pointers_to_here_check_for_value =
223 kPointersToHereMaybeInteresting); 223 kPointersToHereMaybeInteresting);
224 224
225 // As above, but the offset has the tag presubtracted. For use with 225 // As above, but the offset has the tag presubtracted. For use with
226 // MemOperand(reg, off). 226 // MemOperand(reg, off).
(...skipping 1315 matching lines...) Expand 10 before | Expand all | Expand 10 after
1542 byte* address_; // The address of the code being patched. 1542 byte* address_; // The address of the code being patched.
1543 int size_; // Number of bytes of the expected patch size. 1543 int size_; // Number of bytes of the expected patch size.
1544 MacroAssembler masm_; // Macro assembler used to generate the code. 1544 MacroAssembler masm_; // Macro assembler used to generate the code.
1545 FlushICache flush_cache_; // Whether to flush the I cache after patching. 1545 FlushICache flush_cache_; // Whether to flush the I cache after patching.
1546 }; 1546 };
1547 1547
1548 1548
1549 // ----------------------------------------------------------------------------- 1549 // -----------------------------------------------------------------------------
1550 // Static helper functions. 1550 // Static helper functions.
1551 1551
1552 inline MemOperand ContextOperand(Register context, int index) { 1552 inline MemOperand ContextOperand(Register context, int index = 0) {
1553 return MemOperand(context, Context::SlotOffset(index)); 1553 return MemOperand(context, Context::SlotOffset(index));
1554 } 1554 }
1555 1555
1556 1556
1557 inline MemOperand GlobalObjectOperand() { 1557 inline MemOperand GlobalObjectOperand() {
1558 return ContextOperand(cp, Context::GLOBAL_OBJECT_INDEX); 1558 return ContextOperand(cp, Context::GLOBAL_OBJECT_INDEX);
1559 } 1559 }
1560 1560
1561 1561
1562 #ifdef GENERATED_CODE_COVERAGE 1562 #ifdef GENERATED_CODE_COVERAGE
1563 #define CODE_COVERAGE_STRINGIFY(x) #x 1563 #define CODE_COVERAGE_STRINGIFY(x) #x
1564 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) 1564 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x)
1565 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1565 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1566 #define ACCESS_MASM(masm) \ 1566 #define ACCESS_MASM(masm) \
1567 masm->stop(__FILE_LINE__); \ 1567 masm->stop(__FILE_LINE__); \
1568 masm-> 1568 masm->
1569 #else 1569 #else
1570 #define ACCESS_MASM(masm) masm-> 1570 #define ACCESS_MASM(masm) masm->
1571 #endif 1571 #endif
1572 } 1572 }
1573 } // namespace v8::internal 1573 } // namespace v8::internal
1574 1574
1575 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ 1575 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_
OLDNEW
« no previous file with comments | « src/ppc/lithium-codegen-ppc.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698