a bunch of fixes for generic architecture & wasm

This commit is contained in:
dzaima 2023-05-16 00:07:48 +03:00
parent 65868a51ba
commit e4d222173d
3 changed files with 12 additions and 8 deletions

View File

@ -200,6 +200,7 @@ po ← { # parsed options
linuxbsdmacoswindows os¨ {𝕊: "Error: Unsupported OS; options:"1", "¨𝕩}_assert_(os<) "linux""bsd""macos""windows" linuxbsdmacoswindows os¨ {𝕊: "Error: Unsupported OS; options:"1", "¨𝕩}_assert_(os<) "linux""bsd""macos""windows"
arch {'-'¨(('_'=𝕩)/)𝕩} Lowercase {InUname"x86_64"? "x86-64"; ´InUname¨"aarch64""arm64"? "aarch64"; "generic"} DOpt "arch" arch {'-'¨(('_'=𝕩)/)𝕩} Lowercase {InUname"x86_64"? "x86-64"; ´InUname¨"aarch64""arm64"? "aarch64"; "generic"} DOpt "arch"
{𝕊: arch "generic"} wasm
{𝕊: "Error: Unsupported arch; options:"1", "¨𝕩}_assert_(arch<) "x86-64""aarch64""generic" {𝕊: "Error: Unsupported arch; options:"1", "¨𝕩}_assert_(arch<) "x86-64""aarch64""generic"
ffi ((¬windows)¬wasm) DOpt "FFI" ffi ((¬windows)¬wasm) DOpt "FFI"
@ -223,6 +224,7 @@ po ← { # parsed options
} (arch"x86-64") singeli ¬avx2 } (arch"x86-64") singeli ¬avx2
pie {(¬shared)linuxarch"x86-64"? 0; 1} DOpt "pie" pie {(¬shared)linuxarch"x86-64"? 0; 1} DOpt "pie"
{𝕊: pie 0} wasm
output GetOpt "OUTPUT" output GetOpt "OUTPUT"
output •wdpath•file.At {𝕊: output •wdpath•file.At {𝕊:
@ -269,8 +271,8 @@ po ← { # parsed options
"-Wno-parentheses" # gcc "-Wno-parentheses" # gcc
# clang # clang
"-Wno-microsoft-anon-tag", "-Wno-bitwise-instead-of-logical", "-Wno-unknown-warning-option" "-Wno-microsoft-anon-tag", "-Wno-bitwise-instead-of-logical", "-Wno-unknown-warning-option"
"-mllvm", "--x86-cmov-converter=0" # thing that converts `cmov`s to branching sometimes (?), but we don't want that
(¬wasm)/"-mllvm", "--x86-cmov-converter=0" # thing that converts `cmov`s to branching sometimes (?), but we don't want that
args 0GetLibs@ args 0GetLibs@

View File

@ -23,7 +23,7 @@
#include "../utils/hash.h" #include "../utils/hash.h"
#include "../utils/talloc.h" #include "../utils/talloc.h"
#if SINGELI_SIMD #if SINGELI
#define SINGELI_FILE search #define SINGELI_FILE search
#include "../utils/includeSingeli.h" #include "../utils/includeSingeli.h"
#endif #endif

View File

@ -73,12 +73,14 @@ fn copyOrdered{}(r:*f64, x:*f64, len:u64) : u1 = {
0 0
} }
if (hasarch{'X86_64'} or hasarch{'AARCH64'}) {
export{'simd_search_u8', searchOne{u64, u8}} export{'simd_search_u8', searchOne{u64, u8}}
export{'simd_search_u16', searchOne{u64, u16}} export{'simd_search_u16', searchOne{u64, u16}}
export{'simd_search_u32', searchOne{u64, u32}} export{'simd_search_u32', searchOne{u64, u32}}
export{'simd_search_f64', searchOne{f64, f64}} export{'simd_search_f64', searchOne{f64, f64}}
export{'simd_search_normalizable', searchNormalizable{}} export{'simd_search_normalizable', searchNormalizable{}}
export{'simd_copy_ordered', copyOrdered{}} export{'simd_copy_ordered', copyOrdered{}}
}
# In-register bit table # In-register bit table