Index: src/objects.h |
=================================================================== |
--- src/objects.h (revision 8701) |
+++ src/objects.h (working copy) |
@@ -790,6 +790,8 @@ |
STRUCT_LIST(DECLARE_STRUCT_PREDICATE) |
#undef DECLARE_STRUCT_PREDICATE |
+ INLINE(bool IsSpecObject()); |
+ |
// Oddball testing. |
INLINE(bool IsUndefined()); |
INLINE(bool IsNull()); |
@@ -3480,13 +3482,14 @@ |
UNARY_OP_IC, |
BINARY_OP_IC, |
COMPARE_IC, |
+ TO_BOOLEAN_IC, |
// No more than 16 kinds. The value currently encoded in four bits in |
// Flags. |
// Pseudo-kinds. |
REGEXP = BUILTIN, |
FIRST_IC_KIND = LOAD_IC, |
- LAST_IC_KIND = COMPARE_IC |
+ LAST_IC_KIND = TO_BOOLEAN_IC |
}; |
enum { |
@@ -3552,13 +3555,10 @@ |
inline bool is_keyed_store_stub() { return kind() == KEYED_STORE_IC; } |
inline bool is_call_stub() { return kind() == CALL_IC; } |
inline bool is_keyed_call_stub() { return kind() == KEYED_CALL_IC; } |
- inline bool is_unary_op_stub() { |
- return kind() == UNARY_OP_IC; |
- } |
- inline bool is_binary_op_stub() { |
- return kind() == BINARY_OP_IC; |
- } |
+ inline bool is_unary_op_stub() { return kind() == UNARY_OP_IC; } |
+ inline bool is_binary_op_stub() { return kind() == BINARY_OP_IC; } |
inline bool is_compare_ic_stub() { return kind() == COMPARE_IC; } |
+ inline bool is_to_boolean_ic_stub() { return kind() == TO_BOOLEAN_IC; } |
// [major_key]: For kind STUB or BINARY_OP_IC, the major key. |
inline int major_key(); |
@@ -3600,21 +3600,24 @@ |
inline CheckType check_type(); |
inline void set_check_type(CheckType value); |
- // [type-recording unary op type]: For all UNARY_OP_IC. |
+ // [type-recording unary op type]: For kind UNARY_OP_IC. |
inline byte unary_op_type(); |
inline void set_unary_op_type(byte value); |
- // [type-recording binary op type]: For all TYPE_RECORDING_BINARY_OP_IC. |
+ // [type-recording binary op type]: For kind BINARY_OP_IC. |
inline byte binary_op_type(); |
inline void set_binary_op_type(byte value); |
inline byte binary_op_result_type(); |
inline void set_binary_op_result_type(byte value); |
- // [compare state]: For kind compare IC stubs, tells what state the |
- // stub is in. |
+ // [compare state]: For kind COMPARE_IC, tells what state the stub is in. |
inline byte compare_state(); |
inline void set_compare_state(byte value); |
+ // [to_boolean_foo]: For kind TO_BOOLEAN_IC tells what state the stub is in. |
+ inline byte to_boolean_state(); |
+ inline void set_to_boolean_state(byte value); |
+ |
// Get the safepoint entry for the given pc. |
SafepointEntry GetSafepointEntry(Address pc); |
@@ -3756,9 +3759,10 @@ |
static const int kStackSlotsOffset = kKindSpecificFlagsOffset; |
static const int kCheckTypeOffset = kKindSpecificFlagsOffset; |
- static const int kCompareStateOffset = kStubMajorKeyOffset + 1; |
static const int kUnaryOpTypeOffset = kStubMajorKeyOffset + 1; |
static const int kBinaryOpTypeOffset = kStubMajorKeyOffset + 1; |
+ static const int kCompareStateOffset = kStubMajorKeyOffset + 1; |
+ static const int kToBooleanTypeOffset = kStubMajorKeyOffset + 1; |
static const int kHasDeoptimizationSupportOffset = kOptimizableOffset + 1; |
static const int kBinaryOpReturnTypeOffset = kBinaryOpTypeOffset + 1; |