branch64.isa (10037:5cac77888310) branch64.isa (10474:799c8ee4ecba)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2011-2013 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

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

110 break;
111 case EL2:
112 newPc = xc->tcBase()->readMiscReg(MISCREG_ELR_EL2);
113 break;
114 case EL1:
115 newPc = xc->tcBase()->readMiscReg(MISCREG_ELR_EL1);
116 break;
117 default:
1// -*- mode:c++ -*-
2
3// Copyright (c) 2011-2013 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

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

110 break;
111 case EL2:
112 newPc = xc->tcBase()->readMiscReg(MISCREG_ELR_EL2);
113 break;
114 case EL1:
115 newPc = xc->tcBase()->readMiscReg(MISCREG_ELR_EL1);
116 break;
117 default:
118 return new UndefinedInstruction(machInst, false, mnemonic);
118 return std::make_shared<UndefinedInstruction>(machInst,
119 false,
120 mnemonic);
119 break;
120 }
121 if (spsr.width && (newPc & mask(2))) {
122 // To avoid PC Alignment fault when returning to AArch32
123 if (spsr.t)
124 newPc = newPc & ~mask(1);
125 else
126 newPc = newPc & ~mask(2);

--- 122 unchanged lines hidden ---
121 break;
122 }
123 if (spsr.width && (newPc & mask(2))) {
124 // To avoid PC Alignment fault when returning to AArch32
125 if (spsr.t)
126 newPc = newPc & ~mask(1);
127 else
128 newPc = newPc & ~mask(2);

--- 122 unchanged lines hidden ---