neon.isa (10037:5cac77888310) | neon.isa (10196:be0e1724eb39) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2010-2012 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 --- 176 unchanged lines hidden (view full) --- 185 186 %(BasicExecDeclare)s 187}; 188}}; 189 190def template NeonExecDeclare {{ 191 template 192 Fault %(class_name)s<%(targs)s>::execute( | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2010-2012 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 --- 176 unchanged lines hidden (view full) --- 185 186 %(BasicExecDeclare)s 187}; 188}}; 189 190def template NeonExecDeclare {{ 191 template 192 Fault %(class_name)s<%(targs)s>::execute( |
193 %(CPU_exec_context)s *, Trace::InstRecord *) const; | 193 CPU_EXEC_CONTEXT *, Trace::InstRecord *) const; |
194}}; 195 196output header {{ 197 template <class T> 198 // Implement a less-than-zero function: ltz() 199 // this function exists because some versions of GCC complain when a 200 // comparison is done between a unsigned variable and 0 and for GCC 4.2 201 // there is no way to disable this warning --- 14 unchanged lines hidden (view full) --- 216 template <> 217 inline bool ltz(int32_t v) { return v < 0; } 218 template <> 219 inline bool ltz(int64_t v) { return v < 0; } 220}}; 221 222def template NeonEqualRegExecute {{ 223 template <class Element> | 194}}; 195 196output header {{ 197 template <class T> 198 // Implement a less-than-zero function: ltz() 199 // this function exists because some versions of GCC complain when a 200 // comparison is done between a unsigned variable and 0 and for GCC 4.2 201 // there is no way to disable this warning --- 14 unchanged lines hidden (view full) --- 216 template <> 217 inline bool ltz(int32_t v) { return v < 0; } 218 template <> 219 inline bool ltz(int64_t v) { return v < 0; } 220}}; 221 222def template NeonEqualRegExecute {{ 223 template <class Element> |
224 Fault %(class_name)s<Element>::execute(%(CPU_exec_context)s *xc, | 224 Fault %(class_name)s<Element>::execute(CPU_EXEC_CONTEXT *xc, |
225 Trace::InstRecord *traceData) const 226 { 227 Fault fault = NoFault; 228 %(op_decl)s; 229 %(op_rd)s; 230 231 const unsigned rCount = %(r_count)d; 232 const unsigned eCount = rCount * sizeof(FloatRegBits) / sizeof(Element); --- 28 unchanged lines hidden (view full) --- 261 262 template<> struct bigger_type_t<int8_t> { typedef int16_t type; }; 263 template<> struct bigger_type_t<int16_t> { typedef int32_t type; }; 264 template<> struct bigger_type_t<int32_t> { typedef int64_t type; }; 265}}; 266 267def template NeonUnequalRegExecute {{ 268 template <class Element> | 225 Trace::InstRecord *traceData) const 226 { 227 Fault fault = NoFault; 228 %(op_decl)s; 229 %(op_rd)s; 230 231 const unsigned rCount = %(r_count)d; 232 const unsigned eCount = rCount * sizeof(FloatRegBits) / sizeof(Element); --- 28 unchanged lines hidden (view full) --- 261 262 template<> struct bigger_type_t<int8_t> { typedef int16_t type; }; 263 template<> struct bigger_type_t<int16_t> { typedef int32_t type; }; 264 template<> struct bigger_type_t<int32_t> { typedef int64_t type; }; 265}}; 266 267def template NeonUnequalRegExecute {{ 268 template <class Element> |
269 Fault %(class_name)s<Element>::execute(%(CPU_exec_context)s *xc, | 269 Fault %(class_name)s<Element>::execute(CPU_EXEC_CONTEXT *xc, |
270 Trace::InstRecord *traceData) const 271 { 272 typedef typename bigger_type_t<Element>::type BigElement; 273 Fault fault = NoFault; 274 %(op_decl)s; 275 %(op_rd)s; 276 277 const unsigned rCount = %(r_count)d; --- 27 unchanged lines hidden --- | 270 Trace::InstRecord *traceData) const 271 { 272 typedef typename bigger_type_t<Element>::type BigElement; 273 Fault fault = NoFault; 274 %(op_decl)s; 275 %(op_rd)s; 276 277 const unsigned rCount = %(r_count)d; --- 27 unchanged lines hidden --- |