| Index: src/x64/frames-x64.h
|
| diff --git a/src/x64/frames-x64.h b/src/x64/frames-x64.h
|
| index 209aa2d3070e48da7890e9457e64fe4718cfd782..6e3632cfe9a4dbc3041eade8f08d5f2e6a279d16 100644
|
| --- a/src/x64/frames-x64.h
|
| +++ b/src/x64/frames-x64.h
|
| @@ -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_
|
|
|