faults.cc (5268:5bfc53fe60e7) | faults.cc (6326:008930a4ace5) |
---|---|
1/* 2 * Copyright (c) 2003-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 --- 421 unchanged lines hidden (view full) --- 430 // warn("Exception Handler At: %x , EPC set to %x\n",HandlerBase,tc->readMiscReg(MipsISA::EPC)); 431 432} 433 434void InterruptFault::invoke(ThreadContext *tc) 435{ 436#if FULL_SYSTEM 437 DPRINTF(MipsPRA,"%s encountered.\n", name()); | 1/* 2 * Copyright (c) 2003-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 --- 421 unchanged lines hidden (view full) --- 430 // warn("Exception Handler At: %x , EPC set to %x\n",HandlerBase,tc->readMiscReg(MipsISA::EPC)); 431 432} 433 434void InterruptFault::invoke(ThreadContext *tc) 435{ 436#if FULL_SYSTEM 437 DPRINTF(MipsPRA,"%s encountered.\n", name()); |
438 //RegFile *Reg = tc->getRegFilePtr(); // Get pointer to the register fil | |
439 setExceptionState(tc,0x0A); 440 Addr HandlerBase; 441 442 443 uint8_t IV = bits(tc->readMiscRegNoEffect(MipsISA::Cause),Cause_IV); 444 if (IV)// Offset 200 for release 2 445 HandlerBase= 0x20 + vect() + tc->readMiscRegNoEffect(MipsISA::EBase); 446 else//Ofset at 180 for release 1 --- 19 unchanged lines hidden (view full) --- 466 // Set Coprocessor 1 (Floating Point) To Usable 467 tc->setMiscReg(MipsISA::Status, MipsISA::Status | 0x20000000); 468} 469 470void ReservedInstructionFault::invoke(ThreadContext *tc) 471{ 472#if FULL_SYSTEM 473 DPRINTF(MipsPRA,"%s encountered.\n", name()); | 438 setExceptionState(tc,0x0A); 439 Addr HandlerBase; 440 441 442 uint8_t IV = bits(tc->readMiscRegNoEffect(MipsISA::Cause),Cause_IV); 443 if (IV)// Offset 200 for release 2 444 HandlerBase= 0x20 + vect() + tc->readMiscRegNoEffect(MipsISA::EBase); 445 else//Ofset at 180 for release 1 --- 19 unchanged lines hidden (view full) --- 465 // Set Coprocessor 1 (Floating Point) To Usable 466 tc->setMiscReg(MipsISA::Status, MipsISA::Status | 0x20000000); 467} 468 469void ReservedInstructionFault::invoke(ThreadContext *tc) 470{ 471#if FULL_SYSTEM 472 DPRINTF(MipsPRA,"%s encountered.\n", name()); |
474 //RegFile *Reg = tc->getRegFilePtr(); // Get pointer to the register fil | |
475 setExceptionState(tc,0x0A); 476 Addr HandlerBase; 477 HandlerBase= vect() + tc->readMiscRegNoEffect(MipsISA::EBase); // Offset 0x180 - General Exception Vector 478 setHandlerPC(HandlerBase,tc); 479#else 480 panic("%s encountered.\n", name()); 481#endif 482} --- 35 unchanged lines hidden --- | 473 setExceptionState(tc,0x0A); 474 Addr HandlerBase; 475 HandlerBase= vect() + tc->readMiscRegNoEffect(MipsISA::EBase); // Offset 0x180 - General Exception Vector 476 setHandlerPC(HandlerBase,tc); 477#else 478 panic("%s encountered.\n", name()); 479#endif 480} --- 35 unchanged lines hidden --- |