From 91ef6d9bc3eabae0b14dc4c4354a37ac84c8fb88 Mon Sep 17 00:00:00 2001 From: ilgeco Date: Wed, 4 Mar 2026 19:56:30 +0100 Subject: [PATCH 1/5] pim-simulator dump inst function --- .../pim/pim-simulator/src/lib/instruction_set/mod.rs | 4 ++++ .../pim/pim-simulator/src/lib/pimcore.rs | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/backend-simulators/pim/pim-simulator/src/lib/instruction_set/mod.rs b/backend-simulators/pim/pim-simulator/src/lib/instruction_set/mod.rs index 0126def..24e59fc 100644 --- a/backend-simulators/pim/pim-simulator/src/lib/instruction_set/mod.rs +++ b/backend-simulators/pim/pim-simulator/src/lib/instruction_set/mod.rs @@ -46,6 +46,10 @@ impl Instruction { .with_context(|| format!("Error in core: {}", self.data.core_indx() - 1)) .unwrap() } + + pub(crate) fn dump(&self) { + eprintln!("\t{}", functor_to_name(self.functor as usize)); + } } pub type Instructions = Vec; diff --git a/backend-simulators/pim/pim-simulator/src/lib/pimcore.rs b/backend-simulators/pim/pim-simulator/src/lib/pimcore.rs index 332b869..3231c90 100644 --- a/backend-simulators/pim/pim-simulator/src/lib/pimcore.rs +++ b/backend-simulators/pim/pim-simulator/src/lib/pimcore.rs @@ -1,7 +1,7 @@ #![allow(unused)] use crate::{ - cpu::CPU, instruction_set::{Instruction, InstructionStatus, Instructions}, memory_manager::type_traits::TryToUsize, send_recv::{SendRecv, handle_send_recv}, tracing::TRACER + cpu::CPU, instruction_set::{Instruction, InstructionStatus, Instructions, isa::functor_to_name}, memory_manager::type_traits::TryToUsize, send_recv::{SendRecv, handle_send_recv}, tracing::TRACER }; pub mod cpu; pub mod instruction_set; @@ -131,6 +131,16 @@ impl Executable { pub fn cpu_mut(&mut self) -> &mut CPU { &mut self.cpu } + + pub fn dump(&self) { + let core_instructions = &self.core_instructions; + for (i, core_instruction) in core_instructions.iter().enumerate() { + eprintln!("INST OF CORE {}:", i); + for inst in &core_instruction.instructions { + inst.dump(); + } + } + } } fn handle_wait_sync(cpu: &mut CPU, core_instructions: &mut [CoreInstruction], core_result: InstructionStatus) { From f24a60bfcde65c8f82660cf74eb85d0d50e35a0b Mon Sep 17 00:00:00 2001 From: ilgeco Date: Wed, 4 Mar 2026 19:56:59 +0100 Subject: [PATCH 2/5] pim-simulato trace end of lmv --- .../pim/pim-simulator/src/lib/instruction_set/isa.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/backend-simulators/pim/pim-simulator/src/lib/instruction_set/isa.rs b/backend-simulators/pim/pim-simulator/src/lib/instruction_set/isa.rs index 2785827..fb10fe4 100644 --- a/backend-simulators/pim/pim-simulator/src/lib/instruction_set/isa.rs +++ b/backend-simulators/pim/pim-simulator/src/lib/instruction_set/isa.rs @@ -700,6 +700,7 @@ pub fn lmv(cores: &mut CPU, data: InstructionData) -> Result let local_memory = core.load::(r1_val, imm_len)?; let tmp = local_memory[0].to_vec(); core.execute_store(rd_val, tmp.as_slice()); + TRACER.lock().unwrap().post_lmv(cores, data); Ok(InstructionStatus::Completed) } From 29febb2bfd76fa85d74a400376f1a334c6969ea6 Mon Sep 17 00:00:00 2001 From: ilgeco Date: Wed, 4 Mar 2026 19:57:24 +0100 Subject: [PATCH 3/5] pim-simulator dump instruction --- .../pim/pim-simulator/src/lib/instruction_set/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend-simulators/pim/pim-simulator/src/lib/instruction_set/mod.rs b/backend-simulators/pim/pim-simulator/src/lib/instruction_set/mod.rs index 24e59fc..39048fe 100644 --- a/backend-simulators/pim/pim-simulator/src/lib/instruction_set/mod.rs +++ b/backend-simulators/pim/pim-simulator/src/lib/instruction_set/mod.rs @@ -47,7 +47,7 @@ impl Instruction { .unwrap() } - pub(crate) fn dump(&self) { + pub(crate) fn dump(&self) { eprintln!("\t{}", functor_to_name(self.functor as usize)); } } From fef26cee9a43998f4e6bd81a7aae81df598ba784 Mon Sep 17 00:00:00 2001 From: ilgeco Date: Wed, 4 Mar 2026 19:59:16 +0100 Subject: [PATCH 4/5] pim-simulator unwrap on failed json parsing --- .../pim/pim-simulator/src/lib/json_to_instruction/json_isa.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend-simulators/pim/pim-simulator/src/lib/json_to_instruction/json_isa.rs b/backend-simulators/pim/pim-simulator/src/lib/json_to_instruction/json_isa.rs index e7b9cba..e34b235 100644 --- a/backend-simulators/pim/pim-simulator/src/lib/json_to_instruction/json_isa.rs +++ b/backend-simulators/pim/pim-simulator/src/lib/json_to_instruction/json_isa.rs @@ -71,7 +71,8 @@ pub fn json_to_instruction( inst_builder, inst_data_builder, json, - ); + ) + .unwrap(); } macro_rules! json_str { From d4efa64b9611c1dd45176e661828c7317ba5fbef Mon Sep 17 00:00:00 2001 From: ilgeco Date: Wed, 4 Mar 2026 20:00:01 +0100 Subject: [PATCH 5/5] pim-simulator auto-format --- .../src/lib/json_to_instruction/json_isa.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/backend-simulators/pim/pim-simulator/src/lib/json_to_instruction/json_isa.rs b/backend-simulators/pim/pim-simulator/src/lib/json_to_instruction/json_isa.rs index e34b235..7d4aabe 100644 --- a/backend-simulators/pim/pim-simulator/src/lib/json_to_instruction/json_isa.rs +++ b/backend-simulators/pim/pim-simulator/src/lib/json_to_instruction/json_isa.rs @@ -77,13 +77,21 @@ pub fn json_to_instruction( macro_rules! json_str { ($json:ident , $value:literal) => { - $json.get($value).context(concat![$value, " field not present"])?.as_str().context(concat![$value, " field not str"])? + $json + .get($value) + .context(concat![$value, " field not present"])? + .as_str() + .context(concat![$value, " field not str"])? }; } macro_rules! json_i64 { ($json:ident , $value:literal) => { - $json.get($value).context(concat![$value, " field not present"])?.as_i64().context(concat![$value, " field not i64"])? + $json + .get($value) + .context(concat![$value, " field not present"])? + .as_i64() + .context(concat![$value, " field not i64"])? }; }