Commit 663a8ef4 authored by Ross McIlroy's avatar Ross McIlroy Committed by Commit Bot

[Compile] Fix test for marked for deopt in CompileLazy builtin.

BUG=chromium:721078,v8:6246

Change-Id: I10f20d9cc2c7cabff8a3fba02aff351fcecc0ce2
Reviewed-on: https://chromium-review.googlesource.com/505611Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45304}
parent 3e12ed1f
......@@ -1375,7 +1375,7 @@ void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
// Found code, check if it is marked for deopt, if so call into runtime to
// clear the optimized code slot.
__ ldr(r5, FieldMemOperand(entry, Code::kKindSpecificFlags1Offset));
__ DecodeField<Code::MarkedForDeoptimizationField>(r5);
__ tst(r5, Operand(1 << Code::kMarkedForDeoptimizationBit));
__ b(ne, &gotta_call_runtime);
// Code is good, get it into the closure and tail call.
......
......@@ -1408,8 +1408,8 @@ void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
// Found code, check if it is marked for deopt, if so call into runtime to
// clear the optimized code slot.
__ Ldr(w8, FieldMemOperand(entry, Code::kKindSpecificFlags1Offset));
__ DecodeField<Code::MarkedForDeoptimizationField>(w8);
__ B(ne, &gotta_call_runtime);
__ TestAndBranchIfAnySet(w8, 1 << Code::kMarkedForDeoptimizationBit,
&gotta_call_runtime);
// Code is good, get it into the closure and tail call.
__ Add(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
......
......@@ -1179,8 +1179,8 @@ void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
// Found code, check if it is marked for deopt, if so call into runtime to
// clear the optimized code slot.
__ mov(ebx, FieldOperand(entry, Code::kKindSpecificFlags1Offset));
__ DecodeField<Code::MarkedForDeoptimizationField>(ebx);
__ test(FieldOperand(entry, Code::kKindSpecificFlags1Offset),
Immediate(1 << Code::kMarkedForDeoptimizationBit));
__ j(not_zero, &gotta_call_runtime);
// Code is good, get it into the closure and tail call.
......
......@@ -1376,7 +1376,7 @@ void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
// Found code, check if it is marked for deopt, if so call into runtime to
// clear the optimized code slot.
__ lw(t1, FieldMemOperand(entry, Code::kKindSpecificFlags1Offset));
__ DecodeField<Code::MarkedForDeoptimizationField>(t1);
__ And(t1, t1, Operand(1 << Code::kMarkedForDeoptimizationBit));
__ Branch(&gotta_call_runtime, ne, t1, Operand(zero_reg));
// Code is good, get it into the closure and tail call.
......
......@@ -1377,7 +1377,7 @@ void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
// Found code, check if it is marked for deopt, if so call into runtime to
// clear the optimized code slot.
__ Lw(a5, FieldMemOperand(entry, Code::kKindSpecificFlags1Offset));
__ DecodeField<Code::MarkedForDeoptimizationField>(a5);
__ And(a5, a5, Operand(1 << Code::kMarkedForDeoptimizationBit));
__ Branch(&gotta_call_runtime, ne, a5, Operand(zero_reg));
// Code is good, get it into the closure and tail call.
......
......@@ -1155,8 +1155,8 @@ void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
// Found code, check if it is marked for deopt, if so call into runtime to
// clear the optimized code slot.
__ movl(rbx, FieldOperand(entry, Code::kKindSpecificFlags1Offset));
__ DecodeField<Code::MarkedForDeoptimizationField>(rbx);
__ testl(FieldOperand(entry, Code::kKindSpecificFlags1Offset),
Immediate(1 << Code::kMarkedForDeoptimizationBit));
__ j(not_zero, &gotta_call_runtime);
// Code is good, get it into the closure and tail call.
......
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