Skip to content

Commit 0f1b5fc

Browse files
fix(aot): x86 assembly for addr_space_access_count update (#2340)
found while reviewing previous PR
1 parent 51dd038 commit 0f1b5fc

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

crates/vm/src/arch/execution_mode/metered/memory_ctx.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ pub struct MemoryCtx<const PAGE_BITS: usize> {
111111
chunk: u32,
112112
chunk_bits: u32,
113113
pub page_indices: BitSet,
114-
pub addr_space_access_count: RVec<usize>,
114+
pub addr_space_access_count: RVec<u32>,
115115
pub page_indices_since_checkpoint: Box<[u32]>,
116116
pub page_indices_since_checkpoint_len: usize,
117117
}
@@ -315,11 +315,11 @@ impl<const PAGE_BITS: usize> MemoryCtx<PAGE_BITS> {
315315

316316
/// Apply height updates given page counts
317317
#[inline(always)]
318-
fn apply_height_updates(&self, trace_heights: &mut [u32], addr_space_access_count: &[usize]) {
319-
let page_access_count: usize = addr_space_access_count.iter().sum();
318+
fn apply_height_updates(&self, trace_heights: &mut [u32], addr_space_access_count: &[u32]) {
319+
let page_access_count: u32 = addr_space_access_count.iter().sum();
320320

321321
// On page fault, assume we add all leaves in a page
322-
let leaves = (page_access_count << PAGE_BITS) as u32;
322+
let leaves = page_access_count << PAGE_BITS;
323323
// SAFETY: boundary_idx is a compile time constant within bounds
324324
unsafe {
325325
*trace_heights.get_unchecked_mut(self.boundary_idx) += leaves;
@@ -339,10 +339,8 @@ impl<const PAGE_BITS: usize> MemoryCtx<PAGE_BITS> {
339339
let nodes = (((1 << PAGE_BITS) - 1) + (merkle_height - PAGE_BITS)) as u32;
340340
// SAFETY: merkle_tree_idx is guaranteed to be in bounds
341341
unsafe {
342-
*trace_heights.get_unchecked_mut(poseidon2_idx) +=
343-
nodes * page_access_count as u32 * 2;
344-
*trace_heights.get_unchecked_mut(merkle_tree_idx) +=
345-
nodes * page_access_count as u32 * 2;
342+
*trace_heights.get_unchecked_mut(poseidon2_idx) += nodes * page_access_count * 2;
343+
*trace_heights.get_unchecked_mut(merkle_tree_idx) += nodes * page_access_count * 2;
346344
}
347345
}
348346

@@ -358,7 +356,7 @@ impl<const PAGE_BITS: usize> MemoryCtx<PAGE_BITS> {
358356
trace_heights,
359357
address_space as u32,
360358
self.chunk_bits,
361-
(x << (PAGE_BITS + 1)) as u32,
359+
x << (PAGE_BITS + 1),
362360
);
363361
}
364362
}

0 commit comments

Comments
 (0)