summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zjit.rb1
-rw-r--r--zjit/src/codegen.rs2
-rw-r--r--zjit/src/stats.rs1
3 files changed, 4 insertions, 0 deletions
diff --git a/zjit.rb b/zjit.rb
index 1dccdefca2..b44154ad9c 100644
--- a/zjit.rb
+++ b/zjit.rb
@@ -172,6 +172,7 @@ class << RubyVM::ZJIT
:optimized_send_count,
:iseq_optimized_send_count,
:inline_cfunc_optimized_send_count,
+ :non_variadic_cfunc_optimized_send_count,
:variadic_cfunc_optimized_send_count,
], buf:, stats:, right_align: true, base: :send_count)
print_counters([
diff --git a/zjit/src/codegen.rs b/zjit/src/codegen.rs
index 0c720734da..b1a2cb6726 100644
--- a/zjit/src/codegen.rs
+++ b/zjit/src/codegen.rs
@@ -670,6 +670,8 @@ fn gen_patch_point(jit: &mut JITState, asm: &mut Assembler, invariant: &Invarian
/// Generate code for a C function call that pushes a frame
fn gen_ccall_with_frame(jit: &mut JITState, asm: &mut Assembler, cfunc: *const u8, args: Vec<Opnd>, cme: *const rb_callable_method_entry_t, state: &FrameState) -> lir::Opnd {
+ gen_incr_counter(asm, Counter::non_variadic_cfunc_optimized_send_count);
+
gen_prepare_non_leaf_call(jit, asm, state);
gen_push_frame(asm, args.len(), state, ControlFrame {
diff --git a/zjit/src/stats.rs b/zjit/src/stats.rs
index 3bfeb46e6c..323af0f3ed 100644
--- a/zjit/src/stats.rs
+++ b/zjit/src/stats.rs
@@ -157,6 +157,7 @@ make_counters! {
optimized_send {
iseq_optimized_send_count,
inline_cfunc_optimized_send_count,
+ non_variadic_cfunc_optimized_send_count,
variadic_cfunc_optimized_send_count,
}