Index: src/arm/macro-assembler-arm.cc |
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc |
index cf4258c83a2025463b89a79df36c3a0cc4aeda05..90bad75a767245d49e8e10aed82497f3bd58dcb9 100644 |
--- a/src/arm/macro-assembler-arm.cc |
+++ b/src/arm/macro-assembler-arm.cc |
@@ -1094,7 +1094,7 @@ void MacroAssembler::InvokeFunction(Register fun, |
} |
-void MacroAssembler::InvokeFunction(JSFunction* function, |
+void MacroAssembler::InvokeFunction(Handle<JSFunction> function, |
const ParameterCount& actual, |
InvokeFlag flag, |
CallKind call_kind) { |
@@ -1102,7 +1102,7 @@ void MacroAssembler::InvokeFunction(JSFunction* function, |
ASSERT(flag == JUMP_FUNCTION || has_frame()); |
// Get the function and setup the context. |
- mov(r1, Operand(Handle<JSFunction>(function))); |
+ mov(r1, Operand(function)); |
ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); |
ParameterCount expected(function->shared()->formal_parameter_count()); |
@@ -2084,41 +2084,19 @@ void MacroAssembler::CallStub(CodeStub* stub, Condition cond) { |
} |
-MaybeObject* MacroAssembler::TryCallStub(CodeStub* stub, Condition cond) { |
- ASSERT(AllowThisStubCall(stub)); // Stub calls are not allowed in some stubs. |
- Object* result; |
- { MaybeObject* maybe_result = stub->TryGetCode(); |
- if (!maybe_result->ToObject(&result)) return maybe_result; |
- } |
- Handle<Code> code(Code::cast(result)); |
- Call(code, RelocInfo::CODE_TARGET, kNoASTId, cond); |
- return result; |
-} |
- |
- |
void MacroAssembler::TailCallStub(CodeStub* stub, Condition cond) { |
ASSERT(allow_stub_calls_ || stub->CompilingCallsToThisStubIsGCSafe()); |
Jump(stub->GetCode(), RelocInfo::CODE_TARGET, cond); |
} |
-MaybeObject* MacroAssembler::TryTailCallStub(CodeStub* stub, Condition cond) { |
- Object* result; |
- { MaybeObject* maybe_result = stub->TryGetCode(); |
- if (!maybe_result->ToObject(&result)) return maybe_result; |
- } |
- Jump(Handle<Code>(Code::cast(result)), RelocInfo::CODE_TARGET, cond); |
- return result; |
-} |
- |
- |
static int AddressOffset(ExternalReference ref0, ExternalReference ref1) { |
return ref0.address() - ref1.address(); |
} |
-MaybeObject* MacroAssembler::TryCallApiFunctionAndReturn( |
- ExternalReference function, int stack_space) { |
+void MacroAssembler::CallApiFunctionAndReturn(ExternalReference function, |
+ int stack_space) { |
ExternalReference next_address = |
ExternalReference::handle_scope_next_address(); |
const int kNextOffset = 0; |
@@ -2181,14 +2159,10 @@ MaybeObject* MacroAssembler::TryCallApiFunctionAndReturn( |
mov(pc, lr); |
bind(&promote_scheduled_exception); |
- MaybeObject* result |
- = TryTailCallExternalReference( |
- ExternalReference(Runtime::kPromoteScheduledException, isolate()), |
- 0, |
- 1); |
- if (result->IsFailure()) { |
- return result; |
- } |
+ TailCallExternalReference( |
+ ExternalReference(Runtime::kPromoteScheduledException, isolate()), |
+ 0, |
+ 1); |
// HandleScope limit has changed. Delete allocated extensions. |
bind(&delete_allocated_handles); |
@@ -2200,8 +2174,6 @@ MaybeObject* MacroAssembler::TryCallApiFunctionAndReturn( |
ExternalReference::delete_handle_scope_extensions(isolate()), 1); |
mov(r0, r4); |
jmp(&leave_exit_frame); |
- |
- return result; |
} |
@@ -2633,17 +2605,6 @@ void MacroAssembler::TailCallExternalReference(const ExternalReference& ext, |
} |
-MaybeObject* MacroAssembler::TryTailCallExternalReference( |
- const ExternalReference& ext, int num_arguments, int result_size) { |
- // TODO(1236192): Most runtime routines don't need the number of |
- // arguments passed in because it is constant. At some point we |
- // should remove this need and make the runtime routine entry code |
- // smarter. |
- mov(r0, Operand(num_arguments)); |
- return TryJumpToExternalReference(ext); |
-} |
- |
- |
void MacroAssembler::TailCallRuntime(Runtime::FunctionId fid, |
int num_arguments, |
int result_size) { |
@@ -2664,18 +2625,6 @@ void MacroAssembler::JumpToExternalReference(const ExternalReference& builtin) { |
} |
-MaybeObject* MacroAssembler::TryJumpToExternalReference( |
- const ExternalReference& builtin) { |
-#if defined(__thumb__) |
- // Thumb mode builtin. |
- ASSERT((reinterpret_cast<intptr_t>(builtin.address()) & 1) == 1); |
-#endif |
- mov(r1, Operand(builtin)); |
- CEntryStub stub(1); |
- return TryTailCallStub(&stub); |
-} |
- |
- |
void MacroAssembler::InvokeBuiltin(Builtins::JavaScript id, |
InvokeFlag flag, |
const CallWrapper& call_wrapper) { |