# This matches media/webrtc/trunk/webrtc/build/common.gypi.
@depends(arm_target.arm_arch, when=have_arm_neon)
def build_arm_neon(arm_arch):
- return arm_arch >= 700
+ return arm_arch >= 7
-#set_config("BUILD_ARM_NEON", build_arm_neon)
-#set_define("BUILD_ARM_NEON", build_arm_neon)
+set_config("BUILD_ARM_NEON", build_arm_neon)
+set_define("BUILD_ARM_NEON", build_arm_neon)
set_config("ARM_ARCH", depends(arm_target.arm_arch)(lambda x: str(x)))
@depends(rustc, when=rust_compiler)
-@imports("sys")
-@imports(_from="__builtin__", _import='repr')
@imports(_from="__builtin__", _import="ValueError")
def rust_supported_targets(rustc):
- #HACK: if there are multiple matches the algorithm uses the last one
- #put arm-unknown-linux-gnuebihf on the end of the list so it gets preffered
out = check_cmd_output(rustc, "--print", "target-list").splitlines()
- out.append("arm-unknown-linux-gnueabihf")
data = {}
for t in out:
try:
unsigned char *dest,
size_t length);
-//void qcms_transform_data_rgb_out_lut_neon(const qcms_transform *transform,
-// const unsigned char *src,
-// unsigned char *dest,
-// size_t length);
-//void qcms_transform_data_rgba_out_lut_neon(const qcms_transform *transform,
-// const unsigned char *src,
-// unsigned char *dest,
-// size_t length);
-//void qcms_transform_data_bgra_out_lut_neon(const qcms_transform *transform,
-// const unsigned char *src,
-// unsigned char *dest,
-// size_t length);
+void qcms_transform_data_rgb_out_lut_neon(const qcms_transform *transform,
+ const unsigned char *src,
+ unsigned char *dest,
+ size_t length);
+void qcms_transform_data_rgba_out_lut_neon(const qcms_transform *transform,
+ const unsigned char *src,
+ unsigned char *dest,
+ size_t length);
+void qcms_transform_data_bgra_out_lut_neon(const qcms_transform *transform,
+ const unsigned char *src,
+ unsigned char *dest,
+ size_t length);
extern bool qcms_supports_iccv4;
extern bool qcms_supports_neon;
pub use transform::Transform;
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
mod transform_avx;
-//#[cfg(all(any(target_arch = "aarch64", target_arch = "arm"), feature = "neon"))]
-//mod transform_neon;
+#[cfg(all(any(target_arch = "aarch64", target_arch = "arm"), feature = "neon"))]
+mod transform_neon;
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
mod transform_sse2;
mod transform_util;
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-/*#[cfg(all(any(target_arch = "arm", target_arch = "aarch64"), feature = "neon"))]
+#[cfg(all(any(target_arch = "arm", target_arch = "aarch64"), feature = "neon"))]
use crate::transform_neon::{
qcms_transform_data_bgra_out_lut_neon, qcms_transform_data_rgb_out_lut_neon,
qcms_transform_data_rgba_out_lut_neon,
-};*/
+};
use crate::{
chain::chain_transform,
double_to_s15Fixed16Number,
}
}
- /*#[cfg(all(target_arch = "arm", feature = "neon"))]
+ #[cfg(all(target_arch = "arm", feature = "neon"))]
let neon_supported = is_arm_feature_detected!("neon");
#[cfg(all(target_arch = "aarch64", feature = "neon"))]
let neon_supported = is_aarch64_feature_detected!("neon");
} else if in_type == BGRA8 {
transform.transform_fn = Some(qcms_transform_data_bgra_out_lut_neon)
}
- }*/
+ }
if transform.transform_fn.is_none() {
if in_type == RGB8 {
#else
typedef double __double_t;
#endif
-#define double_t __double_t
+typedef __double_t double_t;
/*
* The original fdlibm code used statements like: