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. .clang-format
  2. .gitignore
  3. .gn
  4. .vpython
  5. AUTHORS
  6. Android.bp
  7. Android.mk
  8. BUILD.gn
  9. CM_linux_packages.cmake
  10. CMakeLists.txt
  11. DEPS
  12. LICENSE
  13. LICENSE_THIRD_PARTY
  14. OWNERS
  15. PATENTS
  16. PRESUBMIT.py
  17. README.chromium
  18. README.md
  19. all.gyp
  20. build_overrides/
  21. cleanup_links.py
  22. codereview.settings
  23. docs/
  24. download_vs_toolchain.py
  25. gyp_libyuv
  26. gyp_libyuv.py
  27. include/
  28. infra/
  29. libyuv.gni
  30. libyuv.gyp
  31. libyuv.gypi
  32. libyuv_nacl.gyp
  33. libyuv_test.gyp
  34. linux.mk
  35. public.mk
  36. pylintrc
  37. source/
  38. tools_libyuv/
  39. unit_test/
  40. util/
  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.