# HG changeset patch # User Lars T Hansen # Date 1538489772 -7200 # Node ID bb430eaf5521aa8ab233a45b585ff9e5dfecf4c9 # Parent e87d7028568e721e8d297ce62f9622e74d29bb37 Bug 1495731 - remove JS_VOLATILE_ARM, it is no longer relevant. r=waldo JS_VOLATILE_ARM was a workaround for a gcc 4.7 bug on B2G where it would generate unaligned word accesses that should have been individual byte accesses. We now require at least gcc 6.1 (and ARM systems support unaligned accesses). Signed-off-by: Khem Raj Upstream-Status: Backport [https://hg.mozilla.org/integration/mozilla-inbound/rev/bb430eaf5521] --- a/js/src/vm/TypedArrayObject-inl.h +++ b/js/src/vm/TypedArrayObject-inl.h @@ -259,68 +259,61 @@ class ElementSpecific { return true; } - // Inhibit unaligned accesses on ARM (bug 1097253, a compiler bug). -#if defined(__arm__) && defined(__GNUC__) && !defined(__clang__) -#define JS_VOLATILE_ARM volatile -#else -#define JS_VOLATILE_ARM -#endif - SharedMem data = Ops::extract(source); switch (source->type()) { case Scalar::Int8: { - SharedMem src = - data.cast(); + SharedMem src = + data.cast(); for (uint32_t i = 0; i < count; ++i) Ops::store(dest++, ConvertNumber(Ops::load(src++))); break; } case Scalar::Uint8: case Scalar::Uint8Clamped: { - SharedMem src = - data.cast(); + SharedMem src = + data.cast(); for (uint32_t i = 0; i < count; ++i) Ops::store(dest++, ConvertNumber(Ops::load(src++))); break; } case Scalar::Int16: { - SharedMem src = - data.cast(); + SharedMem src = + data.cast(); for (uint32_t i = 0; i < count; ++i) Ops::store(dest++, ConvertNumber(Ops::load(src++))); break; } case Scalar::Uint16: { - SharedMem src = - data.cast(); + SharedMem src = + data.cast(); for (uint32_t i = 0; i < count; ++i) Ops::store(dest++, ConvertNumber(Ops::load(src++))); break; } case Scalar::Int32: { - SharedMem src = - data.cast(); + SharedMem src = + data.cast(); for (uint32_t i = 0; i < count; ++i) Ops::store(dest++, ConvertNumber(Ops::load(src++))); break; } case Scalar::Uint32: { - SharedMem src = - data.cast(); + SharedMem src = + data.cast(); for (uint32_t i = 0; i < count; ++i) Ops::store(dest++, ConvertNumber(Ops::load(src++))); break; } case Scalar::Float32: { - SharedMem src = - data.cast(); + SharedMem src = + data.cast(); for (uint32_t i = 0; i < count; ++i) Ops::store(dest++, ConvertNumber(Ops::load(src++))); break; } case Scalar::Float64: { - SharedMem src = - data.cast(); + SharedMem src = + data.cast(); for (uint32_t i = 0; i < count; ++i) Ops::store(dest++, ConvertNumber(Ops::load(src++))); break; @@ -329,8 +322,6 @@ class ElementSpecific { MOZ_CRASH("setFromTypedArray with a typed array with bogus type"); } -#undef JS_VOLATILE_ARM - return true; }