mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
35 lines
1.2 KiB
Diff
35 lines
1.2 KiB
Diff
|
# HG changeset patch
|
||
|
# User Nathan Froyd <froydnj@gmail.com>
|
||
|
|
||
|
Bug 1163171 - part 5 - remove arm-specific hacks in typed array implementation; r=lth
|
||
|
|
||
|
clang does not have the specific problem that led to this hack in the
|
||
|
first place, so we can remove the hack. (The hack also causes issues
|
||
|
with clang; it complains that you can't pass `volatile T*` into the
|
||
|
intrinsics that we're using for atomic operations.)
|
||
|
|
||
|
diff --git a/js/src/vm/TypedArrayObject-inl.h b/js/src/vm/TypedArrayObject-inl.h
|
||
|
index e5b0253..9d9c0d5 100644
|
||
|
--- a/js/src/vm/TypedArrayObject-inl.h
|
||
|
+++ b/js/src/vm/TypedArrayObject-inl.h
|
||
|
@@ -258,17 +258,17 @@ class ElementSpecific
|
||
|
uint32_t count = source->length();
|
||
|
|
||
|
if (source->type() == target->type()) {
|
||
|
Ops::podCopy(dest, source->viewDataEither().template cast<T*>(), count);
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
// Inhibit unaligned accesses on ARM (bug 1097253, a compiler bug).
|
||
|
-#ifdef __arm__
|
||
|
+#if defined(__arm__) && defined(__GNUC__) && !defined(__clang__)
|
||
|
# define JS_VOLATILE_ARM volatile
|
||
|
#else
|
||
|
# define JS_VOLATILE_ARM
|
||
|
#endif
|
||
|
|
||
|
SharedMem<void*> data = Ops::extract(source);
|
||
|
switch (source->type()) {
|
||
|
case Scalar::Int8: {
|
||
|
|