neon.isa (7639:8c09b7ff5b57) neon.isa (7641:788c719d0fc8)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010 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

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

137}};
138
139def template NeonExecDeclare {{
140 template
141 Fault %(class_name)s<%(targs)s>::execute(
142 %(CPU_exec_context)s *, Trace::InstRecord *) const;
143}};
144
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010 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

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

137}};
138
139def template NeonExecDeclare {{
140 template
141 Fault %(class_name)s<%(targs)s>::execute(
142 %(CPU_exec_context)s *, Trace::InstRecord *) const;
143}};
144
145output header {{
146 template <class T>
147 // Implement a less-than-zero function: ltz()
148 // this function exists because some versions of GCC complain when a
149 // comparison is done between a unsigned variable and 0 and for GCC 4.2
150 // there is no way to disable this warning
151 inline bool ltz(T t);
152
153 template <>
154 inline bool ltz(uint8_t) { return false; }
155 template <>
156 inline bool ltz(uint16_t) { return false; }
157 template <>
158 inline bool ltz(uint32_t) { return false; }
159 template <>
160 inline bool ltz(uint64_t) { return false; }
161 template <>
162 inline bool ltz(int8_t v) { return v < 0; }
163 template <>
164 inline bool ltz(int16_t v) { return v < 0; }
165 template <>
166 inline bool ltz(int32_t v) { return v < 0; }
167 template <>
168 inline bool ltz(int64_t v) { return v < 0; }
169}};
170
145def template NeonEqualRegExecute {{
146 template <class Element>
147 Fault %(class_name)s<Element>::execute(%(CPU_exec_context)s *xc,
148 Trace::InstRecord *traceData) const
149 {
150 Fault fault = NoFault;
151 %(op_decl)s;
152 %(op_rd)s;

--- 75 unchanged lines hidden ---
171def template NeonEqualRegExecute {{
172 template <class Element>
173 Fault %(class_name)s<Element>::execute(%(CPU_exec_context)s *xc,
174 Trace::InstRecord *traceData) const
175 {
176 Fault fault = NoFault;
177 %(op_decl)s;
178 %(op_rd)s;

--- 75 unchanged lines hidden ---