Commit 1b759c02 authored by Martyn Capewell's avatar Martyn Capewell Committed by Commit Bot

Tweak Generate_InterpreterEntryTrampoline code

Small improvements to code generated on arm and arm64.

Bug: v8:6644
Change-Id: Id3d9be87f6a071e949985a1b6b62a43d9195a104
Reviewed-on: https://chromium-review.googlesource.com/615300Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Cr-Commit-Position: refs/heads/master@{#47359}
parent 7e208103
......@@ -1207,14 +1207,11 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
// If the bytecode array has a valid incoming new target or generator object
// register, initialize it with incoming value which was passed in r3.
Label no_incoming_new_target_or_generator_register;
__ ldr(r9, FieldMemOperand(
kInterpreterBytecodeArrayRegister,
BytecodeArray::kIncomingNewTargetOrGeneratorRegisterOffset));
__ tst(r9, r9);
__ b(eq, &no_incoming_new_target_or_generator_register);
__ str(r3, MemOperand(fp, r9, LSL, kPointerSizeLog2));
__ bind(&no_incoming_new_target_or_generator_register);
__ cmp(r9, Operand::Zero());
__ str(r3, MemOperand(fp, r9, LSL, kPointerSizeLog2), ne);
// Load accumulator and dispatch table into registers.
__ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex);
......
......@@ -1227,8 +1227,7 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
FieldMemOperand(
kInterpreterBytecodeArrayRegister,
BytecodeArray::kIncomingNewTargetOrGeneratorRegisterOffset));
__ Tst(x10, x10);
__ B(eq, &no_incoming_new_target_or_generator_register);
__ Cbz(x10, &no_incoming_new_target_or_generator_register);
__ Str(x3, MemOperand(fp, x10, LSL, kPointerSizeLog2));
__ Bind(&no_incoming_new_target_or_generator_register);
......@@ -1254,8 +1253,7 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
// kInterpreterBytecodeArrayRegister is already loaded with
// SharedFunctionInfo::kFunctionDataOffset.
__ Bind(&maybe_load_debug_bytecode_array);
__ Ldr(x10, FieldMemOperand(x11, DebugInfo::kFlagsOffset));
__ SmiUntag(x10);
__ Ldrsw(x10, UntagSmiFieldMemOperand(x11, DebugInfo::kFlagsOffset));
__ TestAndBranchIfAllClear(x10, DebugInfo::kHasBreakInfo,
&bytecode_array_loaded);
__ Ldr(kInterpreterBytecodeArrayRegister,
......
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