/*
- * Copyright (c) 2010-2011, 2014, 2016-2018 ARM Limited
+ * Copyright (c) 2010-2011, 2014, 2016-2019 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
using ArmISAInst::MaxInstDestRegs;
using ArmISAInst::MaxMiscDestRegs;
+// Number of VecElem per Vector Register considering only pre-SVE
+// Advanced SIMD registers.
+constexpr unsigned NumVecElemPerNeonVecReg = 4;
// Number of VecElem per Vector Register, computed based on the vector length
constexpr unsigned NumVecElemPerVecReg = MaxSveVecLenInWords;
/*
* Copyright 2015 LabWare
* Copyright 2014 Google Inc.
- * Copyright (c) 2010, 2013, 2016, 2018 ARM Limited
+ * Copyright (c) 2010, 2013, 2016, 2018-2019 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
size_t base = 0;
for (int i = 0; i < NumVecV8ArchRegs; i++) {
auto v = (context->readVecReg(RegId(VecRegClass, i))).as<VecElem>();
- for (size_t j = 0; j < NumVecElemPerVecReg; j++) {
+ for (size_t j = 0; j < NumVecElemPerNeonVecReg; j++) {
r.v[base] = v[j];
base++;
}
for (int i = 0; i < NumVecV8ArchRegs; i++) {
auto v = (context->getWritableVecReg(
RegId(VecRegClass, i))).as<VecElem>();
- for (size_t j = 0; j < NumVecElemPerVecReg; j++) {
+ for (size_t j = 0; j < NumVecElemPerNeonVecReg; j++) {
v[j] = r.v[base];
base++;
}
/*
* Copyright 2015 LabWare
* Copyright 2014 Google, Inc.
- * Copyright (c) 2013, 2016, 2018 ARM Limited
+ * Copyright (c) 2013, 2016, 2018-2019 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
uint64_t spx;
uint64_t pc;
uint32_t cpsr;
- VecElem v[NumVecV8ArchRegs * NumVecElemPerVecReg];
+ VecElem v[NumVecV8ArchRegs * NumVecElemPerNeonVecReg];
uint32_t fpsr;
uint32_t fpcr;
} M5_ATTR_PACKED r;