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

Side by Side Diff: runtime/vm/assembler_x64.cc

Issue 27802002: Disconnects code objects from infrequently used unoptimized functions. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 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 | runtime/vm/code_generator.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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/globals.h" 5 #include "vm/globals.h"
6 #if defined(TARGET_ARCH_X64) 6 #if defined(TARGET_ARCH_X64)
7 7
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/heap.h" 9 #include "vm/heap.h"
10 #include "vm/memory_region.h" 10 #include "vm/memory_region.h"
(...skipping 2789 matching lines...) Expand 10 before | Expand all | Expand 10 after
2800 2800
2801 void Assembler::EnterDartFrameWithInfo(intptr_t frame_size, 2801 void Assembler::EnterDartFrameWithInfo(intptr_t frame_size,
2802 Register new_pp, Register new_pc) { 2802 Register new_pp, Register new_pc) {
2803 if (new_pc == kNoRegister) { 2803 if (new_pc == kNoRegister) {
2804 EnterDartFrame(0); 2804 EnterDartFrame(0);
2805 } else { 2805 } else {
2806 EnterFrame(0); 2806 EnterFrame(0);
2807 pushq(new_pc); 2807 pushq(new_pc);
2808 pushq(PP); 2808 pushq(PP);
2809 movq(PP, new_pp); 2809 movq(PP, new_pp);
2810 } 2810 if (frame_size != 0) {
2811 if (frame_size != 0) { 2811 subq(RSP, Immediate(frame_size));
2812 subq(RSP, Immediate(frame_size)); 2812 }
2813 } 2813 }
2814 } 2814 }
2815 2815
2816 2816
2817 // On entry to a function compiled for OSR, the caller's frame pointer, the 2817 // On entry to a function compiled for OSR, the caller's frame pointer, the
2818 // stack locals, and any copied parameters are already in place. The frame 2818 // stack locals, and any copied parameters are already in place. The frame
2819 // pointer is already set up. The PC marker is not correct for the 2819 // pointer is already set up. The PC marker is not correct for the
2820 // optimized function and there may be extra space for spill slots to 2820 // optimized function and there may be extra space for spill slots to
2821 // allocate. 2821 // allocate.
2822 void Assembler::EnterOsrFrame(intptr_t extra_size, 2822 void Assembler::EnterOsrFrame(intptr_t extra_size,
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
3085 3085
3086 3086
3087 const char* Assembler::FpuRegisterName(FpuRegister reg) { 3087 const char* Assembler::FpuRegisterName(FpuRegister reg) {
3088 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters)); 3088 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters));
3089 return xmm_reg_names[reg]; 3089 return xmm_reg_names[reg];
3090 } 3090 }
3091 3091
3092 } // namespace dart 3092 } // namespace dart
3093 3093
3094 #endif // defined TARGET_ARCH_X64 3094 #endif // defined TARGET_ARCH_X64
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/code_generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698