Encode imm, needs further testing

This commit is contained in:
Lumi Kalt 2024-01-21 18:55:10 +00:00
parent ef87cbefc2
commit 4509218b49
2 changed files with 31 additions and 9 deletions

View file

@ -242,6 +242,14 @@ pub fn instruction(op: &str) -> (Kind, Vec<Value>) {
Kind::Pseudo(Pseudo {}),
vec![Value::Register, Value::Immediate],
),
"lui" => (
Kind::U(U {
imm: to_bits(0),
rd: to_bits(0),
opcode: to_bits(0b0110111),
}),
vec![Value::Register, Value::Immediate],
),
// Memory

View file

@ -62,19 +62,33 @@ fn main() -> anyhow::Result<()> {
]
)
.0 // 011001101010000001010010110000000
// Ripes: 011001101010000001010010110000000
// Ripes: 011001101010000001010010110000000
);
println!(
"addi a0 a0 1: {}",
with_imm(with_reg_args(
instruction("addi"),
vec![
env.alias_to_register("a0").unwrap() as u32,
env.alias_to_register("a0").unwrap() as u32
]
), 1)
with_imm(
with_reg_args(
instruction("addi"),
vec![
env.alias_to_register("a0").unwrap(),
env.alias_to_register("a0").unwrap()
]
),
1
)
.0 // 00000000000101010000010100010011
// Ripes: 00000000000101010000010100010011
// Ripes: 00000000000101010000010100010011
);
println!(
"lui a0 1: {}",
with_imm(
with_reg_args(
instruction("lui"),
vec![env.alias_to_register("a0").unwrap()]
),
1
)
.0
);
Ok(())