uncond.isa (10037:5cac77888310) uncond.isa (12788:fe6d6ae79d7c)
1// Copyright (c) 2010-2012 ARM Limited
2// All rights reserved
3//
4// The license below extends only to copyright in the software and shall
5// not be construed as granting a license to any other intellectual
6// property including but not limited to intellectual property relating
7// to a hardware implementation of the functionality of the software
8// licensed hereunder. You may use the software subject to the license

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

161 }
162 } else {
163 switch (bits(machInst, 26, 25)) {
164 case 0x0:
165 {
166 const uint32_t val = ((machInst >> 20) & 0x5);
167 if (val == 0x4) {
168 const uint32_t mode = bits(machInst, 4, 0);
1// Copyright (c) 2010-2012 ARM Limited
2// All rights reserved
3//
4// The license below extends only to copyright in the software and shall
5// not be construed as granting a license to any other intellectual
6// property including but not limited to intellectual property relating
7// to a hardware implementation of the functionality of the software
8// licensed hereunder. You may use the software subject to the license

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

161 }
162 } else {
163 switch (bits(machInst, 26, 25)) {
164 case 0x0:
165 {
166 const uint32_t val = ((machInst >> 20) & 0x5);
167 if (val == 0x4) {
168 const uint32_t mode = bits(machInst, 4, 0);
169 if (badMode32((OperatingMode)mode))
169 // We check at decode stage if the mode exists even
170 // if the checking is re-done by Srs::execute.
171 // This is done because we will otherwise panic if
172 // trying to read the banked stack pointer of an
173 // unrecognized mode.
174 if (unknownMode32((OperatingMode)mode))
170 return new Unknown(machInst);
171 switch (bits(machInst, 24, 21)) {
172 case 0x2:
173 return new %(srs)s(machInst, mode,
174 SrsOp::DecrementAfter, false);
175 case 0x3:
176 return new %(srs_w)s(machInst, mode,
177 SrsOp::DecrementAfter, true);

--- 141 unchanged lines hidden ---
175 return new Unknown(machInst);
176 switch (bits(machInst, 24, 21)) {
177 case 0x2:
178 return new %(srs)s(machInst, mode,
179 SrsOp::DecrementAfter, false);
180 case 0x3:
181 return new %(srs_w)s(machInst, mode,
182 SrsOp::DecrementAfter, true);

--- 141 unchanged lines hidden ---