OLD | NEW |
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 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
371 | 371 |
372 | 372 |
373 class KeyedIC: public IC { | 373 class KeyedIC: public IC { |
374 public: | 374 public: |
375 enum StubKind { | 375 enum StubKind { |
376 LOAD, | 376 LOAD, |
377 STORE_NO_TRANSITION, | 377 STORE_NO_TRANSITION, |
378 STORE_TRANSITION_SMI_TO_OBJECT, | 378 STORE_TRANSITION_SMI_TO_OBJECT, |
379 STORE_TRANSITION_SMI_TO_DOUBLE, | 379 STORE_TRANSITION_SMI_TO_DOUBLE, |
380 STORE_TRANSITION_DOUBLE_TO_OBJECT, | 380 STORE_TRANSITION_DOUBLE_TO_OBJECT, |
381 STORE_TRANSITION_HOLEY_SMI_TO_OBJECT, | |
382 STORE_TRANSITION_HOLEY_SMI_TO_DOUBLE, | |
383 STORE_TRANSITION_HOLEY_DOUBLE_TO_OBJECT, | |
384 STORE_AND_GROW_NO_TRANSITION, | 381 STORE_AND_GROW_NO_TRANSITION, |
385 STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT, | 382 STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT, |
386 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE, | 383 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE, |
387 STORE_AND_GROW_TRANSITION_DOUBLE_TO_OBJECT, | 384 STORE_AND_GROW_TRANSITION_DOUBLE_TO_OBJECT |
388 STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_OBJECT, | |
389 STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_DOUBLE, | |
390 STORE_AND_GROW_TRANSITION_HOLEY_DOUBLE_TO_OBJECT | |
391 }; | 385 }; |
392 | 386 |
393 static const int kGrowICDelta = STORE_AND_GROW_NO_TRANSITION - | 387 static const int kGrowICDelta = STORE_AND_GROW_NO_TRANSITION - |
394 STORE_NO_TRANSITION; | 388 STORE_NO_TRANSITION; |
395 STATIC_ASSERT(kGrowICDelta == | 389 STATIC_ASSERT(kGrowICDelta == |
396 STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT - | 390 STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT - |
397 STORE_TRANSITION_SMI_TO_OBJECT); | 391 STORE_TRANSITION_SMI_TO_OBJECT); |
398 STATIC_ASSERT(kGrowICDelta == | 392 STATIC_ASSERT(kGrowICDelta == |
399 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE - | 393 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE - |
400 STORE_TRANSITION_SMI_TO_DOUBLE); | 394 STORE_TRANSITION_SMI_TO_DOUBLE); |
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
831 }; | 825 }; |
832 | 826 |
833 | 827 |
834 // Helper for BinaryOpIC and CompareIC. | 828 // Helper for BinaryOpIC and CompareIC. |
835 enum InlinedSmiCheck { ENABLE_INLINED_SMI_CHECK, DISABLE_INLINED_SMI_CHECK }; | 829 enum InlinedSmiCheck { ENABLE_INLINED_SMI_CHECK, DISABLE_INLINED_SMI_CHECK }; |
836 void PatchInlinedSmiCode(Address address, InlinedSmiCheck check); | 830 void PatchInlinedSmiCode(Address address, InlinedSmiCheck check); |
837 | 831 |
838 } } // namespace v8::internal | 832 } } // namespace v8::internal |
839 | 833 |
840 #endif // V8_IC_H_ | 834 #endif // V8_IC_H_ |
OLD | NEW |