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

Side by Side Diff: src/assembler.h

Issue 6542047: Basic implementation of incremental marking. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/gc
Patch Set: Created 9 years, 10 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
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 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 264
265 // Is the pointer this relocation info refers to coded like a plain pointer 265 // Is the pointer this relocation info refers to coded like a plain pointer
266 // or is it strange in some way (eg relative or patched into a series of 266 // or is it strange in some way (eg relative or patched into a series of
267 // instructions). 267 // instructions).
268 bool IsCodedSpecially(); 268 bool IsCodedSpecially();
269 269
270 // Read/modify the code target in the branch/call instruction 270 // Read/modify the code target in the branch/call instruction
271 // this relocation applies to; 271 // this relocation applies to;
272 // can only be called if IsCodeTarget(rmode_) || rmode_ == RUNTIME_ENTRY 272 // can only be called if IsCodeTarget(rmode_) || rmode_ == RUNTIME_ENTRY
273 INLINE(Address target_address()); 273 INLINE(Address target_address());
274 INLINE(void set_target_address(Address target)); 274 INLINE(void set_target_address(Address target, Code* code));
Erik Corry 2011/02/22 12:27:19 Could you use GetCodeFromTargetAddress instead of
Vyacheslav Egorov (Chromium) 2011/02/23 14:31:46 Done.
275 INLINE(Object* target_object()); 275 INLINE(Object* target_object());
276 INLINE(Handle<Object> target_object_handle(Assembler* origin)); 276 INLINE(Handle<Object> target_object_handle(Assembler* origin));
277 INLINE(Object** target_object_address()); 277 INLINE(Object** target_object_address());
278 INLINE(void set_target_object(Object* target)); 278 INLINE(void set_target_object(Object* target, Code* code));
279 INLINE(JSGlobalPropertyCell* target_cell()); 279 INLINE(JSGlobalPropertyCell* target_cell());
280 INLINE(Handle<JSGlobalPropertyCell> target_cell_handle()); 280 INLINE(Handle<JSGlobalPropertyCell> target_cell_handle());
281 INLINE(void set_target_cell(JSGlobalPropertyCell* cell)); 281 INLINE(void set_target_cell(JSGlobalPropertyCell* cell, Code* code));
282 282
283 283
284 // Read the address of the word containing the target_address in an 284 // Read the address of the word containing the target_address in an
285 // instruction stream. What this means exactly is architecture-independent. 285 // instruction stream. What this means exactly is architecture-independent.
286 // The only architecture-independent user of this function is the serializer. 286 // The only architecture-independent user of this function is the serializer.
287 // The serializer uses it to find out how many raw bytes of instruction to 287 // The serializer uses it to find out how many raw bytes of instruction to
288 // output before the next target. Architecture-independent code shouldn't 288 // output before the next target. Architecture-independent code shouldn't
289 // dereference the pointer it gets back from this. 289 // dereference the pointer it gets back from this.
290 INLINE(Address target_address_address()); 290 INLINE(Address target_address_address());
291 // This indicates how much space a target takes up when deserializing a code 291 // This indicates how much space a target takes up when deserializing a code
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 explicit ExternalReference(StatsCounter* counter); 514 explicit ExternalReference(StatsCounter* counter);
515 515
516 explicit ExternalReference(Top::AddressId id); 516 explicit ExternalReference(Top::AddressId id);
517 517
518 explicit ExternalReference(const SCTableReference& table_ref); 518 explicit ExternalReference(const SCTableReference& table_ref);
519 519
520 // One-of-a-kind references. These references are not part of a general 520 // One-of-a-kind references. These references are not part of a general
521 // pattern. This means that they have to be added to the 521 // pattern. This means that they have to be added to the
522 // ExternalReferenceTable in serialize.cc manually. 522 // ExternalReferenceTable in serialize.cc manually.
523 523
524 static ExternalReference incremental_marking_record_write_function();
524 static ExternalReference perform_gc_function(); 525 static ExternalReference perform_gc_function();
525 static ExternalReference fill_heap_number_with_random_function(); 526 static ExternalReference fill_heap_number_with_random_function();
526 static ExternalReference random_uint32_function(); 527 static ExternalReference random_uint32_function();
527 static ExternalReference transcendental_cache_array_address(); 528 static ExternalReference transcendental_cache_array_address();
528 static ExternalReference delete_handle_scope_extensions(); 529 static ExternalReference delete_handle_scope_extensions();
529 530
530 // Deoptimization support. 531 // Deoptimization support.
531 static ExternalReference new_deoptimizer_function(); 532 static ExternalReference new_deoptimizer_function();
532 static ExternalReference compute_output_frames_function(); 533 static ExternalReference compute_output_frames_function();
533 static ExternalReference global_contexts_list(); 534 static ExternalReference global_contexts_list();
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 return num_bits_set; 776 return num_bits_set;
776 } 777 }
777 778
778 // Computes pow(x, y) with the special cases in the spec for Math.pow. 779 // Computes pow(x, y) with the special cases in the spec for Math.pow.
779 double power_double_int(double x, int y); 780 double power_double_int(double x, int y);
780 double power_double_double(double x, double y); 781 double power_double_double(double x, double y);
781 782
782 } } // namespace v8::internal 783 } } // namespace v8::internal
783 784
784 #endif // V8_ASSEMBLER_H_ 785 #endif // V8_ASSEMBLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698