Skip to content

Commit 742ffef

Browse files
committed
deps: make V8 10.2 ABI-compatible with 10.1
Create an unused deopt kind to replace `DeoptimizeKind::kSoft`, which was removed. This ensures that the layout of IsolateData doesn't change. Refs: v8/v8@1ff685d PR-URL: #42740 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
1 parent c626a53 commit 742ffef

15 files changed

+56
-3
lines changed

common.gypi

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
# Reset this number to 0 on major V8 upgrades.
3838
# Increment by one for each non-official patch applied to deps/v8.
39-
'v8_embedder_string': '-node.7',
39+
'v8_embedder_string': '-node.8',
4040

4141
##### V8 defaults for Node.js #####
4242

deps/v8/include/v8-internal.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -365,8 +365,8 @@ class Internals {
365365

366366
static const uint32_t kNumIsolateDataSlots = 4;
367367
static const int kStackGuardSize = 7 * kApiSystemPointerSize;
368-
static const int kBuiltinTier0EntryTableSize = 9 * kApiSystemPointerSize;
369-
static const int kBuiltinTier0TableSize = 9 * kApiSystemPointerSize;
368+
static const int kBuiltinTier0EntryTableSize = 10 * kApiSystemPointerSize;
369+
static const int kBuiltinTier0TableSize = 10 * kApiSystemPointerSize;
370370

371371
// IsolateData layout guarantees.
372372
static const int kIsolateCageBaseOffset = 0;

deps/v8/src/builtins/arm/builtins-arm.cc

+4
Original file line numberDiff line numberDiff line change
@@ -3537,6 +3537,10 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
35373537
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
35383538
}
35393539

3540+
void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
3541+
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
3542+
}
3543+
35403544
namespace {
35413545

35423546
// Restarts execution either at the current or next (in execution order)

deps/v8/src/builtins/arm64/builtins-arm64.cc

+4
Original file line numberDiff line numberDiff line change
@@ -4056,6 +4056,10 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
40564056
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
40574057
}
40584058

4059+
void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
4060+
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
4061+
}
4062+
40594063
namespace {
40604064

40614065
// Restarts execution either at the current or next (in execution order)

deps/v8/src/builtins/builtins-definitions.h

+2
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ namespace internal {
4646
/* Deoptimization entries. */ \
4747
ASM(DeoptimizationEntry_Eager, DeoptimizationEntry) \
4848
ASM(DeoptimizationEntry_Lazy, DeoptimizationEntry) \
49+
/* Replaces "Soft" for ABI compatibility. */ \
50+
ASM(DeoptimizationEntry_Unused, DeoptimizationEntry) \
4951
\
5052
/* GC write barrier. */ \
5153
TFC(RecordWriteEmitRememberedSetSaveFP, WriteBarrier) \

deps/v8/src/builtins/ia32/builtins-ia32.cc

+4
Original file line numberDiff line numberDiff line change
@@ -4153,6 +4153,10 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
41534153
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
41544154
}
41554155

4156+
void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
4157+
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
4158+
}
4159+
41564160
namespace {
41574161

41584162
// Restarts execution either at the current or next (in execution order)

deps/v8/src/builtins/loong64/builtins-loong64.cc

+4
Original file line numberDiff line numberDiff line change
@@ -3554,6 +3554,10 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
35543554
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
35553555
}
35563556

3557+
void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
3558+
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
3559+
}
3560+
35573561
namespace {
35583562

35593563
// Restarts execution either at the current or next (in execution order)

deps/v8/src/builtins/mips/builtins-mips.cc

+4
Original file line numberDiff line numberDiff line change
@@ -4002,6 +4002,10 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
40024002
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
40034003
}
40044004

4005+
void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
4006+
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
4007+
}
4008+
40054009
namespace {
40064010

40074011
// Restarts execution either at the current or next (in execution order)

deps/v8/src/builtins/mips64/builtins-mips64.cc

+4
Original file line numberDiff line numberDiff line change
@@ -3581,6 +3581,10 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
35813581
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
35823582
}
35833583

3584+
void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
3585+
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
3586+
}
3587+
35843588
namespace {
35853589

35863590
// Restarts execution either at the current or next (in execution order)

deps/v8/src/builtins/ppc/builtins-ppc.cc

+4
Original file line numberDiff line numberDiff line change
@@ -3839,6 +3839,10 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
38393839
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
38403840
}
38413841

3842+
void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
3843+
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
3844+
}
3845+
38423846
void Builtins::Generate_BaselineOrInterpreterEnterAtBytecode(
38433847
MacroAssembler* masm) {
38443848
// Implement on this platform, https://crrev.com/c/2695591.

deps/v8/src/builtins/riscv64/builtins-riscv64.cc

+4
Original file line numberDiff line numberDiff line change
@@ -3668,6 +3668,10 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
36683668
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
36693669
}
36703670

3671+
void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
3672+
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
3673+
}
3674+
36713675
namespace {
36723676

36733677
// Restarts execution either at the current or next (in execution order)

deps/v8/src/builtins/s390/builtins-s390.cc

+4
Original file line numberDiff line numberDiff line change
@@ -3836,6 +3836,10 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
38363836
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
38373837
}
38383838

3839+
void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
3840+
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
3841+
}
3842+
38393843
void Builtins::Generate_InterpreterOnStackReplacement(MacroAssembler* masm) {
38403844
OnStackReplacement(masm, OsrSourceTier::kInterpreter);
38413845
}

deps/v8/src/builtins/x64/builtins-x64.cc

+4
Original file line numberDiff line numberDiff line change
@@ -5007,6 +5007,10 @@ void Builtins::Generate_DeoptimizationEntry_Lazy(MacroAssembler* masm) {
50075007
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kLazy);
50085008
}
50095009

5010+
void Builtins::Generate_DeoptimizationEntry_Unused(MacroAssembler* masm) {
5011+
Generate_DeoptimizationEntry(masm, DeoptimizeKind::kUnused);
5012+
}
5013+
50105014
namespace {
50115015

50125016
// Restarts execution either at the current or next (in execution order)

deps/v8/src/common/globals.h

+4
Original file line numberDiff line numberDiff line change
@@ -522,11 +522,13 @@ constexpr int kNoDeoptimizationId = -1;
522522
// Deoptimize bailout kind:
523523
// - Eager: a check failed in the optimized code and deoptimization happens
524524
// immediately.
525+
// - Unused: replaces "Soft" for ABI compatibility.
525526
// - Lazy: the code has been marked as dependent on some assumption which
526527
// is checked elsewhere and can trigger deoptimization the next time the
527528
// code is executed.
528529
enum class DeoptimizeKind : uint8_t {
529530
kEager,
531+
kUnused,
530532
kLazy,
531533
};
532534
constexpr DeoptimizeKind kFirstDeoptimizeKind = DeoptimizeKind::kEager;
@@ -540,6 +542,8 @@ constexpr const char* ToString(DeoptimizeKind kind) {
540542
switch (kind) {
541543
case DeoptimizeKind::kEager:
542544
return "Eager";
545+
case DeoptimizeKind::kUnused:
546+
return "Unused";
543547
case DeoptimizeKind::kLazy:
544548
return "Lazy";
545549
}

deps/v8/src/deoptimizer/deoptimizer.cc

+7
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,8 @@ const char* Deoptimizer::MessageFor(DeoptimizeKind kind) {
460460
switch (kind) {
461461
case DeoptimizeKind::kEager:
462462
return "deopt-eager";
463+
case DeoptimizeKind::kUnused:
464+
return "deopt-unused";
463465
case DeoptimizeKind::kLazy:
464466
return "deopt-lazy";
465467
}
@@ -585,6 +587,8 @@ Builtin Deoptimizer::GetDeoptimizationEntry(DeoptimizeKind kind) {
585587
switch (kind) {
586588
case DeoptimizeKind::kEager:
587589
return Builtin::kDeoptimizationEntry_Eager;
590+
case DeoptimizeKind::kUnused:
591+
return Builtin::kDeoptimizationEntry_Unused;
588592
case DeoptimizeKind::kLazy:
589593
return Builtin::kDeoptimizationEntry_Lazy;
590594
}
@@ -599,6 +603,9 @@ bool Deoptimizer::IsDeoptimizationEntry(Isolate* isolate, Address addr,
599603
case Builtin::kDeoptimizationEntry_Eager:
600604
*type_out = DeoptimizeKind::kEager;
601605
return true;
606+
case Builtin::kDeoptimizationEntry_Unused:
607+
*type_out = DeoptimizeKind::kUnused;
608+
return true;
602609
case Builtin::kDeoptimizationEntry_Lazy:
603610
*type_out = DeoptimizeKind::kLazy;
604611
return true;

0 commit comments

Comments
 (0)