Skip to content

Commit

Permalink
Fix build, for real this time (#502)
Browse files Browse the repository at this point in the history
  • Loading branch information
tilk authored Nov 5, 2023
1 parent d0ebfc0 commit bf83d82
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions test/regression/memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,17 +160,23 @@ def load_segment(segment: Segment, *, disable_write_protection: bool = False) ->
if flags_raw & P_FLAGS.PF_X:
flags |= SegmentFlags.EXECUTABLE

config = CoreConfiguration()
if flags_raw & P_FLAGS.PF_X:
# align only instruction section to full icache lines
align_bits = CoreConfiguration().icache_block_size_bits
# align instruction section to full icache lines
align_bits = config.icache_block_size_bits
# workaround for fetching/stalling issue
extend_end = 2**config.icache_block_size_bits
else:
align_bits = 0
extend_end = 0

align_data_front = seg_start - align_down_to_power_of_two(seg_start, align_bits)
align_data_back = align_to_power_of_two(seg_end, align_bits) - seg_end
align_data_front = seg_start - align_down_to_power_of_two(seg_start, align_bits)
align_data_back = align_to_power_of_two(seg_end, align_bits) - seg_end + extend_end

data = b"\x00" * align_data_front + data + b"\x00" * align_data_back
data = b"\x00" * align_data_front + data + b"\x00" * align_data_back

seg_start = align_down_to_power_of_two(seg_start, align_bits)
seg_end = align_to_power_of_two(seg_end, align_bits)
seg_start = align_down_to_power_of_two(seg_start, align_bits)
seg_end = align_to_power_of_two(seg_end, align_bits) + extend_end

return RandomAccessMemory(range(seg_start, seg_end), flags, data)

Expand Down

0 comments on commit bf83d82

Please sign in to comment.