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...) 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, |
381 STORE_AND_GROW_NO_TRANSITION, | 384 STORE_AND_GROW_NO_TRANSITION, |
382 STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT, | 385 STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT, |
383 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE, | 386 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE, |
384 STORE_AND_GROW_TRANSITION_DOUBLE_TO_OBJECT | 387 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 |
385 }; | 391 }; |
386 | 392 |
387 static const int kGrowICDelta = STORE_AND_GROW_NO_TRANSITION - | 393 static const int kGrowICDelta = STORE_AND_GROW_NO_TRANSITION - |
388 STORE_NO_TRANSITION; | 394 STORE_NO_TRANSITION; |
389 STATIC_ASSERT(kGrowICDelta == | 395 STATIC_ASSERT(kGrowICDelta == |
390 STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT - | 396 STORE_AND_GROW_TRANSITION_SMI_TO_OBJECT - |
391 STORE_TRANSITION_SMI_TO_OBJECT); | 397 STORE_TRANSITION_SMI_TO_OBJECT); |
392 STATIC_ASSERT(kGrowICDelta == | 398 STATIC_ASSERT(kGrowICDelta == |
393 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE - | 399 STORE_AND_GROW_TRANSITION_SMI_TO_DOUBLE - |
394 STORE_TRANSITION_SMI_TO_DOUBLE); | 400 STORE_TRANSITION_SMI_TO_DOUBLE); |
(...skipping 430 matching lines...) Loading... |
825 }; | 831 }; |
826 | 832 |
827 | 833 |
828 // Helper for BinaryOpIC and CompareIC. | 834 // Helper for BinaryOpIC and CompareIC. |
829 enum InlinedSmiCheck { ENABLE_INLINED_SMI_CHECK, DISABLE_INLINED_SMI_CHECK }; | 835 enum InlinedSmiCheck { ENABLE_INLINED_SMI_CHECK, DISABLE_INLINED_SMI_CHECK }; |
830 void PatchInlinedSmiCode(Address address, InlinedSmiCheck check); | 836 void PatchInlinedSmiCode(Address address, InlinedSmiCheck check); |
831 | 837 |
832 } } // namespace v8::internal | 838 } } // namespace v8::internal |
833 | 839 |
834 #endif // V8_IC_H_ | 840 #endif // V8_IC_H_ |
OLD | NEW |