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 2321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2332 | 2332 |
2333 ElementsKind from_kind_; | 2333 ElementsKind from_kind_; |
2334 ElementsKind to_kind_; | 2334 ElementsKind to_kind_; |
2335 bool is_jsarray_; | 2335 bool is_jsarray_; |
2336 KeyedAccessStoreMode store_mode_; | 2336 KeyedAccessStoreMode store_mode_; |
2337 | 2337 |
2338 DISALLOW_COPY_AND_ASSIGN(ElementsTransitionAndStoreStub); | 2338 DISALLOW_COPY_AND_ASSIGN(ElementsTransitionAndStoreStub); |
2339 }; | 2339 }; |
2340 | 2340 |
2341 | 2341 |
2342 // TODO(bmeurer) Remove this when compiled transitions is enabled | |
2343 class ElementsTransitionAndStorePlatformStub : public PlatformCodeStub { | |
2344 public: | |
2345 ElementsTransitionAndStorePlatformStub(ElementsKind from, | |
2346 ElementsKind to, | |
2347 bool is_jsarray, | |
2348 StrictModeFlag strict_mode, | |
2349 KeyedAccessStoreMode store_mode) | |
2350 : from_(from), | |
2351 to_(to), | |
2352 is_jsarray_(is_jsarray), | |
2353 strict_mode_(strict_mode), | |
2354 store_mode_(store_mode) {} | |
2355 | |
2356 private: | |
2357 class FromBits: public BitField<ElementsKind, 0, 8> {}; | |
2358 class ToBits: public BitField<ElementsKind, 8, 8> {}; | |
2359 class IsJSArrayBits: public BitField<bool, 16, 1> {}; | |
2360 class StrictModeBits: public BitField<StrictModeFlag, 17, 1> {}; | |
2361 class StoreModeBits: public BitField<KeyedAccessStoreMode, 18, 4> {}; | |
2362 | |
2363 Major MajorKey() { return ElementsTransitionAndStore; } | |
2364 int MinorKey() { | |
2365 return FromBits::encode(from_) | | |
2366 ToBits::encode(to_) | | |
2367 IsJSArrayBits::encode(is_jsarray_) | | |
2368 StrictModeBits::encode(strict_mode_) | | |
2369 StoreModeBits::encode(store_mode_); | |
2370 } | |
2371 | |
2372 void Generate(MacroAssembler* masm); | |
2373 | |
2374 ElementsKind from_; | |
2375 ElementsKind to_; | |
2376 bool is_jsarray_; | |
2377 StrictModeFlag strict_mode_; | |
2378 KeyedAccessStoreMode store_mode_; | |
2379 | |
2380 DISALLOW_COPY_AND_ASSIGN(ElementsTransitionAndStorePlatformStub); | |
2381 }; | |
2382 | |
2383 | |
2384 class StoreArrayLiteralElementStub : public PlatformCodeStub { | 2342 class StoreArrayLiteralElementStub : public PlatformCodeStub { |
2385 public: | 2343 public: |
2386 StoreArrayLiteralElementStub() | 2344 StoreArrayLiteralElementStub() |
2387 : fp_registers_(CanUseFPRegisters()) { } | 2345 : fp_registers_(CanUseFPRegisters()) { } |
2388 | 2346 |
2389 private: | 2347 private: |
2390 class FPRegisters: public BitField<bool, 0, 1> {}; | 2348 class FPRegisters: public BitField<bool, 0, 1> {}; |
2391 | 2349 |
2392 Major MajorKey() { return StoreArrayLiteralElement; } | 2350 Major MajorKey() { return StoreArrayLiteralElement; } |
2393 int MinorKey() { return FPRegisters::encode(fp_registers_); } | 2351 int MinorKey() { return FPRegisters::encode(fp_registers_); } |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2446 int MinorKey() { return 0; } | 2404 int MinorKey() { return 0; } |
2447 | 2405 |
2448 void Generate(MacroAssembler* masm); | 2406 void Generate(MacroAssembler* masm); |
2449 | 2407 |
2450 DISALLOW_COPY_AND_ASSIGN(ProfileEntryHookStub); | 2408 DISALLOW_COPY_AND_ASSIGN(ProfileEntryHookStub); |
2451 }; | 2409 }; |
2452 | 2410 |
2453 } } // namespace v8::internal | 2411 } } // namespace v8::internal |
2454 | 2412 |
2455 #endif // V8_CODE_STUBS_H_ | 2413 #endif // V8_CODE_STUBS_H_ |
OLD | NEW |