summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2022-10-19 14:03:07 -0400
committerGitHub <noreply@github.com>2022-10-19 14:03:07 -0400
commit5ca23caa2057fc4760fbefab6087371b11c4bc6c (patch)
treeb0456a0c659205843eb6d49693e7e823fc75f307
parentbc939d293768acf9a21568ebe738b8fe5981038f (diff)
YJIT: fold the "asm_comments" feature into "disasm" (#6591)
Previously, enabling only "disasm" didn't actually build. Since these two features are closely related and we don't really use one without the other, let's simplify and merge the two features together.
Notes
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
-rw-r--r--configure.ac4
-rw-r--r--yjit/Cargo.toml1
-rw-r--r--yjit/src/asm/mod.rs12
-rw-r--r--yjit/src/asm/x86_64/tests.rs2
-rw-r--r--yjit/src/backend/arm64/mod.rs2
-rw-r--r--yjit/src/backend/x86_64/mod.rs2
-rw-r--r--yjit/src/cruby.rs2
7 files changed, 12 insertions, 13 deletions
diff --git a/configure.ac b/configure.ac
index 93141dcd9e..0e22aabbe5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3754,12 +3754,12 @@ AS_CASE(["${YJIT_SUPPORT}"],
],
[dev], [
rb_rust_target_subdir=debug
- CARGO_BUILD_ARGS='--features stats,disasm,asm_comments'
+ CARGO_BUILD_ARGS='--features stats,disasm'
AC_DEFINE(RUBY_DEBUG, 1)
],
[dev_nodebug], [
rb_rust_target_subdir=dev_nodebug
- CARGO_BUILD_ARGS='--profile dev_nodebug --features stats,disasm,asm_comments'
+ CARGO_BUILD_ARGS='--profile dev_nodebug --features stats,disasm'
],
[stats], [
rb_rust_target_subdir=stats
diff --git a/yjit/Cargo.toml b/yjit/Cargo.toml
index 4641de205f..858751b1f6 100644
--- a/yjit/Cargo.toml
+++ b/yjit/Cargo.toml
@@ -22,7 +22,6 @@ capstone = { version = "0.10.0", optional = true }
# For debugging, `make V=1` shows exact cargo invocation.
disasm = ["capstone"]
stats = []
-asm_comments = []
[profile.dev]
opt-level = 0
diff --git a/yjit/src/asm/mod.rs b/yjit/src/asm/mod.rs
index 6fce8384c6..271f11defc 100644
--- a/yjit/src/asm/mod.rs
+++ b/yjit/src/asm/mod.rs
@@ -8,7 +8,7 @@ use crate::backend::x86_64::JMP_PTR_BYTES;
use crate::backend::arm64::JMP_PTR_BYTES;
use crate::virtualmem::WriteError;
-#[cfg(feature = "asm_comments")]
+#[cfg(feature = "disasm")]
use std::collections::BTreeMap;
use crate::codegen::CodegenGlobals;
@@ -69,7 +69,7 @@ pub struct CodeBlock {
label_refs: Vec<LabelRef>,
// Comments for assembly instructions, if that feature is enabled
- #[cfg(feature = "asm_comments")]
+ #[cfg(feature = "disasm")]
asm_comments: BTreeMap<usize, Vec<String>>,
// True for OutlinedCb
@@ -101,7 +101,7 @@ impl CodeBlock {
label_addrs: Vec::new(),
label_names: Vec::new(),
label_refs: Vec::new(),
- #[cfg(feature = "asm_comments")]
+ #[cfg(feature = "disasm")]
asm_comments: BTreeMap::new(),
outlined,
dropped_bytes: false,
@@ -239,7 +239,7 @@ impl CodeBlock {
/// Add an assembly comment if the feature is on.
/// If not, this becomes an inline no-op.
- #[cfg(feature = "asm_comments")]
+ #[cfg(feature = "disasm")]
pub fn add_comment(&mut self, comment: &str) {
let cur_ptr = self.get_write_ptr().into_usize();
@@ -251,11 +251,11 @@ impl CodeBlock {
this_line_comments.push(comment.to_string());
}
}
- #[cfg(not(feature = "asm_comments"))]
+ #[cfg(not(feature = "disasm"))]
#[inline]
pub fn add_comment(&mut self, _: &str) {}
- #[cfg(feature = "asm_comments")]
+ #[cfg(feature = "disasm")]
pub fn comments_at(&self, pos: usize) -> Option<&Vec<String>> {
self.asm_comments.get(&pos)
}
diff --git a/yjit/src/asm/x86_64/tests.rs b/yjit/src/asm/x86_64/tests.rs
index 92691803a3..57cc080710 100644
--- a/yjit/src/asm/x86_64/tests.rs
+++ b/yjit/src/asm/x86_64/tests.rs
@@ -413,7 +413,7 @@ fn basic_capstone_usage() -> std::result::Result<(), capstone::Error> {
}
#[test]
-#[cfg(feature = "asm_comments")]
+#[cfg(feature = "disasm")]
fn block_comments() {
let mut cb = super::CodeBlock::new_dummy(4096);
diff --git a/yjit/src/backend/arm64/mod.rs b/yjit/src/backend/arm64/mod.rs
index 5df072ed38..7aeb1435d2 100644
--- a/yjit/src/backend/arm64/mod.rs
+++ b/yjit/src/backend/arm64/mod.rs
@@ -724,7 +724,7 @@ impl Assembler
match insn {
Insn::Comment(text) => {
- if cfg!(feature = "asm_comments") {
+ if cfg!(feature = "disasm") {
cb.add_comment(text);
}
},
diff --git a/yjit/src/backend/x86_64/mod.rs b/yjit/src/backend/x86_64/mod.rs
index c8aa1a0ed5..ac5ac0fff4 100644
--- a/yjit/src/backend/x86_64/mod.rs
+++ b/yjit/src/backend/x86_64/mod.rs
@@ -388,7 +388,7 @@ impl Assembler
match insn {
Insn::Comment(text) => {
- if cfg!(feature = "asm_comments") {
+ if cfg!(feature = "disasm") {
cb.add_comment(text);
}
},
diff --git a/yjit/src/cruby.rs b/yjit/src/cruby.rs
index f31390fc57..d3e4ba4757 100644
--- a/yjit/src/cruby.rs
+++ b/yjit/src/cruby.rs
@@ -510,7 +510,7 @@ impl From<VALUE> for u16 {
}
/// Produce a Ruby string from a Rust string slice
-#[cfg(feature = "asm_comments")]
+#[cfg(feature = "disasm")]
pub fn rust_str_to_ruby(str: &str) -> VALUE {
unsafe { rb_utf8_str_new(str.as_ptr() as *const _, str.len() as i64) }
}