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

Side by Side Diff: src/assembler.h

Issue 8365029: Avoid write-barriers when initializing newly created Code object. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | src/ia32/assembler-ia32-inl.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 (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 272
273 // Is the pointer this relocation info refers to coded like a plain pointer 273 // Is the pointer this relocation info refers to coded like a plain pointer
274 // or is it strange in some way (eg relative or patched into a series of 274 // or is it strange in some way (eg relative or patched into a series of
275 // instructions). 275 // instructions).
276 bool IsCodedSpecially(); 276 bool IsCodedSpecially();
277 277
278 // Read/modify the code target in the branch/call instruction 278 // Read/modify the code target in the branch/call instruction
279 // this relocation applies to; 279 // this relocation applies to;
280 // can only be called if IsCodeTarget(rmode_) || rmode_ == RUNTIME_ENTRY 280 // can only be called if IsCodeTarget(rmode_) || rmode_ == RUNTIME_ENTRY
281 INLINE(Address target_address()); 281 INLINE(Address target_address());
282 INLINE(void set_target_address(Address target)); 282 INLINE(void set_target_address(Address target,
283 WriteBarrierMode mode = UPDATE_WRITE_BARRIER));
283 INLINE(Object* target_object()); 284 INLINE(Object* target_object());
284 INLINE(Handle<Object> target_object_handle(Assembler* origin)); 285 INLINE(Handle<Object> target_object_handle(Assembler* origin));
285 INLINE(Object** target_object_address()); 286 INLINE(Object** target_object_address());
286 INLINE(void set_target_object(Object* target)); 287 INLINE(void set_target_object(Object* target,
288 WriteBarrierMode mode = UPDATE_WRITE_BARRIER));
287 INLINE(JSGlobalPropertyCell* target_cell()); 289 INLINE(JSGlobalPropertyCell* target_cell());
288 INLINE(Handle<JSGlobalPropertyCell> target_cell_handle()); 290 INLINE(Handle<JSGlobalPropertyCell> target_cell_handle());
289 INLINE(void set_target_cell(JSGlobalPropertyCell* cell)); 291 INLINE(void set_target_cell(JSGlobalPropertyCell* cell,
292 WriteBarrierMode mode = UPDATE_WRITE_BARRIER));
290 293
291 294
292 // Read the address of the word containing the target_address in an 295 // Read the address of the word containing the target_address in an
293 // instruction stream. What this means exactly is architecture-independent. 296 // instruction stream. What this means exactly is architecture-independent.
294 // The only architecture-independent user of this function is the serializer. 297 // The only architecture-independent user of this function is the serializer.
295 // The serializer uses it to find out how many raw bytes of instruction to 298 // The serializer uses it to find out how many raw bytes of instruction to
296 // output before the next target. Architecture-independent code shouldn't 299 // output before the next target. Architecture-independent code shouldn't
297 // dereference the pointer it gets back from this. 300 // dereference the pointer it gets back from this.
298 INLINE(Address target_address_address()); 301 INLINE(Address target_address_address());
299 // This indicates how much space a target takes up when deserializing a code 302 // This indicates how much space a target takes up when deserializing a code
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
871 public: 874 public:
872 NullCallWrapper() { } 875 NullCallWrapper() { }
873 virtual ~NullCallWrapper() { } 876 virtual ~NullCallWrapper() { }
874 virtual void BeforeCall(int call_size) const { } 877 virtual void BeforeCall(int call_size) const { }
875 virtual void AfterCall() const { } 878 virtual void AfterCall() const { }
876 }; 879 };
877 880
878 } } // namespace v8::internal 881 } } // namespace v8::internal
879 882
880 #endif // V8_ASSEMBLER_H_ 883 #endif // V8_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « no previous file | src/ia32/assembler-ia32-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698