ev5.cc (5640:c811ced9efc1) | ev5.cc (5702:bf84e2fa05f7) |
---|---|
1/* 2 * Copyright (c) 2002-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; --- 533 unchanged lines hidden (view full) --- 542void 543copyIprs(ThreadContext *src, ThreadContext *dest) 544{ 545 for (int i = 0; i < NumInternalProcRegs; ++i) 546 dest->setMiscRegNoEffect(i, src->readMiscRegNoEffect(i)); 547} 548 549} // namespace AlphaISA | 1/* 2 * Copyright (c) 2002-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; --- 533 unchanged lines hidden (view full) --- 542void 543copyIprs(ThreadContext *src, ThreadContext *dest) 544{ 545 for (int i = 0; i < NumInternalProcRegs; ++i) 546 dest->setMiscRegNoEffect(i, src->readMiscRegNoEffect(i)); 547} 548 549} // namespace AlphaISA |
550 551#if FULL_SYSTEM 552 553using namespace AlphaISA; 554 555Fault 556SimpleThread::hwrei() 557{ 558 if (!(readPC() & 0x3)) 559 return new UnimplementedOpcodeFault; 560 561 setNextPC(readMiscRegNoEffect(IPR_EXC_ADDR)); 562 563 if (!misspeculating()) { 564 if (kernelStats) 565 kernelStats->hwrei(); 566 } 567 568 // FIXME: XXX check for interrupts? XXX 569 return NoFault; 570} 571 572/** 573 * Check for special simulator handling of specific PAL calls. 574 * If return value is false, actual PAL call will be suppressed. 575 */ 576bool 577SimpleThread::simPalCheck(int palFunc) 578{ 579 if (kernelStats) 580 kernelStats->callpal(palFunc, tc); 581 582 switch (palFunc) { 583 case PAL::halt: 584 halt(); 585 if (--System::numSystemsRunning == 0) 586 exitSimLoop("all cpus halted"); 587 break; 588 589 case PAL::bpt: 590 case PAL::bugchk: 591 if (system->breakpoint()) 592 return false; 593 break; 594 } 595 596 return true; 597} 598 599#endif // FULL_SYSTEM |
|