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

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

Issue 256653004: Always include debugger support. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Makefile Created 6 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/macro-assembler-arm.cc ('k') | src/arm64/assembler-arm64-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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // 2 //
3 // Redistribution and use in source and binary forms, with or without 3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions are 4 // modification, are permitted provided that the following conditions are
5 // met: 5 // met:
6 // 6 //
7 // * Redistributions of source code must retain the above copyright 7 // * Redistributions of source code must retain the above copyright
8 // notice, this list of conditions and the following disclaimer. 8 // notice, this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above 9 // * Redistributions in binary form must reproduce the above
10 // copyright notice, this list of conditions and the following 10 // copyright notice, this list of conditions and the following
(...skipping 2655 matching lines...) Expand 10 before | Expand all | Expand 10 after
2666 2666
2667 bool Assembler::ShouldEmitVeneer(int max_reachable_pc, int margin) { 2667 bool Assembler::ShouldEmitVeneer(int max_reachable_pc, int margin) {
2668 // Account for the branch around the veneers and the guard. 2668 // Account for the branch around the veneers and the guard.
2669 int protection_offset = 2 * kInstructionSize; 2669 int protection_offset = 2 * kInstructionSize;
2670 return pc_offset() > max_reachable_pc - margin - protection_offset - 2670 return pc_offset() > max_reachable_pc - margin - protection_offset -
2671 static_cast<int>(unresolved_branches_.size() * kMaxVeneerCodeSize); 2671 static_cast<int>(unresolved_branches_.size() * kMaxVeneerCodeSize);
2672 } 2672 }
2673 2673
2674 2674
2675 void Assembler::RecordVeneerPool(int location_offset, int size) { 2675 void Assembler::RecordVeneerPool(int location_offset, int size) {
2676 #ifdef ENABLE_DEBUGGER_SUPPORT
2677 RelocInfo rinfo(buffer_ + location_offset, 2676 RelocInfo rinfo(buffer_ + location_offset,
2678 RelocInfo::VENEER_POOL, static_cast<intptr_t>(size), 2677 RelocInfo::VENEER_POOL, static_cast<intptr_t>(size),
2679 NULL); 2678 NULL);
2680 reloc_info_writer.Write(&rinfo); 2679 reloc_info_writer.Write(&rinfo);
2681 #endif
2682 } 2680 }
2683 2681
2684 2682
2685 void Assembler::EmitVeneers(bool force_emit, bool need_protection, int margin) { 2683 void Assembler::EmitVeneers(bool force_emit, bool need_protection, int margin) {
2686 BlockPoolsScope scope(this); 2684 BlockPoolsScope scope(this);
2687 RecordComment("[ Veneers"); 2685 RecordComment("[ Veneers");
2688 2686
2689 // The exact size of the veneer pool must be recorded (see the comment at the 2687 // The exact size of the veneer pool must be recorded (see the comment at the
2690 // declaration site of RecordConstPool()), but computing the number of 2688 // declaration site of RecordConstPool()), but computing the number of
2691 // veneers that will be generated is not obvious. So instead we remember the 2689 // veneers that will be generated is not obvious. So instead we remember the
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
2805 void Assembler::RecordDebugBreakSlot() { 2803 void Assembler::RecordDebugBreakSlot() {
2806 positions_recorder()->WriteRecordedPositions(); 2804 positions_recorder()->WriteRecordedPositions();
2807 CheckBuffer(); 2805 CheckBuffer();
2808 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT); 2806 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT);
2809 } 2807 }
2810 2808
2811 2809
2812 void Assembler::RecordConstPool(int size) { 2810 void Assembler::RecordConstPool(int size) {
2813 // We only need this for debugger support, to correctly compute offsets in the 2811 // We only need this for debugger support, to correctly compute offsets in the
2814 // code. 2812 // code.
2815 #ifdef ENABLE_DEBUGGER_SUPPORT
2816 RecordRelocInfo(RelocInfo::CONST_POOL, static_cast<intptr_t>(size)); 2813 RecordRelocInfo(RelocInfo::CONST_POOL, static_cast<intptr_t>(size));
2817 #endif
2818 } 2814 }
2819 2815
2820 2816
2821 Handle<ConstantPoolArray> Assembler::NewConstantPool(Isolate* isolate) { 2817 Handle<ConstantPoolArray> Assembler::NewConstantPool(Isolate* isolate) {
2822 // No out-of-line constant pool support. 2818 // No out-of-line constant pool support.
2823 ASSERT(!FLAG_enable_ool_constant_pool); 2819 ASSERT(!FLAG_enable_ool_constant_pool);
2824 return isolate->factory()->empty_constant_pool_array(); 2820 return isolate->factory()->empty_constant_pool_array();
2825 } 2821 }
2826 2822
2827 2823
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
2898 adr(rd, 0); 2894 adr(rd, 0);
2899 MovInt64(scratch, target_offset); 2895 MovInt64(scratch, target_offset);
2900 add(rd, rd, scratch); 2896 add(rd, rd, scratch);
2901 } 2897 }
2902 } 2898 }
2903 2899
2904 2900
2905 } } // namespace v8::internal 2901 } } // namespace v8::internal
2906 2902
2907 #endif // V8_TARGET_ARCH_ARM64 2903 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm/macro-assembler-arm.cc ('k') | src/arm64/assembler-arm64-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698