summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/png/SCsub9
-rw-r--r--drivers/unix/thread_posix.cpp7
-rw-r--r--drivers/webp/utils/bit_reader.c8
-rw-r--r--drivers/webp/utils/bit_reader.h8
4 files changed, 28 insertions, 4 deletions
diff --git a/drivers/png/SCsub b/drivers/png/SCsub
index 5682a5667e..5532e28ade 100644
--- a/drivers/png/SCsub
+++ b/drivers/png/SCsub
@@ -22,18 +22,19 @@ png_sources = [
"png/image_loader_png.cpp"
]
-if ("neon_enabled" in env and env["neon_enabled"]):
+if ("neon_enabled" in env and env["neon_enabled"]):
+ env.Append(CPPFLAGS=["-DPNG_ARM_NEON_OPT=2"])
env_neon = env.Clone();
if "S_compiler" in env:
env_neon['CC'] = env['S_compiler']
- env_neon.Append(CPPFLAGS=["-DPNG_ARM_NEON"])
+ #env_neon.Append(CPPFLAGS=["-DPNG_ARM_NEON"])
import os
# Currently .ASM filter_neon.S does not compile on NT.
if (os.name!="nt"):
- env_neon.Append(CPPFLAGS=["-DPNG_ARM_NEON_OPT=2"])
png_sources.append(env_neon.Object("#drivers/png/arm/arm_init.c"))
png_sources.append(env_neon.Object("#drivers/png/arm/filter_neon.S"))
-
+else:
+ env.Append(CPPFLAGS=["-DPNG_ARM_NEON_OPT=0"])
env.drivers_sources+=png_sources
diff --git a/drivers/unix/thread_posix.cpp b/drivers/unix/thread_posix.cpp
index b7bcd44783..1c18ebd855 100644
--- a/drivers/unix/thread_posix.cpp
+++ b/drivers/unix/thread_posix.cpp
@@ -81,6 +81,11 @@ Error ThreadPosix::set_name(const String& p_name) {
ERR_FAIL_COND_V(pthread == 0, ERR_UNCONFIGURED);
+ #ifdef PTHREAD_NO_RENAME
+ return ERR_UNAVAILABLE;
+
+ #else
+
#ifdef PTHREAD_RENAME_SELF
// check if thread is the same as caller
@@ -100,6 +105,8 @@ Error ThreadPosix::set_name(const String& p_name) {
#endif
return err == 0 ? OK : ERR_INVALID_PARAMETER;
+
+ #endif // PTHREAD_NO_RENAME
};
void ThreadPosix::make_default() {
diff --git a/drivers/webp/utils/bit_reader.c b/drivers/webp/utils/bit_reader.c
index 5081d5cd4d..4d6b4f0164 100644
--- a/drivers/webp/utils/bit_reader.c
+++ b/drivers/webp/utils/bit_reader.c
@@ -17,6 +17,8 @@
#include "./bit_reader_inl.h"
+#define JAVASCRIPT_ENABLED // testing
+
//------------------------------------------------------------------------------
// VP8BitReader
@@ -40,7 +42,13 @@ void VP8InitBitReader(VP8BitReader* const br,
br->bits_ = -8; // to load the very first 8bits
br->eof_ = 0;
VP8BitReaderSetBuffer(br, start, size);
+
+#ifdef JAVASCRIPT_ENABLED // html5 required aligned reads
+ while(((uintptr_t)br->buf_ & 1) != 0 && !br->eof_)
+ VP8LoadFinalBytes(br);
+#else
VP8LoadNewBytes(br);
+#endif
}
void VP8RemapBitReader(VP8BitReader* const br, ptrdiff_t offset) {
diff --git a/drivers/webp/utils/bit_reader.h b/drivers/webp/utils/bit_reader.h
index 7e09653ebc..f0f450231d 100644
--- a/drivers/webp/utils/bit_reader.h
+++ b/drivers/webp/utils/bit_reader.h
@@ -37,6 +37,12 @@ extern "C" {
// BITS can be any multiple of 8 from 8 to 56 (inclusive).
// Pick values that fit natural register size.
+#ifdef JAVASCRIPT_ENABLED
+
+#define BITS 16
+
+#else
+
#if defined(__i386__) || defined(_M_IX86) // x86 32bit
#define BITS 24
#elif defined(__x86_64__) || defined(_M_X64) // x86 64bit
@@ -49,6 +55,8 @@ extern "C" {
#define BITS 24 // TODO(skal): test aarch64 and find the proper BITS value.
#endif
+#endif
+
//------------------------------------------------------------------------------
// Derived types and constants:
// bit_t = natural register type for storing 'value_' (which is BITS+8 bits)