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

Side by Side Diff: src/deoptimizer.h

Issue 11566011: Use MemoryChunk-based allocation for deoptimization entry code (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 8 years 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/deoptimizer.cc » ('j') | src/spaces.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 DeoptimizerData(); 95 DeoptimizerData();
96 ~DeoptimizerData(); 96 ~DeoptimizerData();
97 97
98 #ifdef ENABLE_DEBUGGER_SUPPORT 98 #ifdef ENABLE_DEBUGGER_SUPPORT
99 void Iterate(ObjectVisitor* v); 99 void Iterate(ObjectVisitor* v);
100 #endif 100 #endif
101 101
102 private: 102 private:
103 int eager_deoptimization_entry_code_entries_; 103 int eager_deoptimization_entry_code_entries_;
104 int lazy_deoptimization_entry_code_entries_; 104 int lazy_deoptimization_entry_code_entries_;
105 #if defined(V8_TARGET_ARCH_X64)
Sven Panne 2012/12/14 08:08:40 Having architecture-specific stuff here in the arc
106 Address eager_deoptimization_entry_start_;
danno 2012/12/20 10:18:35 Is there any reason why this shouldn't work identi
107 size_t eager_deoptimization_reserved_size_;
108 MemoryChunk* eager_deoptimization_entry_code_;
109 Address lazy_deoptimization_entry_start_;
110 size_t lazy_deoptimization_reserved_size_;
111 MemoryChunk* lazy_deoptimization_entry_code_;
112 #else
105 VirtualMemory* eager_deoptimization_entry_code_; 113 VirtualMemory* eager_deoptimization_entry_code_;
106 VirtualMemory* lazy_deoptimization_entry_code_; 114 VirtualMemory* lazy_deoptimization_entry_code_;
115 #endif
107 Deoptimizer* current_; 116 Deoptimizer* current_;
108 117
109 #ifdef ENABLE_DEBUGGER_SUPPORT 118 #ifdef ENABLE_DEBUGGER_SUPPORT
110 DeoptimizedFrameInfo* deoptimized_frame_info_; 119 DeoptimizedFrameInfo* deoptimized_frame_info_;
111 #endif 120 #endif
112 121
113 // List of deoptimized code which still have references from active stack 122 // List of deoptimized code which still have references from active stack
114 // frames. These code objects are needed by the deoptimizer when deoptimizing 123 // frames. These code objects are needed by the deoptimizer when deoptimizing
115 // a frame for which the code object for the function function has been 124 // a frame for which the code object for the function function has been
116 // changed from the code present when deoptimizing was done. 125 // changed from the code present when deoptimizing was done.
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 JSFunction* GetFunction() const { return function_; } 424 JSFunction* GetFunction() const { return function_; }
416 425
417 unsigned GetOffsetFromSlotIndex(int slot_index); 426 unsigned GetOffsetFromSlotIndex(int slot_index);
418 427
419 intptr_t GetFrameSlot(unsigned offset) { 428 intptr_t GetFrameSlot(unsigned offset) {
420 return *GetFrameSlotPointer(offset); 429 return *GetFrameSlotPointer(offset);
421 } 430 }
422 431
423 double GetDoubleFrameSlot(unsigned offset) { 432 double GetDoubleFrameSlot(unsigned offset) {
424 intptr_t* ptr = GetFrameSlotPointer(offset); 433 intptr_t* ptr = GetFrameSlotPointer(offset);
425 #if V8_TARGET_ARCH_MIPS 434 #if V8_TARGET_ARCH_MIPS
Sven Panne 2012/12/14 08:08:40 Not from this CL, but the same comment holds. This
426 // Prevent gcc from using load-double (mips ldc1) on (possibly) 435 // Prevent gcc from using load-double (mips ldc1) on (possibly)
427 // non-64-bit aligned double. Uses two lwc1 instructions. 436 // non-64-bit aligned double. Uses two lwc1 instructions.
428 union conversion { 437 union conversion {
429 double d; 438 double d;
430 uint32_t u[2]; 439 uint32_t u[2];
431 } c; 440 } c;
432 c.u[0] = *reinterpret_cast<uint32_t*>(ptr); 441 c.u[0] = *reinterpret_cast<uint32_t*>(ptr);
433 c.u[1] = *(reinterpret_cast<uint32_t*>(ptr) + 1); 442 c.u[1] = *(reinterpret_cast<uint32_t*>(ptr) + 1);
434 return c.d; 443 return c.d;
435 #else 444 #else
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 Object** expression_stack_; 855 Object** expression_stack_;
847 int source_position_; 856 int source_position_;
848 857
849 friend class Deoptimizer; 858 friend class Deoptimizer;
850 }; 859 };
851 #endif 860 #endif
852 861
853 } } // namespace v8::internal 862 } } // namespace v8::internal
854 863
855 #endif // V8_DEOPTIMIZER_H_ 864 #endif // V8_DEOPTIMIZER_H_
OLDNEW
« no previous file with comments | « no previous file | src/deoptimizer.cc » ('j') | src/spaces.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698