Skip to content

Commit fd0dc76

Browse files
committed
split generated op.rs into op.rs and op_code.rs
1 parent 1f19cce commit fd0dc76

File tree

4 files changed

+37
-21
lines changed

4 files changed

+37
-21
lines changed

crates/ir2/build/mod.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,16 @@ pub fn generate_code(config: &Config) -> Result<(), Error> {
6767
let isa = isa::wasmi_isa(config);
6868
let mut buffer = String::new();
6969
generate_op_rs(config, &isa, &mut buffer)?;
70+
generate_op_code_rs(config, &isa, &mut buffer)?;
7071
generate_encode_rs(config, &isa, &mut buffer)?;
7172
generate_decode_rs(config, &isa, &mut buffer)?;
7273
Ok(())
7374
}
7475

7576
fn generate_op_rs(config: &Config, isa: &Isa, contents: &mut String) -> Result<(), Error> {
7677
let expected_size = match config.simd {
77-
true => 330_000,
78-
false => 210_000,
78+
true => 210_000,
79+
false => 135_000,
7980
};
8081
write_to_buffer(contents, expected_size, |buffer| {
8182
write!(
@@ -84,18 +85,28 @@ fn generate_op_rs(config: &Config, isa: &Isa, contents: &mut String) -> Result<(
8485
{}\n\
8586
{}\n\
8687
{}\n\
87-
{}\n\
8888
",
8989
DisplayOp::new(isa, Indent::default()),
9090
DisplayResultMut::new(isa, Indent::default()),
9191
DisplayConstructor::new(isa, Indent::default()),
92-
DisplayOpCode::new(isa, Indent::default()),
9392
)
9493
})?;
9594
fs::write(config.out_dir.join("op.rs"), contents)?;
9695
Ok(())
9796
}
9897

98+
fn generate_op_code_rs(config: &Config, isa: &Isa, contents: &mut String) -> Result<(), Error> {
99+
let expected_size = match config.simd {
100+
true => 125_000,
101+
false => 80_000,
102+
};
103+
write_to_buffer(contents, expected_size, |buffer| {
104+
writeln!(buffer, "{}", DisplayOpCode::new(isa, Indent::default()),)
105+
})?;
106+
fs::write(config.out_dir.join("op_code.rs"), contents)?;
107+
Ok(())
108+
}
109+
99110
fn generate_encode_rs(config: &Config, isa: &Isa, contents: &mut String) -> Result<(), Error> {
100111
let expected_size = match config.simd {
101112
true => 115_000,

crates/ir2/src/lib.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ mod encode;
99
mod error;
1010
pub mod index;
1111
mod op;
12+
mod opcode;
1213
mod primitive;
1314
mod span;
1415

@@ -20,7 +21,8 @@ pub use self::{
2021
encode::{Encode, Encoder},
2122
error::Error,
2223
index::Slot,
23-
op::{InvalidOpCode, Op, OpCode},
24+
op::Op,
25+
opcode::{InvalidOpCode, OpCode},
2426
primitive::{Address, BlockFuel, BranchOffset, Offset16, Sign},
2527
span::{BoundedSlotSpan, FixedSlotSpan, SlotSpan, SlotSpanIter},
2628
};

crates/ir2/src/op.rs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,24 +23,8 @@ impl Clone for Op {
2323
}
2424
}
2525

26-
impl Copy for OpCode {}
27-
impl Clone for OpCode {
28-
fn clone(&self) -> Self {
29-
*self
30-
}
31-
}
32-
impl From<OpCode> for u16 {
33-
fn from(code: OpCode) -> Self {
34-
code as u16
35-
}
36-
}
37-
3826
#[test]
3927
fn op_size_of_and_alignment() {
4028
assert_eq!(core::mem::size_of::<Op>(), 24);
4129
assert_eq!(core::mem::align_of::<Op>(), 8);
4230
}
43-
44-
/// Indicated an invalid `u16` value for an [`OpCode`].
45-
#[derive(Debug, Copy, Clone)]
46-
pub struct InvalidOpCode;

crates/ir2/src/opcode.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
use crate::Op;
2+
3+
include!(concat!(env!("OUT_DIR"), "/op_code.rs"));
4+
5+
impl Copy for OpCode {}
6+
impl Clone for OpCode {
7+
fn clone(&self) -> Self {
8+
*self
9+
}
10+
}
11+
impl From<OpCode> for u16 {
12+
fn from(code: OpCode) -> Self {
13+
code as u16
14+
}
15+
}
16+
17+
/// Indicated an invalid `u16` value for an [`OpCode`].
18+
#[derive(Debug, Copy, Clone)]
19+
pub struct InvalidOpCode;

0 commit comments

Comments
 (0)