1/* 2 * Copyright (c) 2010 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 341 unchanged lines hidden (view full) --- 350 uint32_t flags = req->getFlags(); 351 352 bool is_fetch = (mode == Execute); 353 bool is_write = (mode == Write); 354 bool is_priv = (cpsr.mode != MODE_USER) && !(flags & UserMode); 355 356 DPRINTF(TLBVerbose, "CPSR is user:%d UserMode:%d\n", cpsr.mode == MODE_USER, flags 357 & UserMode); |
358 // If this is a clrex instruction, provide a PA of 0 with no fault 359 // This will force the monitor to set the tracked address to 0 360 // a bit of a hack but this effectively clrears this processors monitor 361 if (flags & Clrex){ 362 req->setPaddr(0); 363 return NoFault; 364 } |
365 if (!is_fetch) { 366 assert(flags & MustBeOne); 367 if (sctlr.a || !(flags & AllowUnaligned)) { 368 if (vaddr & flags & AlignmentMask) { 369 return new DataAbort(vaddr, 0, is_write, ArmFault::AlignmentFault); 370 } 371 } 372 } --- 198 unchanged lines hidden --- |