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

Side by Side Diff: src/arm/assembler-arm.cc

Issue 6793016: Record AST ids in relocation info at spots where we collect dynamic type feedback. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: last change Created 9 years, 8 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 | « src/arm/assembler-arm.h ('k') | src/arm/full-codegen-arm.cc » ('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 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are 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 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 // Setup buffer pointers. 308 // Setup buffer pointers.
309 ASSERT(buffer_ != NULL); 309 ASSERT(buffer_ != NULL);
310 pc_ = buffer_; 310 pc_ = buffer_;
311 reloc_info_writer.Reposition(buffer_ + buffer_size, pc_); 311 reloc_info_writer.Reposition(buffer_ + buffer_size, pc_);
312 num_prinfo_ = 0; 312 num_prinfo_ = 0;
313 next_buffer_check_ = 0; 313 next_buffer_check_ = 0;
314 const_pool_blocked_nesting_ = 0; 314 const_pool_blocked_nesting_ = 0;
315 no_const_pool_before_ = 0; 315 no_const_pool_before_ = 0;
316 last_const_pool_end_ = 0; 316 last_const_pool_end_ = 0;
317 last_bound_pos_ = 0; 317 last_bound_pos_ = 0;
318 ast_id_for_reloc_info_ = kNoASTId;
318 } 319 }
319 320
320 321
321 Assembler::~Assembler() { 322 Assembler::~Assembler() {
322 ASSERT(const_pool_blocked_nesting_ == 0); 323 ASSERT(const_pool_blocked_nesting_ == 0);
323 if (own_buffer_) { 324 if (own_buffer_) {
324 if (isolate()->assembler_spare_buffer() == NULL && 325 if (isolate()->assembler_spare_buffer() == NULL &&
325 buffer_size_ == kMinimalBufferSize) { 326 buffer_size_ == kMinimalBufferSize) {
326 isolate()->set_assembler_spare_buffer(buffer_); 327 isolate()->set_assembler_spare_buffer(buffer_);
327 } else { 328 } else {
(...skipping 2387 matching lines...) Expand 10 before | Expand all | Expand 10 after
2715 #ifdef DEBUG 2716 #ifdef DEBUG
2716 if (!Serializer::enabled()) { 2717 if (!Serializer::enabled()) {
2717 Serializer::TooLateToEnableNow(); 2718 Serializer::TooLateToEnableNow();
2718 } 2719 }
2719 #endif 2720 #endif
2720 if (!Serializer::enabled() && !emit_debug_code()) { 2721 if (!Serializer::enabled() && !emit_debug_code()) {
2721 return; 2722 return;
2722 } 2723 }
2723 } 2724 }
2724 ASSERT(buffer_space() >= kMaxRelocSize); // too late to grow buffer here 2725 ASSERT(buffer_space() >= kMaxRelocSize); // too late to grow buffer here
2725 reloc_info_writer.Write(&rinfo); 2726 if (rmode == RelocInfo::CODE_TARGET_WITH_ID) {
2727 ASSERT(ast_id_for_reloc_info_ != kNoASTId);
2728 RelocInfo reloc_info_with_ast_id(pc_, rmode, ast_id_for_reloc_info_);
2729 ast_id_for_reloc_info_ = kNoASTId;
2730 reloc_info_writer.Write(&reloc_info_with_ast_id);
2731 } else {
2732 reloc_info_writer.Write(&rinfo);
2733 }
2726 } 2734 }
2727 } 2735 }
2728 2736
2729 2737
2730 void Assembler::CheckConstPool(bool force_emit, bool require_jump) { 2738 void Assembler::CheckConstPool(bool force_emit, bool require_jump) {
2731 // Calculate the offset of the next check. It will be overwritten 2739 // Calculate the offset of the next check. It will be overwritten
2732 // when a const pool is generated or when const pools are being 2740 // when a const pool is generated or when const pools are being
2733 // blocked for a specific range. 2741 // blocked for a specific range.
2734 next_buffer_check_ = pc_offset() + kCheckConstInterval; 2742 next_buffer_check_ = pc_offset() + kCheckConstInterval;
2735 2743
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
2831 2839
2832 // Since a constant pool was just emitted, move the check offset forward by 2840 // Since a constant pool was just emitted, move the check offset forward by
2833 // the standard interval. 2841 // the standard interval.
2834 next_buffer_check_ = pc_offset() + kCheckConstInterval; 2842 next_buffer_check_ = pc_offset() + kCheckConstInterval;
2835 } 2843 }
2836 2844
2837 2845
2838 } } // namespace v8::internal 2846 } } // namespace v8::internal
2839 2847
2840 #endif // V8_TARGET_ARCH_ARM 2848 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/assembler-arm.h ('k') | src/arm/full-codegen-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698