Skip to content

Commit

Permalink
deps: V8: cherry-pick 52eeb9d5a1f1
Browse files Browse the repository at this point in the history
Original commit message:

    Fix Code accessors on big endian platforms

    https://crrev.com/c/4341976 has changed data size of
    Code::kFlags to 32 bits and Code::kKindSpecificFlags to 16 bits.

    Memory accessors need to be adjusted accordingly on big endian
    platforms.

    Bug: v8:13784
    Change-Id: I0edbefedd74d65c974117acae6f37aa6cb1634ff
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4366778
    Commit-Queue: Milad Farazmand <[email protected]>
    Reviewed-by: Junliang Yan <[email protected]>
    Reviewed-by: Clemens Backes <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#86686}

Refs: v8/v8@52eeb9d
  • Loading branch information
targos committed Mar 28, 2023
1 parent 123211c commit b8b44ce
Show file tree
Hide file tree
Showing 9 changed files with 8 additions and 9 deletions.
2 changes: 1 addition & 1 deletion common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@

# Reset this number to 0 on major V8 upgrades.
# Increment by one for each non-official patch applied to deps/v8.
'v8_embedder_string': '-node.3',
'v8_embedder_string': '-node.4',

##### V8 defaults for Node.js #####

Expand Down
2 changes: 1 addition & 1 deletion deps/v8/src/builtins/ppc/builtins-ppc.cc
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ static void AssertCodeIsBaseline(MacroAssembler* masm, Register code,
Register scratch) {
DCHECK(!AreAliased(code, scratch));
// Verify that the code kind is baseline code via the CodeKind.
__ LoadU16(scratch, FieldMemOperand(code, Code::kFlagsOffset));
__ LoadU32(scratch, FieldMemOperand(code, Code::kFlagsOffset));
__ DecodeField<Code::KindField>(scratch);
__ CmpS64(scratch, Operand(static_cast<int>(CodeKind::BASELINE)), r0);
__ Assert(eq, AbortReason::kExpectedBaselineData);
Expand Down
2 changes: 1 addition & 1 deletion deps/v8/src/builtins/s390/builtins-s390.cc
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ static void AssertCodeIsBaseline(MacroAssembler* masm, Register code,
Register scratch) {
DCHECK(!AreAliased(code, scratch));
// Verify that the code kind is baseline code via the CodeKind.
__ LoadU16(scratch, FieldMemOperand(code, Code::kFlagsOffset));
__ LoadU32(scratch, FieldMemOperand(code, Code::kFlagsOffset));
__ DecodeField<Code::KindField>(scratch);
__ CmpS64(scratch, Operand(static_cast<int>(CodeKind::BASELINE)));
__ Assert(eq, AbortReason::kExpectedBaselineData);
Expand Down
2 changes: 1 addition & 1 deletion deps/v8/src/codegen/code-stub-assembler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3173,7 +3173,7 @@ TNode<BytecodeArray> CodeStubAssembler::LoadSharedFunctionInfoBytecodeArray(
TNode<Code> code = CAST(var_result.value());
#ifdef DEBUG
TNode<Int32T> code_flags =
LoadObjectField<Int16T>(code, Code::kFlagsOffset);
LoadObjectField<Int32T>(code, Code::kFlagsOffset);
CSA_DCHECK(
this, Word32Equal(DecodeWord32<Code::KindField>(code_flags),
Int32Constant(static_cast<int>(CodeKind::BASELINE))));
Expand Down
2 changes: 1 addition & 1 deletion deps/v8/src/codegen/ppc/macro-assembler-ppc.cc
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ void MacroAssembler::Drop(Register count, Register scratch) {
void MacroAssembler::TestCodeIsMarkedForDeoptimization(Register code,
Register scratch1,
Register scratch2) {
LoadS32(scratch1, FieldMemOperand(code, Code::kKindSpecificFlagsOffset),
LoadU16(scratch1, FieldMemOperand(code, Code::kKindSpecificFlagsOffset),
scratch2);
TestBit(scratch1, Code::kMarkedForDeoptimizationBit, scratch2);
}
Expand Down
2 changes: 1 addition & 1 deletion deps/v8/src/codegen/s390/macro-assembler-s390.cc
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,7 @@ void MacroAssembler::Drop(Register count, Register scratch) {

void MacroAssembler::TestCodeIsMarkedForDeoptimization(Register code,
Register scratch) {
LoadS32(scratch, FieldMemOperand(code, Code::kKindSpecificFlagsOffset));
LoadU16(scratch, FieldMemOperand(code, Code::kKindSpecificFlagsOffset));
TestBit(scratch, Code::kMarkedForDeoptimizationBit, scratch);
}

Expand Down
2 changes: 1 addition & 1 deletion deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
Original file line number Diff line number Diff line change
Expand Up @@ -800,7 +800,7 @@ void CodeGenerator::BailoutIfDeoptimized() {
int offset = InstructionStream::kCodeOffset - InstructionStream::kHeaderSize;
__ LoadTaggedField(r11, MemOperand(kJavaScriptCallCodeStartRegister, offset),
r0);
__ LoadS32(r11, FieldMemOperand(r11, Code::kKindSpecificFlagsOffset), r0);
__ LoadU16(r11, FieldMemOperand(r11, Code::kKindSpecificFlagsOffset), r0);
__ TestBit(r11, Code::kMarkedForDeoptimizationBit);
__ Jump(BUILTIN_CODE(isolate(), CompileLazyDeoptimizedCode),
RelocInfo::CODE_TARGET, ne, cr0);
Expand Down
2 changes: 1 addition & 1 deletion deps/v8/src/compiler/backend/s390/code-generator-s390.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1138,7 +1138,7 @@ void CodeGenerator::BailoutIfDeoptimized() {
int offset = InstructionStream::kCodeOffset - InstructionStream::kHeaderSize;
__ LoadTaggedField(ip, MemOperand(kJavaScriptCallCodeStartRegister, offset),
r0);
__ LoadS32(ip, FieldMemOperand(ip, Code::kKindSpecificFlagsOffset));
__ LoadU16(ip, FieldMemOperand(ip, Code::kKindSpecificFlagsOffset));
__ TestBit(ip, Code::kMarkedForDeoptimizationBit);
__ Jump(BUILTIN_CODE(isolate(), CompileLazyDeoptimizedCode),
RelocInfo::CODE_TARGET, ne);
Expand Down
1 change: 0 additions & 1 deletion deps/v8/src/objects/code-inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -1006,7 +1006,6 @@ void Code::initialize_flags(CodeKind kind, Builtin builtin_id,
StackSlotsField::encode(stack_slots);
static_assert(FIELD_SIZE(kFlagsOffset) == kInt32Size);
RELAXED_WRITE_UINT32_FIELD(*this, kFlagsOffset, value);
set_flags(value, kRelaxedStore);
DCHECK_IMPLIES(stack_slots != 0, uses_safepoint_table());
DCHECK_IMPLIES(!uses_safepoint_table(), stack_slots == 0);

Expand Down

0 comments on commit b8b44ce

Please sign in to comment.