Re-enable x86 assembly without requiring -msse2

clang does not require -msse2 or -msse for inline, except
the "x" parameter.  So change this to "m" for 32 bit.  64 bit
requires sse2 so use "x" for 64 bit.

gcc requires -msse for xmm registers in clobber list.
Reduce compiler requirement from -msse2 to -msse for enabling
assembly.

Bug: libyuv:754, libyuv:757
Test: CC=clang CXX=clang++ CFLAGS="-m32" CXXFLAGS="-m32 -mno-sse -O2" make -f linux.mk
Change-Id: I86df72cfee80b7d349561c1fd7c97ad360767255
Reviewed-on: https://chromium-review.googlesource.com/759303
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
7 files changed
tree: c2e13f23f30d9538ecc5cfbacdc56793efb744bf
  1. build_overrides/
  2. docs/
  3. include/
  4. infra/
  5. source/
  6. tools_libyuv/
  7. unit_test/
  8. util/
  9. .clang-format
  10. .gitignore
  11. .gn
  12. .vpython
  13. all.gyp
  14. Android.bp
  15. Android.mk
  16. AUTHORS
  17. BUILD.gn
  18. cleanup_links.py
  19. CM_linux_packages.cmake
  20. CMakeLists.txt
  21. codereview.settings
  22. DEPS
  23. download_vs_toolchain.py
  24. gyp_libyuv
  25. gyp_libyuv.py
  26. libyuv.gni
  27. libyuv.gyp
  28. libyuv.gypi
  29. libyuv_nacl.gyp
  30. libyuv_test.gyp
  31. LICENSE
  32. LICENSE_THIRD_PARTY
  33. linux.mk
  34. OWNERS
  35. PATENTS
  36. PRESUBMIT.py
  37. public.mk
  38. pylintrc
  39. README.chromium
  40. README.md
  41. winarm.mk
README.md

libyuv is an open source project that includes YUV scaling and conversion functionality.

  • Scale YUV to prepare content for compression, with point, bilinear or box filter.
  • Convert to YUV from webcam formats.
  • Convert from YUV to formats for rendering/effects.
  • Rotate by 90/180/270 degrees to adjust for mobile devices in portrait mode.
  • Optimized for SSE2/SSSE3/AVX2 on x86/x64.
  • Optimized for Neon on Arm.
  • Optimized for DSP R2 on Mips.

Development

See [Getting started] 1 for instructions on how to get started developing.

You can also browse the [docs directory] 2 for more documentation.