Commit 93e00066 authored by sreten.kovacevic's avatar sreten.kovacevic Committed by Commit Bot

MIPS64: Port `Remove weak-list of optimized JS functions.` on BE

Port f0acede9
Original commit message:
`This CL removes the weak-list of JS functions from the context
and all the code that iterares over it. This list was being used
mainly during deoptimization (for code unlinking) and during
garbage collection. Removing it will improve performance of
programs that create many closures and trigger many scavenge GC
cycles.

No extra work is required during garbage collection. However,
given that we no longer unlink code from JS functions during
deoptimization, we leave it as it is, and on its next activation
we check whether the mark_for_deoptimization bit of that code is
set, and if it is, than we unlink it and jump to lazy compiled
code. This check happens in the prologue of every code object.

We needed to change/remove the cctests that used to check
something on this list.

Working in x64, ia32, arm64, arm, mips64 and mips.`

On mips64 big endian flags are in upper part of register.

Bug: 
Change-Id: Ib2f171f9c14e49c64dec31299dcf30496bfcf782
Reviewed-on: https://chromium-review.googlesource.com/700680Reviewed-by: 's avatarIvica Bogosavljevic <ivica.bogosavljevic@imgtec.com>
Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com>
Cr-Commit-Position: refs/heads/master@{#48309}
parent f6f5bafe
......@@ -803,7 +803,7 @@ void CodeGenerator::BailoutIfDeoptimized() {
int pc = __ pc_offset();
__ bind(&current);
int offset = Code::kKindSpecificFlags1Offset - (Code::kHeaderSize + pc);
__ Ld(a2, MemOperand(ra, offset));
__ Lw(a2, MemOperand(ra, offset));
__ pop(ra);
__ And(a2, a2, Operand(1 << Code::kMarkedForDeoptimizationBit));
Handle<Code> code = isolate()->builtins()->builtin_handle(
......
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