1/* 2 * Copyright (c) 2003-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 288 unchanged lines hidden (view full) --- 297 */ 298 299void doREDFault(ThreadContext *tc, TrapType tt) 300{ 301 MiscReg TL = tc->readMiscReg(MISCREG_TL); 302 MiscReg TSTATE = tc->readMiscReg(MISCREG_TSTATE); 303 MiscReg PSTATE = tc->readMiscReg(MISCREG_PSTATE); 304 MiscReg HPSTATE = tc->readMiscReg(MISCREG_HPSTATE); |
305 //MiscReg CCR = tc->readMiscReg(MISCREG_CCR); 306 MiscReg CCR = tc->readIntReg(NumIntArchRegs + 2); |
307 MiscReg ASI = tc->readMiscReg(MISCREG_ASI); 308 MiscReg CWP = tc->readMiscReg(MISCREG_CWP); |
309 //MiscReg CANSAVE = tc->readMiscReg(MISCREG_CANSAVE); 310 MiscReg CANSAVE = tc->readMiscReg(NumIntArchRegs + 3); |
311 MiscReg GL = tc->readMiscReg(MISCREG_GL); 312 MiscReg PC = tc->readPC(); 313 MiscReg NPC = tc->readNextPC(); 314 315 TL++; 316 317 //set TSTATE.gl to gl 318 replaceBits(TSTATE, 42, 40, GL); --- 74 unchanged lines hidden (view full) --- 393 */ 394 395void doNormalFault(ThreadContext *tc, TrapType tt, bool gotoHpriv) 396{ 397 MiscReg TL = tc->readMiscReg(MISCREG_TL); 398 MiscReg TSTATE = tc->readMiscReg(MISCREG_TSTATE); 399 MiscReg PSTATE = tc->readMiscReg(MISCREG_PSTATE); 400 MiscReg HPSTATE = tc->readMiscReg(MISCREG_HPSTATE); |
401 //MiscReg CCR = tc->readMiscReg(MISCREG_CCR); 402 MiscReg CCR = tc->readIntReg(NumIntArchRegs + 2); |
403 MiscReg ASI = tc->readMiscReg(MISCREG_ASI); 404 MiscReg CWP = tc->readMiscReg(MISCREG_CWP); |
405 //MiscReg CANSAVE = tc->readMiscReg(MISCREG_CANSAVE); 406 MiscReg CANSAVE = tc->readIntReg(NumIntArchRegs + 3); |
407 MiscReg GL = tc->readMiscReg(MISCREG_GL); 408 MiscReg PC = tc->readPC(); 409 MiscReg NPC = tc->readNextPC(); 410 411 //Increment the trap level 412 TL++; 413 tc->setMiscReg(MISCREG_TL, TL); 414 --- 298 unchanged lines hidden --- |