| OLD | NEW |
| 1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 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 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 415 | 415 |
| 416 // Pushing an expression expects that the expression is trivial (according | 416 // Pushing an expression expects that the expression is trivial (according |
| 417 // to Expression::IsTrivial). | 417 // to Expression::IsTrivial). |
| 418 void Push(Expression* expr); | 418 void Push(Expression* expr); |
| 419 | 419 |
| 420 // Nip removes zero or more elements from immediately below the top | 420 // Nip removes zero or more elements from immediately below the top |
| 421 // of the frame, leaving the previous top-of-frame value on top of | 421 // of the frame, leaving the previous top-of-frame value on top of |
| 422 // the frame. Nip(k) is equivalent to x = Pop(), Drop(k), Push(x). | 422 // the frame. Nip(k) is equivalent to x = Pop(), Drop(k), Push(x). |
| 423 inline void Nip(int num_dropped); | 423 inline void Nip(int num_dropped); |
| 424 | 424 |
| 425 // Update the type information of a local variable frame element directly. |
| 426 inline void SetTypeForLocalAt(int index, NumberInfo info); |
| 427 |
| 425 private: | 428 private: |
| 426 static const int kLocal0Offset = JavaScriptFrameConstants::kLocal0Offset; | 429 static const int kLocal0Offset = JavaScriptFrameConstants::kLocal0Offset; |
| 427 static const int kFunctionOffset = JavaScriptFrameConstants::kFunctionOffset; | 430 static const int kFunctionOffset = JavaScriptFrameConstants::kFunctionOffset; |
| 428 static const int kContextOffset = StandardFrameConstants::kContextOffset; | 431 static const int kContextOffset = StandardFrameConstants::kContextOffset; |
| 429 | 432 |
| 430 static const int kHandlerSize = StackHandlerConstants::kSize / kPointerSize; | 433 static const int kHandlerSize = StackHandlerConstants::kSize / kPointerSize; |
| 431 static const int kPreallocatedElements = 5 + 8; // 8 expression stack slots. | 434 static const int kPreallocatedElements = 5 + 8; // 8 expression stack slots. |
| 432 | 435 |
| 433 ZoneList<FrameElement> elements_; | 436 ZoneList<FrameElement> elements_; |
| 434 | 437 |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 590 inline bool Equals(VirtualFrame* other); | 593 inline bool Equals(VirtualFrame* other); |
| 591 | 594 |
| 592 // Classes that need raw access to the elements_ array. | 595 // Classes that need raw access to the elements_ array. |
| 593 friend class DeferredCode; | 596 friend class DeferredCode; |
| 594 friend class JumpTarget; | 597 friend class JumpTarget; |
| 595 }; | 598 }; |
| 596 | 599 |
| 597 } } // namespace v8::internal | 600 } } // namespace v8::internal |
| 598 | 601 |
| 599 #endif // V8_IA32_VIRTUAL_FRAME_IA32_H_ | 602 #endif // V8_IA32_VIRTUAL_FRAME_IA32_H_ |
| OLD | NEW |