On 06/21/2016 10:09 AM, Peter Maydell wrote:
@@ -825,8 +846,8 @@ static void page_flush_tb(void)
{
int i;
- for (i = 0; i < V_L1_SIZE; i++) {
- page_flush_tb_1(V_L1_SHIFT / V_L2_BITS - 1, l1_map + i);
+ for (i = 0; i < v_l1_size; i++) {
+ page_flush_tb_1(v_l2_levels, l1_map + i);
}
}
@@ -1850,9 +1871,9 @@ int walk_memory_regions(void *priv,
walk_memory_regions_fn fn)
data.start = -1u;
data.prot = 0;
- for (i = 0; i < V_L1_SIZE; i++) {
- int rc = walk_memory_regions_1(&data, (target_ulong)i << (V_L1_SHIFT +
TARGET_PAGE_BITS),
- V_L1_SHIFT / V_L2_BITS - 1, l1_map + i);
+ for (i = 0; i < v_l1_size; i++) {
+ target_ulong base = i << (v_l1_shift + TARGET_PAGE_BITS);
+ int rc = walk_memory_regions_1(&data, base, v_l2_levels, l1_map + i);
It would probably be good to cache v_l1_size in a local, so that we don't keep
re-reading it around the loop when we know it doesn't change.
Otherwise,
Reviewed-by: Richard Henderson <r...@twiddle.net>
r~