neon.isa (10474:799c8ee4ecba) neon.isa (11513:cb3a401c45d7)
1// -*- mode:c++ -*-
2
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010-2012 ARM Limited
3// Copyright (c) 2010-2012, 2016 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
9// to a hardware implementation of the functionality of the software
10// licensed hereunder. You may use the software subject to the license
11// terms below provided that you ensure that this notice is replicated

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

35// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37//
38// Authors: Gabe Black
39
40let {{
41 simdEnabledCheckCode = '''
42 {
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
9// to a hardware implementation of the functionality of the software
10// licensed hereunder. You may use the software subject to the license
11// terms below provided that you ensure that this notice is replicated

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

35// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37//
38// Authors: Gabe Black
39
40let {{
41 simdEnabledCheckCode = '''
42 {
43 uint32_t issEnCheck;
44 bool trapEnCheck;
45 uint32_t seq;
46 if (!vfpNeonEnabled(seq, Hcptr, Nsacr, Cpacr, Cpsr, issEnCheck,
47 trapEnCheck, xc->tcBase(), Fpexc, true))
48 {return disabledFault();}
49 if (trapEnCheck) {
50 CPSR cpsrEnCheck = Cpsr;
51 if (cpsrEnCheck.mode == MODE_HYP) {
52 return std::make_shared<UndefinedInstruction>(
53 machInst, issEnCheck,
54 EC_TRAPPED_HCPTR);
55 } else {
56 if (!inSecureState(Scr, Cpsr)) {
57 return std::make_shared<HypervisorTrap>(
58 machInst, issEnCheck,
59 EC_TRAPPED_HCPTR);
60 }
61 }
62 }
43 Fault fault = checkAdvSIMDOrFPEnabled32(xc->tcBase(),
44 Cpsr, Cpacr, Nsacr, Fpexc,
45 true, true);
46 if (fault != NoFault)
47 return fault;
63 }
64 '''
65}};
66
67
68def template NeonRegRegRegOpDeclare {{
69template <class _Element>
70class %(class_name)s : public %(base_class)s

--- 236 unchanged lines hidden ---
48 }
49 '''
50}};
51
52
53def template NeonRegRegRegOpDeclare {{
54template <class _Element>
55class %(class_name)s : public %(base_class)s

--- 236 unchanged lines hidden ---