faults.cc (12571:19063d7d209a) faults.cc (12589:812b72ee214c)
1/*
2 * Copyright (c) 2010, 2012-2014, 2016-2018 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

474 // Invoke exception handler in AArch64 state
475 invoke64(tc, inst);
476 return;
477 }
478
479 // ARMv7 (ARM ARM issue C B1.9)
480
481 bool have_security = ArmSystem::haveSecurity(tc);
1/*
2 * Copyright (c) 2010, 2012-2014, 2016-2018 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

474 // Invoke exception handler in AArch64 state
475 invoke64(tc, inst);
476 return;
477 }
478
479 // ARMv7 (ARM ARM issue C B1.9)
480
481 bool have_security = ArmSystem::haveSecurity(tc);
482 bool have_virtualization = ArmSystem::haveVirtualization(tc);
483
484 FaultBase::invoke(tc);
485 if (!FullSystem)
486 return;
487 countStat()++;
488
489 SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR);
490 SCR scr = tc->readMiscReg(MISCREG_SCR);

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

579 tc->setMiscReg(MISCREG_SPSR_ABT, saved_cpsr);
580 break;
581 case MODE_UNDEFINED:
582 tc->setMiscReg(MISCREG_SPSR_UND, saved_cpsr);
583 if (ec(tc) != EC_UNKNOWN)
584 setSyndrome(tc, MISCREG_HSR);
585 break;
586 case MODE_HYP:
482
483 FaultBase::invoke(tc);
484 if (!FullSystem)
485 return;
486 countStat()++;
487
488 SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR);
489 SCR scr = tc->readMiscReg(MISCREG_SCR);

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

578 tc->setMiscReg(MISCREG_SPSR_ABT, saved_cpsr);
579 break;
580 case MODE_UNDEFINED:
581 tc->setMiscReg(MISCREG_SPSR_UND, saved_cpsr);
582 if (ec(tc) != EC_UNKNOWN)
583 setSyndrome(tc, MISCREG_HSR);
584 break;
585 case MODE_HYP:
587 assert(have_virtualization);
586 assert(ArmSystem::haveVirtualization(tc));
588 tc->setMiscReg(MISCREG_SPSR_HYP, saved_cpsr);
589 setSyndrome(tc, MISCREG_HSR);
590 break;
591 default:
592 panic("unknown Mode\n");
593 }
594
595 Addr newPc = getVector(tc);

--- 995 unchanged lines hidden ---
587 tc->setMiscReg(MISCREG_SPSR_HYP, saved_cpsr);
588 setSyndrome(tc, MISCREG_HSR);
589 break;
590 default:
591 panic("unknown Mode\n");
592 }
593
594 Addr newPc = getVector(tc);

--- 995 unchanged lines hidden ---