Bug 1914979 - Don't mark v8-v15 arm64 SIMD registers as non-volatile. r=yury
Only the bottom 64 bits will be preserved by C++ code so we shouldn't treat the SIMD registers as non-volatile. The patch in bug 1919803 has a Wasm test for this. Differential Revision: https://phabricator.services.mozilla.com/D225646
This commit is contained in:
@@ -491,10 +491,10 @@ class FloatRegisters {
|
||||
(1 << FloatRegisters::s12) | (1 << FloatRegisters::s13) |
|
||||
(1 << FloatRegisters::s14) | (1 << FloatRegisters::s15));
|
||||
|
||||
// Note: only the bottom 64 bits of v8-v15 will be preserved.
|
||||
static constexpr SetType NonVolatileMask =
|
||||
(NonVolatileSingleMask << ShiftSingle) |
|
||||
(NonVolatileSingleMask << ShiftDouble) |
|
||||
(NonVolatileSingleMask << ShiftSimd128);
|
||||
(NonVolatileSingleMask << ShiftDouble);
|
||||
|
||||
static constexpr SetType VolatileMask = AllMask & ~NonVolatileMask;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user