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

Side by Side Diff: src/objects.h

Issue 148223002: Remove CallICs (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Update test262 status file Created 6 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
« no previous file with comments | « src/log.cc ('k') | src/objects.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 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 5115 matching lines...) Expand 10 before | Expand all | Expand 10 after
5126 V(FUNCTION) \ 5126 V(FUNCTION) \
5127 V(OPTIMIZED_FUNCTION) \ 5127 V(OPTIMIZED_FUNCTION) \
5128 V(STUB) \ 5128 V(STUB) \
5129 V(HANDLER) \ 5129 V(HANDLER) \
5130 V(BUILTIN) \ 5130 V(BUILTIN) \
5131 V(REGEXP) 5131 V(REGEXP)
5132 5132
5133 #define IC_KIND_LIST(V) \ 5133 #define IC_KIND_LIST(V) \
5134 V(LOAD_IC) \ 5134 V(LOAD_IC) \
5135 V(KEYED_LOAD_IC) \ 5135 V(KEYED_LOAD_IC) \
5136 V(CALL_IC) \
5137 V(KEYED_CALL_IC) \
5138 V(STORE_IC) \ 5136 V(STORE_IC) \
5139 V(KEYED_STORE_IC) \ 5137 V(KEYED_STORE_IC) \
5140 V(BINARY_OP_IC) \ 5138 V(BINARY_OP_IC) \
5141 V(COMPARE_IC) \ 5139 V(COMPARE_IC) \
5142 V(COMPARE_NIL_IC) \ 5140 V(COMPARE_NIL_IC) \
5143 V(TO_BOOLEAN_IC) 5141 V(TO_BOOLEAN_IC)
5144 5142
5145 #define CODE_KIND_LIST(V) \ 5143 #define CODE_KIND_LIST(V) \
5146 NON_IC_KIND_LIST(V) \ 5144 NON_IC_KIND_LIST(V) \
5147 IC_KIND_LIST(V) 5145 IC_KIND_LIST(V)
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
5252 inline int arguments_count(); // Only valid for call IC stubs. 5250 inline int arguments_count(); // Only valid for call IC stubs.
5253 5251
5254 // Testers for IC stub kinds. 5252 // Testers for IC stub kinds.
5255 inline bool is_inline_cache_stub(); 5253 inline bool is_inline_cache_stub();
5256 inline bool is_debug_stub(); 5254 inline bool is_debug_stub();
5257 inline bool is_handler() { return kind() == HANDLER; } 5255 inline bool is_handler() { return kind() == HANDLER; }
5258 inline bool is_load_stub() { return kind() == LOAD_IC; } 5256 inline bool is_load_stub() { return kind() == LOAD_IC; }
5259 inline bool is_keyed_load_stub() { return kind() == KEYED_LOAD_IC; } 5257 inline bool is_keyed_load_stub() { return kind() == KEYED_LOAD_IC; }
5260 inline bool is_store_stub() { return kind() == STORE_IC; } 5258 inline bool is_store_stub() { return kind() == STORE_IC; }
5261 inline bool is_keyed_store_stub() { return kind() == KEYED_STORE_IC; } 5259 inline bool is_keyed_store_stub() { return kind() == KEYED_STORE_IC; }
5262 inline bool is_call_stub() { return kind() == CALL_IC; }
5263 inline bool is_keyed_call_stub() { return kind() == KEYED_CALL_IC; }
5264 inline bool is_binary_op_stub() { return kind() == BINARY_OP_IC; } 5260 inline bool is_binary_op_stub() { return kind() == BINARY_OP_IC; }
5265 inline bool is_compare_ic_stub() { return kind() == COMPARE_IC; } 5261 inline bool is_compare_ic_stub() { return kind() == COMPARE_IC; }
5266 inline bool is_compare_nil_ic_stub() { return kind() == COMPARE_NIL_IC; } 5262 inline bool is_compare_nil_ic_stub() { return kind() == COMPARE_NIL_IC; }
5267 inline bool is_to_boolean_ic_stub() { return kind() == TO_BOOLEAN_IC; } 5263 inline bool is_to_boolean_ic_stub() { return kind() == TO_BOOLEAN_IC; }
5268 inline bool is_keyed_stub(); 5264 inline bool is_keyed_stub();
5269 5265
5270 inline void set_raw_kind_specific_flags1(int value); 5266 inline void set_raw_kind_specific_flags1(int value);
5271 inline void set_raw_kind_specific_flags2(int value); 5267 inline void set_raw_kind_specific_flags2(int value);
5272 5268
5273 // [major_key]: For kind STUB or BINARY_OP_IC, the major key. 5269 // [major_key]: For kind STUB or BINARY_OP_IC, the major key.
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
5322 inline void set_safepoint_table_offset(unsigned offset); 5318 inline void set_safepoint_table_offset(unsigned offset);
5323 5319
5324 // [back_edge_table_start]: For kind FUNCTION, the offset in the 5320 // [back_edge_table_start]: For kind FUNCTION, the offset in the
5325 // instruction stream where the back edge table starts. 5321 // instruction stream where the back edge table starts.
5326 inline unsigned back_edge_table_offset(); 5322 inline unsigned back_edge_table_offset();
5327 inline void set_back_edge_table_offset(unsigned offset); 5323 inline void set_back_edge_table_offset(unsigned offset);
5328 5324
5329 inline bool back_edges_patched_for_osr(); 5325 inline bool back_edges_patched_for_osr();
5330 inline void set_back_edges_patched_for_osr(bool value); 5326 inline void set_back_edges_patched_for_osr(bool value);
5331 5327
5332 // [check type]: For kind CALL_IC, tells how to check if the
5333 // receiver is valid for the given call.
5334 inline CheckType check_type();
5335 inline void set_check_type(CheckType value);
5336
5337 // [to_boolean_foo]: For kind TO_BOOLEAN_IC tells what state the stub is in. 5328 // [to_boolean_foo]: For kind TO_BOOLEAN_IC tells what state the stub is in.
5338 inline byte to_boolean_state(); 5329 inline byte to_boolean_state();
5339 5330
5340 // [has_function_cache]: For kind STUB tells whether there is a function 5331 // [has_function_cache]: For kind STUB tells whether there is a function
5341 // cache is passed to the stub. 5332 // cache is passed to the stub.
5342 inline bool has_function_cache(); 5333 inline bool has_function_cache();
5343 inline void set_has_function_cache(bool flag); 5334 inline void set_has_function_cache(bool flag);
5344 5335
5345 5336
5346 // [marked_for_deoptimization]: For kind OPTIMIZED_FUNCTION tells whether 5337 // [marked_for_deoptimization]: For kind OPTIMIZED_FUNCTION tells whether
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
5553 5544
5554 static const int kHeaderPaddingStart = kConstantPoolOffset + kIntSize; 5545 static const int kHeaderPaddingStart = kConstantPoolOffset + kIntSize;
5555 5546
5556 // Add padding to align the instruction start following right after 5547 // Add padding to align the instruction start following right after
5557 // the Code object header. 5548 // the Code object header.
5558 static const int kHeaderSize = 5549 static const int kHeaderSize =
5559 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; 5550 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask;
5560 5551
5561 // Byte offsets within kKindSpecificFlags1Offset. 5552 // Byte offsets within kKindSpecificFlags1Offset.
5562 static const int kOptimizableOffset = kKindSpecificFlags1Offset; 5553 static const int kOptimizableOffset = kKindSpecificFlags1Offset;
5563 static const int kCheckTypeOffset = kKindSpecificFlags1Offset;
5564 5554
5565 static const int kFullCodeFlags = kOptimizableOffset + 1; 5555 static const int kFullCodeFlags = kOptimizableOffset + 1;
5566 class FullCodeFlagsHasDeoptimizationSupportField: 5556 class FullCodeFlagsHasDeoptimizationSupportField:
5567 public BitField<bool, 0, 1> {}; // NOLINT 5557 public BitField<bool, 0, 1> {}; // NOLINT
5568 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {}; 5558 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {};
5569 class FullCodeFlagsIsCompiledOptimizable: public BitField<bool, 2, 1> {}; 5559 class FullCodeFlagsIsCompiledOptimizable: public BitField<bool, 2, 1> {};
5570 5560
5571 static const int kAllowOSRAtLoopNestingLevelOffset = kFullCodeFlags + 1; 5561 static const int kAllowOSRAtLoopNestingLevelOffset = kFullCodeFlags + 1;
5572 static const int kProfilerTicksOffset = kAllowOSRAtLoopNestingLevelOffset + 1; 5562 static const int kProfilerTicksOffset = kAllowOSRAtLoopNestingLevelOffset + 1;
5573 5563
(...skipping 5195 matching lines...) Expand 10 before | Expand all | Expand 10 after
10769 } else { 10759 } else {
10770 value &= ~(1 << bit_position); 10760 value &= ~(1 << bit_position);
10771 } 10761 }
10772 return value; 10762 return value;
10773 } 10763 }
10774 }; 10764 };
10775 10765
10776 } } // namespace v8::internal 10766 } } // namespace v8::internal
10777 10767
10778 #endif // V8_OBJECTS_H_ 10768 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/log.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698