ev5.cc (5568:d14250d688d2) ev5.cc (5569:baeee670d4ce)
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;

--- 445 unchanged lines hidden (view full) ---

454
455 tc->getDTBPtr()->flushProcesses();
456 break;
457
458 case IPR_DTB_IS:
459 // really a control write
460 ipr[idx] = val;
461
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;

--- 445 unchanged lines hidden (view full) ---

454
455 tc->getDTBPtr()->flushProcesses();
456 break;
457
458 case IPR_DTB_IS:
459 // really a control write
460 ipr[idx] = val;
461
462 tc->getDTBPtr()->flushAddr(val,
463 DTB_ASN_ASN(ipr[IPR_DTB_ASN]));
462 tc->getDTBPtr()->flushAddr(val, DTB_ASN_ASN(ipr[IPR_DTB_ASN]));
464 break;
465
466 case IPR_DTB_TAG: {
467 struct TlbEntry entry;
468
469 // FIXME: granularity hints NYI...
470 if (DTB_PTE_GH(ipr[IPR_DTB_PTE]) != 0)
471 panic("PTE GH field != 0");

--- 52 unchanged lines hidden (view full) ---

524
525 tc->getITBPtr()->flushProcesses();
526 break;
527
528 case IPR_ITB_IS:
529 // really a control write
530 ipr[idx] = val;
531
463 break;
464
465 case IPR_DTB_TAG: {
466 struct TlbEntry entry;
467
468 // FIXME: granularity hints NYI...
469 if (DTB_PTE_GH(ipr[IPR_DTB_PTE]) != 0)
470 panic("PTE GH field != 0");

--- 52 unchanged lines hidden (view full) ---

523
524 tc->getITBPtr()->flushProcesses();
525 break;
526
527 case IPR_ITB_IS:
528 // really a control write
529 ipr[idx] = val;
530
532 tc->getITBPtr()->flushAddr(val,
533 ITB_ASN_ASN(ipr[IPR_ITB_ASN]));
531 tc->getITBPtr()->flushAddr(val, ITB_ASN_ASN(ipr[IPR_ITB_ASN]));
534 break;
535
536 default:
537 // invalid IPR
538 panic("Tried to write to invalid ipr %d\n", idx);
539 }
540
541 // no error...
542}
543
532 break;
533
534 default:
535 // invalid IPR
536 panic("Tried to write to invalid ipr %d\n", idx);
537 }
538
539 // no error...
540}
541
544
545void
546copyIprs(ThreadContext *src, ThreadContext *dest)
547{
542void
543copyIprs(ThreadContext *src, ThreadContext *dest)
544{
548 for (int i = 0; i < NumInternalProcRegs; ++i) {
545 for (int i = 0; i < NumInternalProcRegs; ++i)
549 dest->setMiscRegNoEffect(i, src->readMiscRegNoEffect(i));
546 dest->setMiscRegNoEffect(i, src->readMiscRegNoEffect(i));
550 }
551}
552
553} // namespace AlphaISA
554
555#if FULL_SYSTEM
547}
548
549} // namespace AlphaISA
550
551#if FULL_SYSTEM
552
556using namespace AlphaISA;
557
558Fault
559SimpleThread::hwrei()
560{
561 if (!(readPC() & 0x3))
562 return new UnimplementedOpcodeFault;
563

--- 39 unchanged lines hidden ---
553using namespace AlphaISA;
554
555Fault
556SimpleThread::hwrei()
557{
558 if (!(readPC() & 0x3))
559 return new UnimplementedOpcodeFault;
560

--- 39 unchanged lines hidden ---