Commit 2517b0ef authored by erik.corry@gmail.com's avatar erik.corry@gmail.com

Fix some asserts in stub generation and file some bugs where

we appear to have valid asserts triggering.
Review URL: http://codereview.chromium.org/7908005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 6a5e0448
......@@ -592,6 +592,8 @@ static MaybeObject* GenerateFastApiDirectCall(
ApiFunction fun(api_function_address);
const int kApiStackSpace = 4;
FrameScope frame_scope(masm, StackFrame::MANUAL);
__ EnterExitFrame(false, kApiStackSpace);
// r0 = v8::Arguments&
......@@ -1233,7 +1235,10 @@ MaybeObject* StubCompiler::GenerateLoadCallback(JSObject* object,
ApiFunction fun(getter_address);
const int kApiStackSpace = 1;
FrameScope frame_scope(masm(), StackFrame::MANUAL);
__ EnterExitFrame(false, kApiStackSpace);
// Create AccessorInfo instance on the stack above the exit frame with
// scratch2 (internal::Object **args_) as the data.
__ str(scratch2, MemOperand(sp, 1 * kPointerSize));
......
// Copyright 2006-2008 the V8 project authors. All rights reserved.
// Copyright 2011 the V8 project authors. All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
......@@ -96,8 +96,7 @@ namespace internal {
class FrameScope {
public:
explicit FrameScope(MacroAssembler* masm, StackFrame::Type type)
: masm_(masm), type_(type) {
ASSERT(!masm->has_frame());
: masm_(masm), type_(type), old_has_frame_(masm->has_frame()) {
masm->set_has_frame(true);
if (type != StackFrame::MANUAL && type_ != StackFrame::NONE) {
masm->EnterFrame(type);
......@@ -108,7 +107,7 @@ class FrameScope {
if (type_ != StackFrame::MANUAL && type_ != StackFrame::NONE) {
masm_->LeaveFrame(type_);
}
masm_->set_has_frame(false);
masm_->set_has_frame(old_has_frame_);
}
// Normally we generate the leave-frame code when this object goes
......@@ -123,6 +122,7 @@ class FrameScope {
private:
MacroAssembler* masm_;
StackFrame::Type type_;
bool old_has_frame_;
};
......
......@@ -596,6 +596,7 @@ static MaybeObject* GenerateFastApiDirectCall(
const int kApiStackSpace = 4;
FrameScope frame_scope(masm, StackFrame::MANUAL);
__ EnterExitFrame(false, kApiStackSpace);
// NOTE: the O32 abi requires a0 to hold a special pointer when returning a
......@@ -1260,7 +1261,9 @@ MaybeObject* StubCompiler::GenerateLoadCallback(JSObject* object,
const int kApiStackSpace = 1;
FrameScope frame_scope(masm(), StackFrame::MANUAL);
__ EnterExitFrame(false, kApiStackSpace);
// Create AccessorInfo instance on the stack above the exit frame with
// scratch2 (internal::Object **args_) as the data.
__ sw(a2, MemOperand(sp, kPointerSize));
......
# Copyright 2009 the V8 project authors. All rights reserved.
# Copyright 2011 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
......@@ -69,6 +69,8 @@ js1_5/Array/regress-465980-02: SKIP
ecma_3/Date/15.9.3.2-1: SKIP
js1_2/function/Number: SKIP
# Causes assert to be triggered: http://code.google.com/p/v8/issues/detail?id=1689
js1_5/GC/regress-311497: SKIP
##################### SLOW TESTS #####################
......
......@@ -37,6 +37,9 @@ S15.3.4.5_A2: FAIL
# '__proto__' should be treated as a normal property in JSON.
S15.12.2_A1: FAIL
# Assert is triggered by this test: http://code.google.com/p/v8/issues/detail?id=1689
S13_A18: SKIP
##################### DELIBERATE INCOMPATIBILITIES #####################
# This tests precision of trignometric functions. We're slightly off
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment