@@ -401,6 +401,10 @@ declare_args() {
401401 # applications yet so disable jit.
402402 v8_jitless = v8_enable_lite_mode || target_is_ios_device
403403
404+ # Enable Sparkplug
405+ # Sets -DV8_ENABLE_SPARKPLUG.
406+ v8_enable_sparkplug = " "
407+
404408 # Enable Maglev's graph printer.
405409 # Sets -DV8_ENABLE_MAGLEV_GRAPH_PRINTER.
406410 v8_enable_maglev_graph_printer = ! build_with_chromium
@@ -499,6 +503,9 @@ if (v8_enable_external_code_space == "") {
499503 v8 _enable_pointer_compression_shared_cage &&
500504 (v8_current_cpu == " x64" || v8_current_cpu == " arm64" )
501505}
506+ if (v8_enable_sparkplug == " " ) {
507+ v8_enable_sparkplug = ! v8 _jitless
508+ }
502509if (v8_enable_maglev == " " ) {
503510 v8_enable_maglev = v8_enable_turbofan &&
504511 (v8_current_cpu == " arm" || v8_current_cpu == " x64" ||
@@ -507,9 +514,9 @@ if (v8_enable_maglev == "") {
507514assert (v8_enable_turbofan || ! v8_enable_maglev ,
508515 " Maglev is not available when Turbofan is disabled." )
509516
510- assert (! v8_jitless ||
511- ( ! v8_enable_maglev && ! v8_enable_turbofan && ! v8_enable_webassembly ),
512- " Maglev, Turbofan and Wasm are not available in jitless mode" )
517+ assert (! v8_jitless || ( ! v8_enable_sparkplug && ! v8_enable_maglev &&
518+ ! v8_enable_turbofan && ! v8_enable_webassembly ),
519+ " Sparkplug, Maglev, Turbofan and Wasm are not available in jitless mode" )
513520
514521if (v8_enable_single_generation == " " ) {
515522 v8_enable_single_generation = v8_disable_write_barriers
@@ -1135,6 +1142,9 @@ config("features") {
11351142 if (v8_enable_external_code_space ) {
11361143 defines += [ " V8_EXTERNAL_CODE_SPACE" ]
11371144 }
1145+ if (v8_enable_sparkplug ) {
1146+ defines += [ " V8_ENABLE_SPARKPLUG" ]
1147+ }
11381148 if (v8_enable_maglev ) {
11391149 defines += [ " V8_ENABLE_MAGLEV" ]
11401150 }
@@ -3098,10 +3108,6 @@ v8_header_set("v8_internal_headers") {
30983108 " src/ast/scopes.h" ,
30993109 " src/ast/source-range-ast-visitor.h" ,
31003110 " src/ast/variables.h" ,
3101- " src/baseline/baseline-assembler-inl.h" ,
3102- " src/baseline/baseline-assembler.h" ,
3103- " src/baseline/baseline-batch-compiler.h" ,
3104- " src/baseline/baseline-compiler.h" ,
31053111 " src/baseline/baseline.h" ,
31063112 " src/baseline/bytecode-offset-iterator.h" ,
31073113 " src/builtins/accessors.h" ,
@@ -4034,6 +4040,15 @@ v8_header_set("v8_internal_headers") {
40344040 sources -= [ " //base/trace_event/common/trace_event_common.h" ]
40354041 }
40364042
4043+ if (v8_enable_sparkplug ) {
4044+ sources += [
4045+ " src/baseline/baseline-assembler-inl.h" ,
4046+ " src/baseline/baseline-assembler.h" ,
4047+ " src/baseline/baseline-batch-compiler.h" ,
4048+ " src/baseline/baseline-compiler.h" ,
4049+ ]
4050+ }
4051+
40374052 if (v8_enable_maglev ) {
40384053 sources += [
40394054 " src/maglev/maglev-assembler-inl.h" ,
@@ -4262,11 +4277,15 @@ v8_header_set("v8_internal_headers") {
42624277 " src/regexp/ia32/regexp-macro-assembler-ia32.h" ,
42634278 " src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h" ,
42644279 ]
4280+ if (v8_enable_sparkplug ) {
4281+ sources += [
4282+ " src/baseline/ia32/baseline-assembler-ia32-inl.h" ,
4283+ " src/baseline/ia32/baseline-compiler-ia32-inl.h" ,
4284+ ]
4285+ }
42654286 } else if (v8_current_cpu == " x64" ) {
42664287 sources += [
42674288 # ## gcmole(x64) ###
4268- " src/baseline/x64/baseline-assembler-x64-inl.h" ,
4269- " src/baseline/x64/baseline-compiler-x64-inl.h" ,
42704289 " src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.h" ,
42714290 " src/codegen/x64/assembler-x64-inl.h" ,
42724291 " src/codegen/x64/assembler-x64.h" ,
@@ -4289,6 +4308,13 @@ v8_header_set("v8_internal_headers") {
42894308 sources += [ " src/diagnostics/unwinding-info-win64.h" ]
42904309 }
42914310
4311+ if (v8_enable_sparkplug ) {
4312+ sources += [
4313+ " src/baseline/x64/baseline-assembler-x64-inl.h" ,
4314+ " src/baseline/x64/baseline-compiler-x64-inl.h" ,
4315+ ]
4316+ }
4317+
42924318 if (v8_enable_webassembly ) {
42934319 # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
42944320 # based on Darwin and thus POSIX-compliant to a similar degree.
@@ -4302,8 +4328,6 @@ v8_header_set("v8_internal_headers") {
43024328 } else if (v8_current_cpu == " arm" ) {
43034329 sources += [
43044330 # ## gcmole(arm) ###
4305- " src/baseline/arm/baseline-assembler-arm-inl.h" ,
4306- " src/baseline/arm/baseline-compiler-arm-inl.h" ,
43074331 " src/codegen/arm/assembler-arm-inl.h" ,
43084332 " src/codegen/arm/assembler-arm.h" ,
43094333 " src/codegen/arm/constants-arm.h" ,
@@ -4318,11 +4342,16 @@ v8_header_set("v8_internal_headers") {
43184342 " src/regexp/arm/regexp-macro-assembler-arm.h" ,
43194343 " src/wasm/baseline/arm/liftoff-assembler-arm-inl.h" ,
43204344 ]
4345+
4346+ if (v8_enable_sparkplug ) {
4347+ sources += [
4348+ " src/baseline/arm/baseline-assembler-arm-inl.h" ,
4349+ " src/baseline/arm/baseline-compiler-arm-inl.h" ,
4350+ ]
4351+ }
43214352 } else if (v8_current_cpu == " arm64" ) {
43224353 sources += [
43234354 # ## gcmole(arm64) ###
4324- " src/baseline/arm64/baseline-assembler-arm64-inl.h" ,
4325- " src/baseline/arm64/baseline-compiler-arm64-inl.h" ,
43264355 " src/codegen/arm64/assembler-arm64-inl.h" ,
43274356 " src/codegen/arm64/assembler-arm64.h" ,
43284357 " src/codegen/arm64/constants-arm64.h" ,
@@ -4346,6 +4375,12 @@ v8_header_set("v8_internal_headers") {
43464375 if (v8_control_flow_integrity ) {
43474376 sources += [ " src/execution/arm64/pointer-authentication-arm64.h" ]
43484377 }
4378+ if (v8_enable_sparkplug ) {
4379+ sources += [
4380+ " src/baseline/arm64/baseline-assembler-arm64-inl.h" ,
4381+ " src/baseline/arm64/baseline-compiler-arm64-inl.h" ,
4382+ ]
4383+ }
43494384 if (v8_enable_webassembly ) {
43504385 # Trap handling is enabled on arm64 Mac and Linux and in simulators on
43514386 # x64 on Linux and Mac.
@@ -4365,8 +4400,6 @@ v8_header_set("v8_internal_headers") {
43654400 } else if (v8_current_cpu == " mips64" || v8_current_cpu == " mips64el" ) {
43664401 sources += [
43674402 # ## gcmole(mips64el) ###
4368- " src/baseline/mips64/baseline-assembler-mips64-inl.h" ,
4369- " src/baseline/mips64/baseline-compiler-mips64-inl.h" ,
43704403 " src/codegen/mips64/assembler-mips64-inl.h" ,
43714404 " src/codegen/mips64/assembler-mips64.h" ,
43724405 " src/codegen/mips64/constants-mips64.h" ,
@@ -4379,11 +4412,15 @@ v8_header_set("v8_internal_headers") {
43794412 " src/regexp/mips64/regexp-macro-assembler-mips64.h" ,
43804413 " src/wasm/baseline/mips64/liftoff-assembler-mips64-inl.h" ,
43814414 ]
4415+ if (v8_enable_sparkplug ) {
4416+ sources += [
4417+ " src/baseline/mips64/baseline-assembler-mips64-inl.h" ,
4418+ " src/baseline/mips64/baseline-compiler-mips64-inl.h" ,
4419+ ]
4420+ }
43824421 } else if (v8_current_cpu == " loong64" ) {
43834422 sources += [
43844423 # ## gcmole(loong64) ###
4385- " src/baseline/loong64/baseline-assembler-loong64-inl.h" ,
4386- " src/baseline/loong64/baseline-compiler-loong64-inl.h" ,
43874424 " src/codegen/loong64/assembler-loong64-inl.h" ,
43884425 " src/codegen/loong64/assembler-loong64.h" ,
43894426 " src/codegen/loong64/constants-loong64.h" ,
@@ -4396,6 +4433,12 @@ v8_header_set("v8_internal_headers") {
43964433 " src/regexp/loong64/regexp-macro-assembler-loong64.h" ,
43974434 " src/wasm/baseline/loong64/liftoff-assembler-loong64-inl.h" ,
43984435 ]
4436+ if (v8_enable_sparkplug ) {
4437+ sources += [
4438+ " src/baseline/loong64/baseline-assembler-loong64-inl.h" ,
4439+ " src/baseline/loong64/baseline-compiler-loong64-inl.h" ,
4440+ ]
4441+ }
43994442 if (v8_enable_webassembly ) {
44004443 # Trap handling is enabled on loong64 Linux and in simulators on
44014444 # x64 on Linux.
@@ -4427,8 +4470,6 @@ v8_header_set("v8_internal_headers") {
44274470 } else if (v8_current_cpu == " ppc64" ) {
44284471 sources += [
44294472 # ## gcmole(ppc64) ###
4430- " src/baseline/ppc/baseline-assembler-ppc-inl.h" ,
4431- " src/baseline/ppc/baseline-compiler-ppc-inl.h" ,
44324473 " src/codegen/ppc/assembler-ppc-inl.h" ,
44334474 " src/codegen/ppc/assembler-ppc.h" ,
44344475 " src/codegen/ppc/constants-ppc.h" ,
@@ -4443,11 +4484,15 @@ v8_header_set("v8_internal_headers") {
44434484 " src/regexp/ppc/regexp-macro-assembler-ppc.h" ,
44444485 " src/wasm/baseline/ppc/liftoff-assembler-ppc-inl.h" ,
44454486 ]
4487+ if (v8_enable_sparkplug ) {
4488+ sources += [
4489+ " src/baseline/ppc/baseline-assembler-ppc-inl.h" ,
4490+ " src/baseline/ppc/baseline-compiler-ppc-inl.h" ,
4491+ ]
4492+ }
44464493 } else if (v8_current_cpu == " s390" || v8_current_cpu == " s390x" ) {
44474494 sources += [
44484495 # ## gcmole(s390) ###
4449- " src/baseline/s390/baseline-assembler-s390-inl.h" ,
4450- " src/baseline/s390/baseline-compiler-s390-inl.h" ,
44514496 " src/codegen/s390/assembler-s390-inl.h" ,
44524497 " src/codegen/s390/assembler-s390.h" ,
44534498 " src/codegen/s390/constants-s390.h" ,
@@ -4462,6 +4507,12 @@ v8_header_set("v8_internal_headers") {
44624507 " src/regexp/s390/regexp-macro-assembler-s390.h" ,
44634508 " src/wasm/baseline/s390/liftoff-assembler-s390-inl.h" ,
44644509 ]
4510+ if (v8_enable_sparkplug ) {
4511+ sources += [
4512+ " src/baseline/s390/baseline-assembler-s390-inl.h" ,
4513+ " src/baseline/s390/baseline-compiler-s390-inl.h" ,
4514+ ]
4515+ }
44654516 } else if (v8_current_cpu == " riscv64" ) {
44664517 sources += [
44674518 # ## gcmole(riscv64) ###
@@ -4500,11 +4551,15 @@ v8_header_set("v8_internal_headers") {
45004551 " src/regexp/riscv/regexp-macro-assembler-riscv.h" ,
45014552 " src/wasm/baseline/riscv64/liftoff-assembler-riscv64-inl.h" ,
45024553 ]
4554+ if (v8_enable_sparkplug ) {
4555+ sources += [
4556+ " src/baseline/riscv/baseline-assembler-riscv-inl.h" ,
4557+ " src/baseline/riscv/baseline-compiler-riscv-inl.h" ,
4558+ ]
4559+ }
45034560 } else if (v8_current_cpu == " riscv32" ) {
45044561 sources += [
45054562 # ## gcmole(riscv32) ###
4506- " src/baseline/riscv/baseline-assembler-riscv-inl.h" ,
4507- " src/baseline/riscv/baseline-compiler-riscv-inl.h" ,
45084563 " src/codegen/riscv/assembler-riscv-inl.h" ,
45094564 " src/codegen/riscv/assembler-riscv.h" ,
45104565 " src/codegen/riscv/base-assembler-riscv.h" ,
@@ -4539,6 +4594,12 @@ v8_header_set("v8_internal_headers") {
45394594 " src/regexp/riscv/regexp-macro-assembler-riscv.h" ,
45404595 " src/wasm/baseline/riscv32/liftoff-assembler-riscv32-inl.h" ,
45414596 ]
4597+ if (v8_enable_sparkplug ) {
4598+ sources += [
4599+ " src/baseline/riscv/baseline-assembler-riscv-inl.h" ,
4600+ " src/baseline/riscv/baseline-compiler-riscv-inl.h" ,
4601+ ]
4602+ }
45424603 }
45434604
45444605 public_deps = [
@@ -4969,8 +5030,6 @@ v8_source_set("v8_base_without_compiler") {
49695030 " src/ast/scopes.cc" ,
49705031 " src/ast/source-range-ast-visitor.cc" ,
49715032 " src/ast/variables.cc" ,
4972- " src/baseline/baseline-batch-compiler.cc" ,
4973- " src/baseline/baseline-compiler.cc" ,
49745033 " src/baseline/baseline.cc" ,
49755034 " src/baseline/bytecode-offset-iterator.cc" ,
49765035 " src/builtins/accessors.cc" ,
@@ -5425,6 +5484,13 @@ v8_source_set("v8_base_without_compiler") {
54255484 sources += [ " src/snapshot/snapshot-compression.cc" ]
54265485 }
54275486
5487+ if (v8_enable_sparkplug ) {
5488+ sources += [
5489+ " src/baseline/baseline-batch-compiler.cc" ,
5490+ " src/baseline/baseline-compiler.cc" ,
5491+ ]
5492+ }
5493+
54285494 if (v8_enable_maglev ) {
54295495 sources += [
54305496 " src/maglev/maglev-assembler.cc" ,
0 commit comments