Skip to content

Commit 45455a7

Browse files
gabrielbosiodorimedini-starkwareJulianGCalderon
authored
mark PC as accessed in run_instruction (#2283)
* fix: also mark PC as accessed in run_instruction (#2106) Signed-off-by: Dori Medini <[email protected]> * Update CHANGELOG * Update CHANGELOG.md Co-authored-by: Julian Gonzalez Calderon <[email protected]> --------- Signed-off-by: Dori Medini <[email protected]> Co-authored-by: dorimedini-starkware <[email protected]> Co-authored-by: Julian Gonzalez Calderon <[email protected]>
1 parent a105ba4 commit 45455a7

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
#### Upcoming Changes
44

5+
* fix: also mark PC as accessed in run_instruction [#2106](https://github.com/lambdaclass/cairo-vm/pull/2106)
6+
57
* feat: Make Blake2s API public [#2286](https://github.com/lambdaclass/cairo-vm/pull/2286)
68

79
* feat: implemented delete_unaccessed function [#2282](https://github.com/lambdaclass/cairo-vm/pull/2282)

vm/src/vm/vm_core.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ impl VirtualMachine {
451451
self.segments
452452
.memory
453453
.mark_as_accessed(operands_addresses.op1_addr);
454+
self.segments.memory.mark_as_accessed(self.run_context.pc);
454455

455456
if instruction.opcode_extension == OpcodeExtension::Blake
456457
|| instruction.opcode_extension == OpcodeExtension::BlakeFinalize
@@ -3699,11 +3700,16 @@ mod tests {
36993700
],
37003701
);
37013702
//Check that the following addresses have been accessed:
3702-
// Addresses have been copied from python execution:
3703+
// Addresses have been copied from python execution + addresses of accessed code:
37033704
let mem = &vm.segments.memory.data;
3705+
assert!(mem[0][0].is_accessed());
37043706
assert!(mem[0][1].is_accessed());
3707+
assert!(mem[0][2].is_accessed());
3708+
assert!(mem[0][3].is_accessed());
37053709
assert!(mem[0][4].is_accessed());
3710+
assert!(mem[0][5].is_accessed());
37063711
assert!(mem[0][6].is_accessed());
3712+
assert!(mem[0][7].is_accessed());
37073713
assert!(mem[1][0].is_accessed());
37083714
assert!(mem[1][1].is_accessed());
37093715
assert!(mem[1][2].is_accessed());
@@ -3714,7 +3720,7 @@ mod tests {
37143720
vm.segments
37153721
.memory
37163722
.get_amount_of_accessed_addresses_for_segment(0),
3717-
Some(3)
3723+
Some(8)
37183724
);
37193725
assert_eq!(
37203726
vm.segments
@@ -5543,11 +5549,16 @@ mod tests {
55435549
],
55445550
);
55455551
//Check that the following addresses have been accessed:
5546-
// Addresses have been copied from python execution:
5552+
// Addresses have been copied from python execution + addresses of accessed code:
55475553
let mem = &vm.segments.memory.data;
5554+
assert!(mem[4][0].is_accessed());
55485555
assert!(mem[4][1].is_accessed());
5556+
assert!(mem[4][2].is_accessed());
5557+
assert!(mem[4][3].is_accessed());
55495558
assert!(mem[4][4].is_accessed());
5559+
assert!(mem[4][5].is_accessed());
55505560
assert!(mem[4][6].is_accessed());
5561+
assert!(mem[4][7].is_accessed());
55515562
assert!(mem[1][0].is_accessed());
55525563
assert!(mem[1][1].is_accessed());
55535564
assert!(mem[1][2].is_accessed());
@@ -5558,7 +5569,7 @@ mod tests {
55585569
vm.segments
55595570
.memory
55605571
.get_amount_of_accessed_addresses_for_segment(4),
5561-
Some(3)
5572+
Some(8)
55625573
);
55635574
assert_eq!(
55645575
vm.segments

0 commit comments

Comments
 (0)