From 2db4a70efca8f5513fc032c4e823999b1639dc95 Mon Sep 17 00:00:00 2001 From: Angell Li Date: Fri, 7 Jun 2024 14:19:40 +0800 Subject: [PATCH] rename blk to brk, change some log level --- src/cpu/exit_kernel.rs | 2 +- src/cpu/kernel/elf.rs | 10 +++++----- src/mips_emulator/state.rs | 20 +++++++++++--------- src/witness/memory.rs | 4 ---- src/witness/operation.rs | 6 +++--- src/witness/state.rs | 4 ++-- src/witness/util.rs | 4 ++-- 7 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/cpu/exit_kernel.rs b/src/cpu/exit_kernel.rs index 39b29196..8ec695d0 100644 --- a/src/cpu/exit_kernel.rs +++ b/src/cpu/exit_kernel.rs @@ -44,7 +44,7 @@ pub(crate) fn generate_exit_kernel(state: &mut GenerationState, registers_value[34] = state.registers.heap as u32; registers_value[35] = state.registers.program_counter as u32; registers_value[36] = state.registers.next_pc as u32; - registers_value[37] = state.registers.blk as u32; + registers_value[37] = state.registers.brk as u32; registers_value[38] = state.registers.local_user as u32; let register_addr_value: Vec<_> = registers_addr.iter().zip(registers_value).collect(); diff --git a/src/cpu/kernel/elf.rs b/src/cpu/kernel/elf.rs index 08fe2a4c..1f943a7e 100644 --- a/src/cpu/kernel/elf.rs +++ b/src/cpu/kernel/elf.rs @@ -25,7 +25,7 @@ pub struct Program { pub lo: usize, pub hi: usize, pub heap: usize, - pub blk: usize, + pub brk: usize, pub local_user: usize, pub end_pc: usize, pub image_id: [u8; 32], @@ -137,7 +137,7 @@ impl Program { } } - let blk = hiaddr - (hiaddr & (PAGE_SIZE - 1)) + PAGE_SIZE; + let brk = hiaddr - (hiaddr & (PAGE_SIZE - 1)) + PAGE_SIZE; let (symtab, strtab) = elf .symbol_table() @@ -245,7 +245,7 @@ impl Program { lo, hi, heap, - blk: blk as usize, + brk: brk as usize, local_user: 0, end_pc: end_pc as usize, image_id: image_id.try_into().unwrap(), @@ -290,7 +290,7 @@ impl Program { .unwrap() .to_be() as usize; - let blk: usize = image + let brk: usize = image .get(&(REGISTERS_START + (37 << 2) as u32)) .unwrap() .to_be() as usize; @@ -323,7 +323,7 @@ impl Program { lo, hi, heap, - blk, + brk, local_user, end_pc, image_id: segment.image_id, diff --git a/src/mips_emulator/state.rs b/src/mips_emulator/state.rs index 43506b00..0e788062 100644 --- a/src/mips_emulator/state.rs +++ b/src/mips_emulator/state.rs @@ -50,7 +50,9 @@ pub struct State { /// heap handles the mmap syscall. heap: u32, - blk: u32, + + /// brk handles the brk syscall + brk: u32, // tlb addr local_user: u32, @@ -87,7 +89,7 @@ impl State { heap: 0, local_user: 0, step: 0, - blk: 0, + brk: 0, exited: false, exit_code: 0, dump_info: false, @@ -107,7 +109,7 @@ impl State { heap: 0x20000000, local_user: 0, step: 0, - blk: 0, + brk: 0, exited: false, exit_code: 0, dump_info: false, @@ -171,7 +173,7 @@ impl State { }) } } - s.blk = hiaddr - (hiaddr & (PAGE_ADDR_MASK as u32)) + PAGE_SIZE as u32; + s.brk = hiaddr - (hiaddr & (PAGE_ADDR_MASK as u32)) + PAGE_SIZE as u32; (s, program) } @@ -403,7 +405,7 @@ impl State { regs_bytes_be[34 * 4..34 * 4 + 4].copy_from_slice(&self.heap.to_be_bytes()); regs_bytes_be[35 * 4..35 * 4 + 4].copy_from_slice(&self.pc.to_be_bytes()); regs_bytes_be[36 * 4..36 * 4 + 4].copy_from_slice(&self.next_pc.to_be_bytes()); - regs_bytes_be[37 * 4..37 * 4 + 4].copy_from_slice(&self.blk.to_be_bytes()); + regs_bytes_be[37 * 4..37 * 4 + 4].copy_from_slice(&self.brk.to_be_bytes()); regs_bytes_be[38 * 4..38 * 4 + 4].copy_from_slice(&self.local_user.to_be_bytes()); regs_bytes_be } @@ -482,10 +484,10 @@ impl InstrumentedState { } 4045 => { // brk - if a0 > self.state.blk { + if a0 > self.state.brk { v0 = a0; } else { - v0 = self.state.blk; + v0 = self.state.brk; } } 4120 => { @@ -564,7 +566,7 @@ impl InstrumentedState { } } 4283 => { - log::debug!("set local user {:X} {:X} {:X}", a0, a1, a2); + log::trace!("set local user {:X} {:X} {:X}", a0, a1, a2); self.state.local_user = a0; } _ => {} @@ -985,7 +987,7 @@ impl InstrumentedState { if rd == 0 { return 1; // cpu number } else if rd == 29 { - log::debug!("pc: {:X} rdhwr {:X}", self.state.pc, self.state.local_user); + log::trace!("pc: {:X} rdhwr {:X}", self.state.pc, self.state.local_user); //return 0x946490; // a pointer to a thread-specific storage block return self.state.local_user; } else { diff --git a/src/witness/memory.rs b/src/witness/memory.rs index 4822116e..f2f7192c 100644 --- a/src/witness/memory.rs +++ b/src/witness/memory.rs @@ -171,10 +171,6 @@ impl MemoryState { self.contexts.push(MemoryContextState::default()); } - if address.segment == Segment::Code as usize { - log::trace!("write mem {:X} : {:X} ({})", address.virt, val, val); - } - let _segment = Segment::all()[address.segment]; /* assert!( diff --git a/src/witness/operation.rs b/src/witness/operation.rs index 0676d4f2..2449b87d 100644 --- a/src/witness/operation.rs +++ b/src/witness/operation.rs @@ -908,12 +908,12 @@ pub(crate) fn generate_syscall( } SYSBRK => { row.general.syscall_mut().sysnum[2] = F::ONE; - let (blk, log_in5) = reg_read_with_log(37, 6, state, &mut row)?; - if a0 > blk { + let (brk, log_in5) = reg_read_with_log(37, 6, state, &mut row)?; + if a0 > brk { v0 = a0; row.general.syscall_mut().cond[10] = F::ONE; } else { - v0 = blk; + v0 = brk; row.general.syscall_mut().cond[11] = F::ONE; } state.traces.push_memory(log_in5); diff --git a/src/witness/state.rs b/src/witness/state.rs index 80a48892..cccd540e 100644 --- a/src/witness/state.rs +++ b/src/witness/state.rs @@ -9,7 +9,7 @@ pub struct RegistersState { pub heap: usize, pub program_counter: usize, pub next_pc: usize, - pub blk: usize, + pub brk: usize, pub local_user: usize, pub is_kernel: bool, pub context: usize, @@ -36,7 +36,7 @@ impl RegistersState { heap: kernel.program.heap, program_counter: kernel.program.entry as usize, next_pc: kernel.program.next_pc, - blk: kernel.program.blk, + brk: kernel.program.brk, local_user: kernel.program.local_user, is_kernel: true, context: 0, diff --git a/src/witness/util.rs b/src/witness/util.rs index fa55faaf..8aaf8ac9 100644 --- a/src/witness/util.rs +++ b/src/witness/util.rs @@ -114,7 +114,7 @@ pub(crate) fn reg_read_with_log( } else if index == 36 { state.registers.next_pc } else if index == 37 { - state.registers.blk + state.registers.brk } else if index == 38 { state.registers.local_user } else { @@ -165,7 +165,7 @@ pub(crate) fn reg_write_with_log( } else if index == 36 { state.registers.next_pc = value; } else if index == 37 { - state.registers.blk = value; + state.registers.brk = value; } else if index == 38 { state.registers.local_user = value; } else {