[buitlins] Remove unneeded branch in Generate_Call
The x64 version was already doing it. Bug: v8:9771 Change-Id: I4fa28dd5fcf5e73561ad37bbbc2c9edd63a20ec0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1826724 Reviewed-by: Dan Elphick <delphick@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#64000}
This commit is contained in:
parent
87450b79ae
commit
7675b95f16
@ -2183,7 +2183,7 @@ void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
|
||||
// -- r1 : the target to call (can be any Object).
|
||||
// -----------------------------------
|
||||
|
||||
Label non_callable, non_function, non_smi;
|
||||
Label non_callable, non_smi;
|
||||
__ JumpIfSmi(r1, &non_callable);
|
||||
__ bind(&non_smi);
|
||||
__ CompareObjectType(r1, r4, r5, JS_FUNCTION_TYPE);
|
||||
@ -2200,12 +2200,10 @@ void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
|
||||
|
||||
// Check if target is a proxy and call CallProxy external builtin
|
||||
__ cmp(r5, Operand(JS_PROXY_TYPE));
|
||||
__ b(ne, &non_function);
|
||||
__ Jump(BUILTIN_CODE(masm->isolate(), CallProxy), RelocInfo::CODE_TARGET);
|
||||
__ Jump(BUILTIN_CODE(masm->isolate(), CallProxy), RelocInfo::CODE_TARGET, eq);
|
||||
|
||||
// 2. Call to something else, which might have a [[Call]] internal method (if
|
||||
// not we raise an exception).
|
||||
__ bind(&non_function);
|
||||
// Overwrite the original receiver the (original) target.
|
||||
__ str(r1, MemOperand(sp, r0, LSL, kPointerSizeLog2));
|
||||
// Let the "call_as_function_delegate" take care of the rest.
|
||||
|
@ -2627,7 +2627,7 @@ void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
|
||||
// -- x1 : the target to call (can be any Object).
|
||||
// -----------------------------------
|
||||
|
||||
Label non_callable, non_function, non_smi;
|
||||
Label non_callable, non_smi;
|
||||
__ JumpIfSmi(x1, &non_callable);
|
||||
__ Bind(&non_smi);
|
||||
__ CompareObjectType(x1, x4, x5, JS_FUNCTION_TYPE);
|
||||
@ -2643,12 +2643,10 @@ void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
|
||||
|
||||
// Check if target is a proxy and call CallProxy external builtin
|
||||
__ Cmp(x5, JS_PROXY_TYPE);
|
||||
__ B(ne, &non_function);
|
||||
__ Jump(BUILTIN_CODE(masm->isolate(), CallProxy), RelocInfo::CODE_TARGET);
|
||||
__ Jump(BUILTIN_CODE(masm->isolate(), CallProxy), RelocInfo::CODE_TARGET, eq);
|
||||
|
||||
// 2. Call to something else, which might have a [[Call]] internal method (if
|
||||
// not we raise an exception).
|
||||
__ Bind(&non_function);
|
||||
// Overwrite the original receiver with the (original) target.
|
||||
__ Poke(x1, Operand(x0, LSL, kXRegSizeLog2));
|
||||
// Let the "call_as_function_delegate" take care of the rest.
|
||||
|
Loading…
Reference in New Issue
Block a user