Revision 698235aa target-sparc/helper.c

b/target-sparc/helper.c
185 185
        }
186 186
    }
187 187

  
188
    /* check access */
189
    access_perms = (pde & PTE_ACCESS_MASK) >> PTE_ACCESS_SHIFT;
190
    error_code = access_table[*access_index][access_perms];
191
    if (error_code && !((env->mmuregs[0] & MMU_NF) && is_user))
192
        return error_code;
193

  
188 194
    /* update page modified and dirty bits */
189 195
    is_dirty = (rw & 1) && !(pde & PG_MODIFIED_MASK);
190 196
    if (!(pde & PG_ACCESSED_MASK) || is_dirty) {
......
193 199
            pde |= PG_MODIFIED_MASK;
194 200
        stl_phys_notdirty(pde_ptr, pde);
195 201
    }
196
    /* check access */
197
    access_perms = (pde & PTE_ACCESS_MASK) >> PTE_ACCESS_SHIFT;
198
    error_code = access_table[*access_index][access_perms];
199
    if (error_code && !((env->mmuregs[0] & MMU_NF) && is_user))
200
        return error_code;
201 202

  
202 203
    /* the page can be put in the TLB */
203 204
    *prot = perm_table[is_user][access_perms];

Also available in: Unified diff