tlb.cc (8567:d154cd83c353) | tlb.cc (8568:83f728db3332) |
---|---|
1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * Copyright (c) 2007 MIPS Technologies, Inc. 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 373 unchanged lines hidden (view full) --- 382 //@TODO: This should actually use TLB instead of going directly 383 // to the page table in syscall mode. 384 /** 385 * Check for alignment faults 386 */ 387 if (req->getVaddr() & (req->getSize() - 1)) { 388 DPRINTF(TLB, "Alignment Fault on %#x, size = %d", req->getVaddr(), 389 req->getSize()); | 1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * Copyright (c) 2007 MIPS Technologies, Inc. 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 373 unchanged lines hidden (view full) --- 382 //@TODO: This should actually use TLB instead of going directly 383 // to the page table in syscall mode. 384 /** 385 * Check for alignment faults 386 */ 387 if (req->getVaddr() & (req->getSize() - 1)) { 388 DPRINTF(TLB, "Alignment Fault on %#x, size = %d", req->getVaddr(), 389 req->getSize()); |
390 return new AlignmentFault(); | 390 if (write) 391 return new StoreAddressErrorFault(req->getVaddr()); 392 else 393 return new AddressErrorFault(req->getVaddr()); |
391 } 392 393 394 Process * p = tc->getProcessPtr(); 395 396 Fault fault = p->pTable->translate(req); 397 if (fault != NoFault) 398 return fault; --- 111 unchanged lines hidden --- | 394 } 395 396 397 Process * p = tc->getProcessPtr(); 398 399 Fault fault = p->pTable->translate(req); 400 if (fault != NoFault) 401 return fault; --- 111 unchanged lines hidden --- |