Commit 6e7c7238 authored by Igor Sheludko's avatar Igor Sheludko Committed by Commit Bot

[ptr-compr][arm64] Fix accesses to CodeDataContainer::kind_specific_flags

This field's size is kIntSize but it was read as a 8-byte value in
assembly code.

Bug: v8:7703
Change-Id: I16e8c845c27b224b368c8888073cff6d53f28a54
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532324
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60377}
parent f43e8845
......@@ -1064,10 +1064,10 @@ static void MaybeTailCallOptimizedCodeSlot(MacroAssembler* masm,
scratch2,
FieldMemOperand(optimized_code_entry, Code::kCodeDataContainerOffset));
__ Ldr(
scratch2,
scratch2.W(),
FieldMemOperand(scratch2, CodeDataContainer::kKindSpecificFlagsOffset));
__ TestAndBranchIfAnySet(scratch2, 1 << Code::kMarkedForDeoptimizationBit,
&found_deoptimized_code);
__ Tbnz(scratch2.W(), Code::kMarkedForDeoptimizationBit,
&found_deoptimized_code);
// Optimized code is good, get it into the closure and link the closure into
// the optimized functions list, then tail call the optimized code.
......
......@@ -567,10 +567,10 @@ void CodeGenerator::BailoutIfDeoptimized() {
int offset = Code::kCodeDataContainerOffset - Code::kHeaderSize;
__ LoadTaggedPointerField(
scratch, MemOperand(kJavaScriptCallCodeStartRegister, offset));
__ Ldr(scratch,
__ Ldr(scratch.W(),
FieldMemOperand(scratch, CodeDataContainer::kKindSpecificFlagsOffset));
Label not_deoptimized;
__ Tbz(scratch, Code::kMarkedForDeoptimizationBit, &not_deoptimized);
__ Tbz(scratch.W(), Code::kMarkedForDeoptimizationBit, &not_deoptimized);
__ Jump(BUILTIN_CODE(isolate(), CompileLazyDeoptimizedCode),
RelocInfo::CODE_TARGET);
__ Bind(&not_deoptimized);
......
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