summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2025-12-03 15:41:21 -0500
committerAlan Wu <XrXr@users.noreply.github.com>2025-12-05 15:49:25 -0500
commitf01fd2bde2c79dd4f3e23154c953baca623b6460 (patch)
tree2facc6bb017cc3a001727d425e7139d0232468ad
parent02ca507aa3fe45640ace494e5440d9e8bfd5a517 (diff)
JITs: Update bindings to include interpreter zjit_ opcodes
Mostly YJIT. ZJIT already has the right bindings and this just tweaks the CI configuration.
-rw-r--r--.github/workflows/yjit-ubuntu.yml3
-rw-r--r--.github/workflows/zjit-ubuntu.yml3
-rw-r--r--yjit/src/cruby_bindings.inc.rs32
3 files changed, 35 insertions, 3 deletions
diff --git a/.github/workflows/yjit-ubuntu.yml b/.github/workflows/yjit-ubuntu.yml
index 00214709b9..7dce69cda4 100644
--- a/.github/workflows/yjit-ubuntu.yml
+++ b/.github/workflows/yjit-ubuntu.yml
@@ -81,7 +81,8 @@ jobs:
include:
- test_task: 'yjit-bindgen'
hint: 'To fix: use patch in logs'
- configure: '--with-gcc=clang-14 --enable-yjit=dev'
+ # Build with YJIT+ZJIT for output that works in the most number of configurations
+ configure: '--with-gcc=clang-14 --enable-yjit=dev --enable-zjit'
libclang_path: '/usr/lib/llvm-14/lib/libclang.so.1'
- test_task: 'check'
diff --git a/.github/workflows/zjit-ubuntu.yml b/.github/workflows/zjit-ubuntu.yml
index 5d281eab0b..37a9000d70 100644
--- a/.github/workflows/zjit-ubuntu.yml
+++ b/.github/workflows/zjit-ubuntu.yml
@@ -73,7 +73,8 @@ jobs:
- test_task: 'zjit-bindgen'
hint: 'To fix: use patch in logs'
- configure: '--enable-zjit=dev --with-gcc=clang-16'
+ # Build with YJIT+ZJIT for output that works in the most number of configurations
+ configure: '--enable-zjit=dev --enable-yjit --with-gcc=clang-16'
clang_path: '/usr/bin/clang-16'
runs-on: 'ubuntu-24.04' # for clang-16
diff --git a/yjit/src/cruby_bindings.inc.rs b/yjit/src/cruby_bindings.inc.rs
index b9a8197184..0bd2cefc08 100644
--- a/yjit/src/cruby_bindings.inc.rs
+++ b/yjit/src/cruby_bindings.inc.rs
@@ -919,7 +919,37 @@ pub const YARVINSN_trace_setlocal_WC_0: ruby_vminsn_type = 214;
pub const YARVINSN_trace_setlocal_WC_1: ruby_vminsn_type = 215;
pub const YARVINSN_trace_putobject_INT2FIX_0_: ruby_vminsn_type = 216;
pub const YARVINSN_trace_putobject_INT2FIX_1_: ruby_vminsn_type = 217;
-pub const VM_INSTRUCTION_SIZE: ruby_vminsn_type = 218;
+pub const YARVINSN_zjit_getinstancevariable: ruby_vminsn_type = 218;
+pub const YARVINSN_zjit_setinstancevariable: ruby_vminsn_type = 219;
+pub const YARVINSN_zjit_definedivar: ruby_vminsn_type = 220;
+pub const YARVINSN_zjit_send: ruby_vminsn_type = 221;
+pub const YARVINSN_zjit_opt_send_without_block: ruby_vminsn_type = 222;
+pub const YARVINSN_zjit_objtostring: ruby_vminsn_type = 223;
+pub const YARVINSN_zjit_opt_nil_p: ruby_vminsn_type = 224;
+pub const YARVINSN_zjit_invokeblock: ruby_vminsn_type = 225;
+pub const YARVINSN_zjit_opt_plus: ruby_vminsn_type = 226;
+pub const YARVINSN_zjit_opt_minus: ruby_vminsn_type = 227;
+pub const YARVINSN_zjit_opt_mult: ruby_vminsn_type = 228;
+pub const YARVINSN_zjit_opt_div: ruby_vminsn_type = 229;
+pub const YARVINSN_zjit_opt_mod: ruby_vminsn_type = 230;
+pub const YARVINSN_zjit_opt_eq: ruby_vminsn_type = 231;
+pub const YARVINSN_zjit_opt_neq: ruby_vminsn_type = 232;
+pub const YARVINSN_zjit_opt_lt: ruby_vminsn_type = 233;
+pub const YARVINSN_zjit_opt_le: ruby_vminsn_type = 234;
+pub const YARVINSN_zjit_opt_gt: ruby_vminsn_type = 235;
+pub const YARVINSN_zjit_opt_ge: ruby_vminsn_type = 236;
+pub const YARVINSN_zjit_opt_ltlt: ruby_vminsn_type = 237;
+pub const YARVINSN_zjit_opt_and: ruby_vminsn_type = 238;
+pub const YARVINSN_zjit_opt_or: ruby_vminsn_type = 239;
+pub const YARVINSN_zjit_opt_aref: ruby_vminsn_type = 240;
+pub const YARVINSN_zjit_opt_aset: ruby_vminsn_type = 241;
+pub const YARVINSN_zjit_opt_length: ruby_vminsn_type = 242;
+pub const YARVINSN_zjit_opt_size: ruby_vminsn_type = 243;
+pub const YARVINSN_zjit_opt_empty_p: ruby_vminsn_type = 244;
+pub const YARVINSN_zjit_opt_succ: ruby_vminsn_type = 245;
+pub const YARVINSN_zjit_opt_not: ruby_vminsn_type = 246;
+pub const YARVINSN_zjit_opt_regexpmatch2: ruby_vminsn_type = 247;
+pub const VM_INSTRUCTION_SIZE: ruby_vminsn_type = 248;
pub type ruby_vminsn_type = u32;
pub type rb_iseq_callback = ::std::option::Option<
unsafe extern "C" fn(arg1: *const rb_iseq_t, arg2: *mut ::std::os::raw::c_void),