Index: src/arm/virtual-frame-arm.cc |
=================================================================== |
--- src/arm/virtual-frame-arm.cc (revision 3765) |
+++ src/arm/virtual-frame-arm.cc (working copy) |
@@ -219,36 +219,15 @@ |
} |
-void VirtualFrame::RawCallStub(CodeStub* stub) { |
- ASSERT(cgen()->HasValidEntryRegisters()); |
- __ CallStub(stub); |
-} |
- |
- |
-void VirtualFrame::CallStub(CodeStub* stub, Result* arg) { |
- PrepareForCall(0, 0); |
- arg->Unuse(); |
- RawCallStub(stub); |
-} |
- |
- |
-void VirtualFrame::CallStub(CodeStub* stub, Result* arg0, Result* arg1) { |
- PrepareForCall(0, 0); |
- arg0->Unuse(); |
- arg1->Unuse(); |
- RawCallStub(stub); |
-} |
- |
- |
void VirtualFrame::CallRuntime(Runtime::Function* f, int arg_count) { |
- PrepareForCall(arg_count, arg_count); |
+ Forget(arg_count); |
ASSERT(cgen()->HasValidEntryRegisters()); |
__ CallRuntime(f, arg_count); |
} |
void VirtualFrame::CallRuntime(Runtime::FunctionId id, int arg_count) { |
- PrepareForCall(arg_count, arg_count); |
+ Forget(arg_count); |
ASSERT(cgen()->HasValidEntryRegisters()); |
__ CallRuntime(id, arg_count); |
} |
@@ -257,102 +236,34 @@ |
void VirtualFrame::InvokeBuiltin(Builtins::JavaScript id, |
InvokeJSFlags flags, |
int arg_count) { |
- PrepareForCall(arg_count, arg_count); |
+ Forget(arg_count); |
__ InvokeBuiltin(id, flags); |
} |
-void VirtualFrame::RawCallCodeObject(Handle<Code> code, |
- RelocInfo::Mode rmode) { |
- ASSERT(cgen()->HasValidEntryRegisters()); |
- __ Call(code, rmode); |
-} |
- |
- |
void VirtualFrame::CallCodeObject(Handle<Code> code, |
RelocInfo::Mode rmode, |
int dropped_args) { |
- int spilled_args = 0; |
switch (code->kind()) { |
case Code::CALL_IC: |
- spilled_args = dropped_args + 1; |
- break; |
case Code::FUNCTION: |
- spilled_args = dropped_args + 1; |
break; |
case Code::KEYED_LOAD_IC: |
- ASSERT(dropped_args == 0); |
- spilled_args = 2; |
- break; |
- default: |
- // The other types of code objects are called with values |
- // in specific registers, and are handled in functions with |
- // a different signature. |
- UNREACHABLE(); |
- break; |
- } |
- PrepareForCall(spilled_args, dropped_args); |
- RawCallCodeObject(code, rmode); |
-} |
- |
- |
-void VirtualFrame::CallCodeObject(Handle<Code> code, |
- RelocInfo::Mode rmode, |
- Result* arg, |
- int dropped_args) { |
- int spilled_args = 0; |
- switch (code->kind()) { |
case Code::LOAD_IC: |
- ASSERT(arg->reg().is(r2)); |
- ASSERT(dropped_args == 0); |
- spilled_args = 1; |
- break; |
case Code::KEYED_STORE_IC: |
- ASSERT(arg->reg().is(r0)); |
- ASSERT(dropped_args == 0); |
- spilled_args = 2; |
- break; |
- default: |
- // No other types of code objects are called with values |
- // in exactly one register. |
- UNREACHABLE(); |
- break; |
- } |
- PrepareForCall(spilled_args, dropped_args); |
- arg->Unuse(); |
- RawCallCodeObject(code, rmode); |
-} |
- |
- |
-void VirtualFrame::CallCodeObject(Handle<Code> code, |
- RelocInfo::Mode rmode, |
- Result* arg0, |
- Result* arg1, |
- int dropped_args) { |
- int spilled_args = 1; |
- switch (code->kind()) { |
case Code::STORE_IC: |
- ASSERT(arg0->reg().is(r0)); |
- ASSERT(arg1->reg().is(r2)); |
ASSERT(dropped_args == 0); |
- spilled_args = 1; |
break; |
case Code::BUILTIN: |
ASSERT(*code == Builtins::builtin(Builtins::JSConstructCall)); |
- ASSERT(arg0->reg().is(r0)); |
- ASSERT(arg1->reg().is(r1)); |
- spilled_args = dropped_args + 1; |
break; |
default: |
- // No other types of code objects are called with values |
- // in exactly two registers. |
UNREACHABLE(); |
break; |
} |
- PrepareForCall(spilled_args, dropped_args); |
- arg0->Unuse(); |
- arg1->Unuse(); |
- RawCallCodeObject(code, rmode); |
+ Forget(dropped_args); |
+ ASSERT(cgen()->HasValidEntryRegisters()); |
+ __ Call(code, rmode); |
} |