223c223,227
< currState->aarch64 = opModeIs64(currOpMode(_tc));
---
> // ARM DDI 0487A.f (ARMv8 ARM) pg J8-5672
> // aarch32/translation/translation/AArch32.TranslateAddress dictates
> // even AArch32 EL0 will use AArch64 translation if EL1 is in AArch64.
> currState->aarch64 = opModeIs64(currOpMode(_tc)) ||
> ((currEL(_tc) == EL0) && ELIs64(_tc, EL1));
293,295c297,298
< bool long_desc_format = currState->aarch64 ||
< (_haveLPAE && currState->ttbcr.eae) ||
< _isHyp || isStage2;
---
> bool long_desc_format = currState->aarch64 || _isHyp || isStage2 ||
> longDescFormatInUse(currState->tc);
380c383,384
< else if ((_haveLPAE && currState->ttbcr.eae) || currState->isHyp || isStage2)
---
> else if (longDescFormatInUse(currState->tc) ||
> currState->isHyp || isStage2)
568c572
< assert(_haveLPAE && currState->ttbcr.eae);
---
> assert(longDescFormatInUse(currState->tc));