neon.isa (12616:4b463b4dc098) | neon.isa (13544:0b4e5446167c) |
---|---|
1// -*- mode:c++ -*- 2 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 --- 202 unchanged lines hidden (view full) --- 211 Fault %(class_name)s<Element>::execute(ExecContext *xc, 212 Trace::InstRecord *traceData) const 213 { 214 Fault fault = NoFault; 215 %(op_decl)s; 216 %(op_rd)s; 217 218 const unsigned rCount = %(r_count)d; | 1// -*- mode:c++ -*- 2 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 --- 202 unchanged lines hidden (view full) --- 211 Fault %(class_name)s<Element>::execute(ExecContext *xc, 212 Trace::InstRecord *traceData) const 213 { 214 Fault fault = NoFault; 215 %(op_decl)s; 216 %(op_rd)s; 217 218 const unsigned rCount = %(r_count)d; |
219 const unsigned eCount = rCount * sizeof(FloatRegBits) / sizeof(Element); | 219 const unsigned eCount = rCount * sizeof(uint32_t) / sizeof(Element); |
220 221 union RegVect { | 220 221 union RegVect { |
222 FloatRegBits regs[rCount]; | 222 uint32_t regs[rCount]; |
223 Element elements[eCount]; 224 }; 225 226 if (%(predicate_test)s) 227 { 228 %(code)s; 229 if (fault == NoFault) 230 { --- 26 unchanged lines hidden (view full) --- 257 Trace::InstRecord *traceData) const 258 { 259 typedef typename bigger_type_t<Element>::type BigElement; 260 Fault fault = NoFault; 261 %(op_decl)s; 262 %(op_rd)s; 263 264 const unsigned rCount = %(r_count)d; | 223 Element elements[eCount]; 224 }; 225 226 if (%(predicate_test)s) 227 { 228 %(code)s; 229 if (fault == NoFault) 230 { --- 26 unchanged lines hidden (view full) --- 257 Trace::InstRecord *traceData) const 258 { 259 typedef typename bigger_type_t<Element>::type BigElement; 260 Fault fault = NoFault; 261 %(op_decl)s; 262 %(op_rd)s; 263 264 const unsigned rCount = %(r_count)d; |
265 const unsigned eCount = rCount * sizeof(FloatRegBits) / sizeof(Element); | 265 const unsigned eCount = rCount * sizeof(uint32_t) / sizeof(Element); |
266 267 union RegVect { | 266 267 union RegVect { |
268 FloatRegBits regs[rCount]; | 268 uint32_t regs[rCount]; |
269 Element elements[eCount]; 270 BigElement bigElements[eCount / 2]; 271 }; 272 273 union BigRegVect { | 269 Element elements[eCount]; 270 BigElement bigElements[eCount / 2]; 271 }; 272 273 union BigRegVect { |
274 FloatRegBits regs[2 * rCount]; | 274 uint32_t regs[2 * rCount]; |
275 BigElement elements[eCount]; 276 }; 277 278 if (%(predicate_test)s) 279 { 280 %(code)s; 281 if (fault == NoFault) 282 { 283 %(op_wb)s; 284 } 285 } else { 286 xc->setPredicate(false); 287 } 288 289 return fault; 290 } 291}}; | 275 BigElement elements[eCount]; 276 }; 277 278 if (%(predicate_test)s) 279 { 280 %(code)s; 281 if (fault == NoFault) 282 { 283 %(op_wb)s; 284 } 285 } else { 286 xc->setPredicate(false); 287 } 288 289 return fault; 290 } 291}}; |