branch64.isa (12580:ad7057d38b98) branch64.isa (14172:bba55ff08279)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2011-2013, 2016,2018 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

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

98 decoder_output += BranchReg64Constructor.subst(bIop)
99 exec_output += BasicExecute.subst(bIop)
100
101 # ERET
102 bCode = '''Addr newPc;
103 CPSR cpsr = Cpsr;
104 CPSR spsr = Spsr;
105
1// -*- mode:c++ -*-
2
3// Copyright (c) 2011-2013, 2016,2018 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

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

98 decoder_output += BranchReg64Constructor.subst(bIop)
99 exec_output += BasicExecute.subst(bIop)
100
101 # ERET
102 bCode = '''Addr newPc;
103 CPSR cpsr = Cpsr;
104 CPSR spsr = Spsr;
105
106 ExceptionLevel curr_el = opModeToEL((OperatingMode) (uint8_t) cpsr.mode);
106 ExceptionLevel curr_el = currEL(cpsr);
107 switch (curr_el) {
108 case EL3:
109 newPc = xc->tcBase()->readMiscReg(MISCREG_ELR_EL3);
110 break;
111 case EL2:
112 newPc = xc->tcBase()->readMiscReg(MISCREG_ELR_EL2);
113 break;
114 case EL1:

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

140 Cpsr = new_cpsr;
141 CondCodesNZ = new_cpsr.nz;
142 CondCodesC = new_cpsr.c;
143 CondCodesV = new_cpsr.v;
144
145 NextAArch64 = !new_cpsr.width;
146 NextItState = itState(new_cpsr);
147 NPC = purifyTaggedAddr(newPc, xc->tcBase(),
107 switch (curr_el) {
108 case EL3:
109 newPc = xc->tcBase()->readMiscReg(MISCREG_ELR_EL3);
110 break;
111 case EL2:
112 newPc = xc->tcBase()->readMiscReg(MISCREG_ELR_EL2);
113 break;
114 case EL1:

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

140 Cpsr = new_cpsr;
141 CondCodesNZ = new_cpsr.nz;
142 CondCodesC = new_cpsr.c;
143 CondCodesV = new_cpsr.v;
144
145 NextAArch64 = !new_cpsr.width;
146 NextItState = itState(new_cpsr);
147 NPC = purifyTaggedAddr(newPc, xc->tcBase(),
148 opModeToEL((OperatingMode) (uint8_t) new_cpsr.mode));
148 currEL(new_cpsr));
149
150 LLSCLock = 0; // Clear exclusive monitor
151 SevMailbox = 1; //Set Event Register
152 '''
153 instFlags = ['IsSerializeAfter', 'IsNonSpeculative', 'IsSquashAfter']
154 bIop = InstObjParams('eret', 'Eret64', "BranchEret64", bCode, instFlags)
155 header_output += BasicDeclare.subst(bIop)
156 decoder_output += BasicConstructor64.subst(bIop)

--- 28 unchanged lines hidden ---
149
150 LLSCLock = 0; // Clear exclusive monitor
151 SevMailbox = 1; //Set Event Register
152 '''
153 instFlags = ['IsSerializeAfter', 'IsNonSpeculative', 'IsSquashAfter']
154 bIop = InstObjParams('eret', 'Eret64', "BranchEret64", bCode, instFlags)
155 header_output += BasicDeclare.subst(bIop)
156 decoder_output += BasicConstructor64.subst(bIop)

--- 28 unchanged lines hidden ---