| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 3258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3269 STUB, | 3269 STUB, |
| 3270 BUILTIN, | 3270 BUILTIN, |
| 3271 LOAD_IC, | 3271 LOAD_IC, |
| 3272 KEYED_LOAD_IC, | 3272 KEYED_LOAD_IC, |
| 3273 KEYED_EXTERNAL_ARRAY_LOAD_IC, | 3273 KEYED_EXTERNAL_ARRAY_LOAD_IC, |
| 3274 CALL_IC, | 3274 CALL_IC, |
| 3275 KEYED_CALL_IC, | 3275 KEYED_CALL_IC, |
| 3276 STORE_IC, | 3276 STORE_IC, |
| 3277 KEYED_STORE_IC, | 3277 KEYED_STORE_IC, |
| 3278 KEYED_EXTERNAL_ARRAY_STORE_IC, | 3278 KEYED_EXTERNAL_ARRAY_STORE_IC, |
| 3279 TYPE_RECORDING_UNARY_OP_IC, |
| 3279 TYPE_RECORDING_BINARY_OP_IC, | 3280 TYPE_RECORDING_BINARY_OP_IC, |
| 3280 COMPARE_IC, | 3281 COMPARE_IC, |
| 3281 // No more than 16 kinds. The value currently encoded in four bits in | 3282 // No more than 16 kinds. The value currently encoded in four bits in |
| 3282 // Flags. | 3283 // Flags. |
| 3283 | 3284 |
| 3284 // Pseudo-kinds. | 3285 // Pseudo-kinds. |
| 3285 REGEXP = BUILTIN, | 3286 REGEXP = BUILTIN, |
| 3286 FIRST_IC_KIND = LOAD_IC, | 3287 FIRST_IC_KIND = LOAD_IC, |
| 3287 LAST_IC_KIND = COMPARE_IC | 3288 LAST_IC_KIND = COMPARE_IC |
| 3288 }; | 3289 }; |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3337 inline int arguments_count(); // Only valid for call IC stubs. | 3338 inline int arguments_count(); // Only valid for call IC stubs. |
| 3338 | 3339 |
| 3339 // Testers for IC stub kinds. | 3340 // Testers for IC stub kinds. |
| 3340 inline bool is_inline_cache_stub(); | 3341 inline bool is_inline_cache_stub(); |
| 3341 inline bool is_load_stub() { return kind() == LOAD_IC; } | 3342 inline bool is_load_stub() { return kind() == LOAD_IC; } |
| 3342 inline bool is_keyed_load_stub() { return kind() == KEYED_LOAD_IC; } | 3343 inline bool is_keyed_load_stub() { return kind() == KEYED_LOAD_IC; } |
| 3343 inline bool is_store_stub() { return kind() == STORE_IC; } | 3344 inline bool is_store_stub() { return kind() == STORE_IC; } |
| 3344 inline bool is_keyed_store_stub() { return kind() == KEYED_STORE_IC; } | 3345 inline bool is_keyed_store_stub() { return kind() == KEYED_STORE_IC; } |
| 3345 inline bool is_call_stub() { return kind() == CALL_IC; } | 3346 inline bool is_call_stub() { return kind() == CALL_IC; } |
| 3346 inline bool is_keyed_call_stub() { return kind() == KEYED_CALL_IC; } | 3347 inline bool is_keyed_call_stub() { return kind() == KEYED_CALL_IC; } |
| 3348 inline bool is_type_recording_unary_op_stub() { |
| 3349 return kind() == TYPE_RECORDING_UNARY_OP_IC; |
| 3350 } |
| 3347 inline bool is_type_recording_binary_op_stub() { | 3351 inline bool is_type_recording_binary_op_stub() { |
| 3348 return kind() == TYPE_RECORDING_BINARY_OP_IC; | 3352 return kind() == TYPE_RECORDING_BINARY_OP_IC; |
| 3349 } | 3353 } |
| 3350 inline bool is_compare_ic_stub() { return kind() == COMPARE_IC; } | 3354 inline bool is_compare_ic_stub() { return kind() == COMPARE_IC; } |
| 3351 inline bool is_external_array_load_stub() { | 3355 inline bool is_external_array_load_stub() { |
| 3352 return kind() == KEYED_EXTERNAL_ARRAY_LOAD_IC; | 3356 return kind() == KEYED_EXTERNAL_ARRAY_LOAD_IC; |
| 3353 } | 3357 } |
| 3354 inline bool is_external_array_store_stub() { | 3358 inline bool is_external_array_store_stub() { |
| 3355 return kind() == KEYED_EXTERNAL_ARRAY_STORE_IC; | 3359 return kind() == KEYED_EXTERNAL_ARRAY_STORE_IC; |
| 3356 } | 3360 } |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3394 // receiver is valid for the given call. | 3398 // receiver is valid for the given call. |
| 3395 inline CheckType check_type(); | 3399 inline CheckType check_type(); |
| 3396 inline void set_check_type(CheckType value); | 3400 inline void set_check_type(CheckType value); |
| 3397 | 3401 |
| 3398 // [external array type]: For kind KEYED_EXTERNAL_ARRAY_LOAD_IC and | 3402 // [external array type]: For kind KEYED_EXTERNAL_ARRAY_LOAD_IC and |
| 3399 // KEYED_EXTERNAL_ARRAY_STORE_IC, identifies the type of external | 3403 // KEYED_EXTERNAL_ARRAY_STORE_IC, identifies the type of external |
| 3400 // array that the code stub is specialized for. | 3404 // array that the code stub is specialized for. |
| 3401 inline ExternalArrayType external_array_type(); | 3405 inline ExternalArrayType external_array_type(); |
| 3402 inline void set_external_array_type(ExternalArrayType value); | 3406 inline void set_external_array_type(ExternalArrayType value); |
| 3403 | 3407 |
| 3408 // [type-recording unary op type]: For all TYPE_RECORDING_UNARY_OP_IC. |
| 3409 inline byte type_recording_unary_op_type(); |
| 3410 inline void set_type_recording_unary_op_type(byte value); |
| 3411 |
| 3404 // [type-recording binary op type]: For all TYPE_RECORDING_BINARY_OP_IC. | 3412 // [type-recording binary op type]: For all TYPE_RECORDING_BINARY_OP_IC. |
| 3405 inline byte type_recording_binary_op_type(); | 3413 inline byte type_recording_binary_op_type(); |
| 3406 inline void set_type_recording_binary_op_type(byte value); | 3414 inline void set_type_recording_binary_op_type(byte value); |
| 3407 inline byte type_recording_binary_op_result_type(); | 3415 inline byte type_recording_binary_op_result_type(); |
| 3408 inline void set_type_recording_binary_op_result_type(byte value); | 3416 inline void set_type_recording_binary_op_result_type(byte value); |
| 3409 | 3417 |
| 3410 // [compare state]: For kind compare IC stubs, tells what state the | 3418 // [compare state]: For kind compare IC stubs, tells what state the |
| 3411 // stub is in. | 3419 // stub is in. |
| 3412 inline byte compare_state(); | 3420 inline byte compare_state(); |
| 3413 inline void set_compare_state(byte value); | 3421 inline void set_compare_state(byte value); |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3545 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; | 3553 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; |
| 3546 | 3554 |
| 3547 // Byte offsets within kKindSpecificFlagsOffset. | 3555 // Byte offsets within kKindSpecificFlagsOffset. |
| 3548 static const int kStubMajorKeyOffset = kKindSpecificFlagsOffset; | 3556 static const int kStubMajorKeyOffset = kKindSpecificFlagsOffset; |
| 3549 static const int kOptimizableOffset = kKindSpecificFlagsOffset; | 3557 static const int kOptimizableOffset = kKindSpecificFlagsOffset; |
| 3550 static const int kStackSlotsOffset = kKindSpecificFlagsOffset; | 3558 static const int kStackSlotsOffset = kKindSpecificFlagsOffset; |
| 3551 static const int kCheckTypeOffset = kKindSpecificFlagsOffset; | 3559 static const int kCheckTypeOffset = kKindSpecificFlagsOffset; |
| 3552 static const int kExternalArrayTypeOffset = kKindSpecificFlagsOffset; | 3560 static const int kExternalArrayTypeOffset = kKindSpecificFlagsOffset; |
| 3553 | 3561 |
| 3554 static const int kCompareStateOffset = kStubMajorKeyOffset + 1; | 3562 static const int kCompareStateOffset = kStubMajorKeyOffset + 1; |
| 3563 static const int kUnaryOpTypeOffset = kStubMajorKeyOffset + 1; |
| 3555 static const int kBinaryOpTypeOffset = kStubMajorKeyOffset + 1; | 3564 static const int kBinaryOpTypeOffset = kStubMajorKeyOffset + 1; |
| 3556 static const int kHasDeoptimizationSupportOffset = kOptimizableOffset + 1; | 3565 static const int kHasDeoptimizationSupportOffset = kOptimizableOffset + 1; |
| 3557 | 3566 |
| 3558 static const int kBinaryOpReturnTypeOffset = kBinaryOpTypeOffset + 1; | 3567 static const int kBinaryOpReturnTypeOffset = kBinaryOpTypeOffset + 1; |
| 3559 static const int kAllowOSRAtLoopNestingLevelOffset = | 3568 static const int kAllowOSRAtLoopNestingLevelOffset = |
| 3560 kHasDeoptimizationSupportOffset + 1; | 3569 kHasDeoptimizationSupportOffset + 1; |
| 3561 | 3570 |
| 3562 static const int kSafepointTableOffsetOffset = kStackSlotsOffset + kIntSize; | 3571 static const int kSafepointTableOffsetOffset = kStackSlotsOffset + kIntSize; |
| 3563 static const int kStackCheckTableOffsetOffset = kStackSlotsOffset + kIntSize; | 3572 static const int kStackCheckTableOffsetOffset = kStackSlotsOffset + kIntSize; |
| 3564 | 3573 |
| (...skipping 3140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6705 } else { | 6714 } else { |
| 6706 value &= ~(1 << bit_position); | 6715 value &= ~(1 << bit_position); |
| 6707 } | 6716 } |
| 6708 return value; | 6717 return value; |
| 6709 } | 6718 } |
| 6710 }; | 6719 }; |
| 6711 | 6720 |
| 6712 } } // namespace v8::internal | 6721 } } // namespace v8::internal |
| 6713 | 6722 |
| 6714 #endif // V8_OBJECTS_H_ | 6723 #endif // V8_OBJECTS_H_ |
| OLD | NEW |