remove arm8.1-a requirement for android

This commit is contained in:
DH 2025-03-17 19:30:57 +03:00
parent d16269c56b
commit 67e2409dcf
3 changed files with 8 additions and 2 deletions

View file

@ -40,7 +40,7 @@ else()
# Note that compared to the rest of the 8.x family, 8.1 is very restrictive and we'll have to bump the requirement in future to get anything meaningful.
if (APPLE)
add_compile_options(-march=armv8.4-a)
else()
elseif(NOT ANDROID)
add_compile_options(-march=armv8.1-a)
endif()
elseif(COMPILER_X86)

View file

@ -445,7 +445,7 @@ namespace utils
{
#if defined(ARCH_X64) && !defined(_MSC_VER)
__asm__ volatile("lock orl $0, 0(%0)" :: "r" (ptr));
#elif defined(ARCH_ARM64)
#elif defined(ARCH_ARM64) && !defined(ANDROID)
u32 value = 0;
u32* u32_ptr = static_cast<u32*>(ptr);
__asm__ volatile("ldset %w0, %w0, %1" : "+r"(value), "=Q"(*u32_ptr) : "r"(value));

View file

@ -1,5 +1,6 @@
#pragma once
#include "Utilities/StrFmt.h"
#include "util/types.hpp"
#include "util/v128.hpp"
#include "util/sysinfo.hpp"
@ -1881,7 +1882,12 @@ inline v128 gv_muladdfs(const v128& a, const v128& b, const v128& c)
inline v128 gv_rmuladds_hds16(const v128& a, const v128& b, const v128& c)
{
#if defined(ARCH_ARM64)
#if defined(ANDROID)
// This function used in optimized PPU interpreter only, we do not use interperters in android
return a;
#else
return vqrdmlahq_s16(c, a, b);
#endif
#elif defined(ARCH_X64)
const auto x80 = _mm_set1_epi16(0x80); // 0x80 * 0x80 = 0x4000, add this to the product
const auto al = _mm_unpacklo_epi16(a, x80);