Author: [email protected]
Date: Tue May  5 05:26:29 2009
New Revision: 1865

Modified:
    branches/bleeding_edge/src/x64/frames-x64.h

Log:
Add a x64 stub of frames-x64.h so we have StackHandlerConstants.

This is just a stripped down version of ia32, and will need to change.

Review URL: http://codereview.chromium.org/108010


Modified: branches/bleeding_edge/src/x64/frames-x64.h
==============================================================================
--- branches/bleeding_edge/src/x64/frames-x64.h (original)
+++ branches/bleeding_edge/src/x64/frames-x64.h Tue May  5 05:26:29 2009
@@ -25,3 +25,97 @@
  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+#ifndef V8_X64_FRAMES_X64_H_
+#define V8_X64_FRAMES_X64_H_
+
+namespace v8 { namespace internal {
+
+// TODO(port): This is a stub, mostly just a copy of the ia32 bit version.
+// This will all need to change to be correct for x64.
+
+static const int kNumRegs = 8;
+static const RegList kJSCallerSaved = 0;
+static const int kNumJSCallerSaved = 5;
+typedef Object* JSCallerSavedBuffer[kNumJSCallerSaved];
+
+class StackHandlerConstants : public AllStatic {
+ public:
+  static const int kNextOffset  = -1 * kPointerSize;
+  static const int kPPOffset    = -1 * kPointerSize;
+  static const int kFPOffset    = -1 * kPointerSize;
+
+  static const int kCodeOffset  = -1 * kPointerSize;
+
+  static const int kStateOffset = -1 * kPointerSize;
+  static const int kPCOffset    = -1 * kPointerSize;
+
+  static const int kAddressDisplacement = -1 * kPointerSize;
+  static const int kSize = kPCOffset + kPointerSize;
+};
+
+
+class EntryFrameConstants : public AllStatic {
+ public:
+  static const int kCallerFPOffset      = -1 * kPointerSize;
+
+  static const int kFunctionArgOffset   = -1 * kPointerSize;
+  static const int kReceiverArgOffset   = -1 * kPointerSize;
+  static const int kArgcOffset          = -1 * kPointerSize;
+  static const int kArgvOffset          = -1 * kPointerSize;
+};
+
+
+class ExitFrameConstants : public AllStatic {
+ public:
+  static const int kDebugMarkOffset = -1 * kPointerSize;
+  static const int kSPOffset        = -1 * kPointerSize;
+
+  static const int kPPDisplacement = -1 * kPointerSize;
+
+  static const int kCallerFPOffset = -1 * kPointerSize;
+  static const int kCallerPCOffset = -1 * kPointerSize;
+};
+
+
+class StandardFrameConstants : public AllStatic {
+ public:
+  static const int kExpressionsOffset = -1 * kPointerSize;
+  static const int kMarkerOffset      = -1 * kPointerSize;
+  static const int kContextOffset     = -1 * kPointerSize;
+  static const int kCallerFPOffset    = -1 * kPointerSize;
+  static const int kCallerPCOffset    = -1 * kPointerSize;
+  static const int kCallerSPOffset    = -1 * kPointerSize;
+};
+
+
+class JavaScriptFrameConstants : public AllStatic {
+ public:
+  static const int kLocal0Offset =  
StandardFrameConstants::kExpressionsOffset;
+  static const int kSavedRegistersOffset = -1 * kPointerSize;
+  static const int kFunctionOffset = StandardFrameConstants::kMarkerOffset;
+
+  static const int kParam0Offset   = -1 * kPointerSize;
+  static const int kReceiverOffset = -1 * kPointerSize;
+};
+
+
+class ArgumentsAdaptorFrameConstants : public AllStatic {
+ public:
+  static const int kLengthOffset =  
StandardFrameConstants::kExpressionsOffset;
+};
+
+
+class InternalFrameConstants : public AllStatic {
+ public:
+  static const int kCodeOffset =  
StandardFrameConstants::kExpressionsOffset;
+};
+
+
+inline Object* JavaScriptFrame::function_slot_object() const {
+  const int offset = JavaScriptFrameConstants::kFunctionOffset;
+  return Memory::Object_at(fp() + offset);
+}
+
+} }  // namespace v8::internal
+
+#endif  // V8_X64_FRAMES_X64_H_

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to