Compare commits
	
		
			10 Commits
		
	
	
		
			10b02b3755
			...
			00de7ebc6a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 00de7ebc6a | |||
|  | b9a2fafa70 | ||
|  | 9b8711c8f2 | ||
|  | 34e3dd7eeb | ||
|  | 4371e5c4c1 | ||
|  | 501b6b0d75 | ||
|  | 28ff8bb8f7 | ||
|  | 4032cd3b40 | ||
|  | 4477644c74 | ||
|  | 8a048fb025 | 
							
								
								
									
										9
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -191,12 +191,3 @@ jobs: | |||||||
|       run: | |       run: | | ||||||
|         docker run -u root --rm -v $(pwd):/${{ github.workspace }} -w ${{ github.workspace }} --platform linux/${{ matrix.arch }} debian:unstable-slim \ |         docker run -u root --rm -v $(pwd):/${{ github.workspace }} -w ${{ github.workspace }} --platform linux/${{ matrix.arch }} debian:unstable-slim \ | ||||||
|           /bin/bash -c "apt update && apt install -y gcc libc6-dev && gcc main.c -o ruapu && ./ruapu" |           /bin/bash -c "apt update && apt install -y gcc libc6-dev && gcc main.c -o ruapu && ./ruapu" | ||||||
| 
 |  | ||||||
|   macos-flyci: |  | ||||||
|     runs-on: flyci-macos-14-xlarge-m2 |  | ||||||
|     steps: |  | ||||||
|     - uses: actions/checkout@v4 |  | ||||||
|     - name: build-test |  | ||||||
|       run: | |  | ||||||
|         clang main.c -o ruapu |  | ||||||
|         ./ruapu |  | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								.github/workflows/pypi.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/pypi.yml
									
									
									
									
										vendored
									
									
								
							| @ -23,7 +23,7 @@ jobs: | |||||||
|           platforms: all |           platforms: all | ||||||
| 
 | 
 | ||||||
|       - name: cibuildwheel |       - name: cibuildwheel | ||||||
|         uses: pypa/cibuildwheel@v2.18.0 |         uses: pypa/cibuildwheel@v2.20.0 | ||||||
|         env: |         env: | ||||||
|           CIBW_ARCHS_LINUX: "x86_64 i686 aarch64 ppc64le s390x" |           CIBW_ARCHS_LINUX: "x86_64 i686 aarch64 ppc64le s390x" | ||||||
|           CIBW_ARCHS_MACOS: "x86_64 arm64 universal2" |           CIBW_ARCHS_MACOS: "x86_64 arm64 universal2" | ||||||
|  | |||||||
							
								
								
									
										50
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								README.md
									
									
									
									
									
								
							| @ -62,14 +62,14 @@ _`fma4` on zen1, ISA in hypervisor, etc._ | |||||||
| 
 | 
 | ||||||
| |CPU|ISA| | |CPU|ISA| | ||||||
| |:---:|---| | |:---:|---| | ||||||
| |x86|`mmx` `sse` `sse2` `sse3` `ssse3` `sse41` `sse42` `sse4a` `xop` `avx` `f16c` `fma` `fma4` `avx2` `avx512f` `avx512bw` `avx512cd` `avx512dq` `avx512vl` `avx512vnni` `avx512bf16` `avx512ifma` `avx512vbmi` `avx512vbmi2` `avx512fp16` `avx512er` `avx5124fmaps` `avx5124vnniw` `avxvnni` `avxvnniint8` `avxvnniint16` `avxifma` `amxfp16` `amxbf16` `amxint8` `amxtile`| | |x86|`mmx` `sse` `sse2` `sse3` `ssse3` `sse41` `sse42` `sse4a` `xop` `avx` `f16c` `fma` `fma4` `avx2` `avx512f` `avx512bw` `avx512cd` `avx512dq` `avx512vl` `avx512vnni` `avx512bf16` `avx512ifma` `avx512vbmi` `avx512vbmi2` `avx512fp16` `avx512er` `avx5124fmaps` `avx5124vnniw` `avxvnni` `avxvnniint8` `avxvnniint16` `avxifma` `amxfp16` `amxbf16` `amxint8` `amxtile` `bmi1` `bmi2` `gfni` `aesni` `vaes` `sha` `rdrand` `rdseed` `tsx`| | ||||||
| |arm|`half` `edsp` `neon` `vfpv4` `idiv`| | |arm|`half` `edsp` `neon` `vfpv4` `idiv`| | ||||||
| |aarch64|`neon` `vfpv4` `lse` `cpuid` `asimdrdm` `asimdhp` `asimddp` `asimdfhm` `bf16` `i8mm` `frint` `jscvt` `fcma` `mte` `mte2` `sve` `sve2` `svebf16` `svei8mm` `svef32mm` `svef64mm` `sme` `smef16f16` `smef64f64` `smei64i64` `pmull` `crc32` `aes` `sha1` `sha2` `sha3` `sha512` `sm3` `sm4` `svepmull` `svebitperm` `sveaes` `svesha3` `svesm4` `amx`| | |aarch64|`neon` `vfpv4` `lse` `cpuid` `asimdrdm` `asimdhp` `asimddp` `asimdfhm` `bf16` `i8mm` `frint` `jscvt` `fcma` `mte` `mte2` `sve` `sve2` `svebf16` `svei8mm` `svef32mm` `svef64mm` `sme` `smef16f16` `smef64f64` `smei64i64` `pmull` `crc32` `aes` `sha1` `sha2` `sha3` `sha512` `sm3` `sm4` `svepmull` `svebitperm` `sveaes` `svesha3` `svesm4` `amx`| | ||||||
| |mips|`msa` `mmi` `sx` `asx` `msa2` `crypto`| | |mips|`msa` `mmi` `sx` `asx` `msa2` `crypto`| | ||||||
| |powerpc|`vsx`| | |powerpc|`vsx`| | ||||||
| |s390x|`zvector`| | |s390x|`zvector`| | ||||||
| |loongarch|`lsx` `lasx`| | |loongarch|`lsx` `lasx`| | ||||||
| |risc-v|`i` `m` `a` `f` `d` `c` `v` `zba` `zbb` `zbc` `zbs` `zbkb` `zbkc` `zbkx` `zfa` `zfbfmin` `zfh` `zfhmin` `zicond` `zicsr` `zifencei` `zmmul` `zvbb` `zvbc` `zvfh` `zvfhmin` `zvfbfmin` `zvfbfwma` `zvkb` `zvl32b` `zvl64b` `zvl128b` `zvl256b` `zvl512b` `zvl1024b` `xtheadba` `xtheadbb` `xtheadbs` `xtheadcondmov` `xtheadfmemidx` `xtheadfmv` `xtheadmac` `xtheadmemidx` `xtheadmempair` `xtheadsync` `xtheadvdot`| | |risc-v|`i` `m` `a` `f` `d` `c` `v` `zba` `zbb` `zbc` `zbs` `zbkb` `zbkc` `zbkx` `zcb` `zfa` `zfbfmin` `zfh` `zfhmin` `zicond` `zicsr` `zifencei` `zmmul` `zvbb` `zvbc` `zvfh` `zvfhmin` `zvfbfmin` `zvfbfwma` `zvkb` `zvl32b` `zvl64b` `zvl128b` `zvl256b` `zvl512b` `zvl1024b` `xtheadba` `xtheadbb` `xtheadbs` `xtheadcondmov` `xtheadfmemidx` `xtheadfmv` `xtheadmac` `xtheadmemidx` `xtheadmempair` `xtheadsync` `xtheadvdot` `spacemitvmadot` `spacemitvmadotn` `spacemitvfmadot`| | ||||||
| |openrisc| `orbis32` `orbis64` `orfpx32` `orfpx64` `orvdx64` | | |openrisc| `orbis32` `orbis64` `orfpx32` `orfpx64` `orvdx64` | | ||||||
| 
 | 
 | ||||||
| ## Let's ruapu | ## Let's ruapu | ||||||
| @ -495,6 +495,52 @@ class Example { | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | </td></tr> | ||||||
|  | </table> | ||||||
|  | 
 | ||||||
|  | ### ruapu with cangjie | ||||||
|  | 
 | ||||||
|  | <table> | ||||||
|  | 
 | ||||||
|  | <tr><td> | ||||||
|  | 
 | ||||||
|  | Compile ruapu library | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | cd cangjie | ||||||
|  | cd c-src | ||||||
|  | cmake . | ||||||
|  | make | ||||||
|  | ``` | ||||||
|  | run example | ||||||
|  | ```bash | ||||||
|  | cd cangjie | ||||||
|  | cjpm run | ||||||
|  | ``` | ||||||
|  | or compile example | ||||||
|  | ```bash | ||||||
|  | cd cangjie | ||||||
|  | cjpm build | ||||||
|  | ./target/release/bin/main | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | </td> | ||||||
|  | <td> | ||||||
|  | Use ruapu in cangjie | ||||||
|  | 
 | ||||||
|  | ```swift | ||||||
|  | import ruapu.* | ||||||
|  | main(): Int64 { | ||||||
|  |     ruapu_init() | ||||||
|  |     let neon_supported = ruapu_supports("neon") | ||||||
|  |     println("supports neon: ${neon_supported}")  | ||||||
|  |     let d = ruapu_rua() | ||||||
|  |     for (i in d) { | ||||||
|  |         println(i) | ||||||
|  |     } | ||||||
|  |     return 0 | ||||||
|  | } | ||||||
|  | ``` | ||||||
| </td></tr> | </td></tr> | ||||||
| </table> | </table> | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								cangjie/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								cangjie/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | ## ruapu cangjie | ||||||
|  | 
 | ||||||
|  | 当前代码仓颉版本: `0.51.4` | ||||||
|  | 
 | ||||||
|  | > 仓颉目前处于内测阶段,不保证该代码在更新的仓颉编译器版本中可用 | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | cd cangjie | ||||||
|  | cd c-src | ||||||
|  | cmake . | ||||||
|  | make | ||||||
|  | cd .. | ||||||
|  | cjpm run | ||||||
|  | ``` | ||||||
							
								
								
									
										10
									
								
								cangjie/c-src/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								cangjie/c-src/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | cmake_minimum_required(VERSION 3.5) | ||||||
|  | 
 | ||||||
|  | project(ruapu) | ||||||
|  | 
 | ||||||
|  | include_directories(../../) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | add_library(ruapu  | ||||||
|  |     ruapu-binding.c | ||||||
|  | ) | ||||||
							
								
								
									
										14
									
								
								cangjie/c-src/ruapu-binding.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								cangjie/c-src/ruapu-binding.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | #define RUAPU_IMPLEMENTATION | ||||||
|  | #include "ruapu.h" | ||||||
|  | 
 | ||||||
|  | void ruapu_init_c() { | ||||||
|  |     ruapu_init(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int ruapu_supports_c(const char* isa) { | ||||||
|  |     return ruapu_supports(isa); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | const char* const* ruapu_rua_c() { | ||||||
|  |     return ruapu_rua(); | ||||||
|  | } | ||||||
							
								
								
									
										16
									
								
								cangjie/cjpm.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								cangjie/cjpm.toml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | |||||||
|  | [dependencies] | ||||||
|  | 
 | ||||||
|  | [package] | ||||||
|  |   cjc-version = "0.51.4" | ||||||
|  |   compile-option = "" | ||||||
|  |   description = "ruapu" | ||||||
|  |   link-option = "" | ||||||
|  |   name = "ruapu_cangjie" | ||||||
|  |   output-type = "executable" | ||||||
|  |   src-dir = "" | ||||||
|  |   target-dir = "" | ||||||
|  |   version = "1.0.0" | ||||||
|  |   package-configuration = {} | ||||||
|  | 
 | ||||||
|  | [ffi.c] | ||||||
|  |   ruapu = { path = "./c-src/" } | ||||||
							
								
								
									
										11
									
								
								cangjie/src/main.cj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								cangjie/src/main.cj
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | import ruapu.* | ||||||
|  | main(): Int64 { | ||||||
|  |     ruapu_init() | ||||||
|  |     let neon_supported = ruapu_supports("neon") | ||||||
|  |     println("supports neon: ${neon_supported}")  | ||||||
|  |     let d = ruapu_rua() | ||||||
|  |     for (i in d) { | ||||||
|  |         println(i) | ||||||
|  |     } | ||||||
|  |     return 0 | ||||||
|  | } | ||||||
							
								
								
									
										30
									
								
								cangjie/src/ruapu/ruapu.cj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								cangjie/src/ruapu/ruapu.cj
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | |||||||
|  | package ruapu | ||||||
|  | 
 | ||||||
|  | from std import collection.ArrayList | ||||||
|  | 
 | ||||||
|  | foreign func ruapu_init_c(): Unit | ||||||
|  | 
 | ||||||
|  | foreign func ruapu_supports_c(s: CString): Int32 | ||||||
|  | 
 | ||||||
|  | foreign func ruapu_rua_c(): CPointer<CString> | ||||||
|  | 
 | ||||||
|  | public func ruapu_init(): Unit { | ||||||
|  |     unsafe{ ruapu_init_c() } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | public func ruapu_supports(isa: String): Bool { | ||||||
|  |     var isa_c = unsafe { LibC.mallocCString(isa) } | ||||||
|  |     let result_c = unsafe { ruapu_supports_c(isa_c) } | ||||||
|  |     return result_c == 1 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | public func ruapu_rua(): Array<String> { | ||||||
|  |     var ruaList = ArrayList<String>() | ||||||
|  |     var sp = unsafe { ruapu_rua_c() } | ||||||
|  |     while(!unsafe { sp.read().isNull() }) { | ||||||
|  |         let temp = unsafe { sp.read() } | ||||||
|  |         ruaList.append(temp.toString()) | ||||||
|  |         sp = unsafe { sp + 1 } | ||||||
|  |     } | ||||||
|  |     return Array<String>(ruaList) | ||||||
|  | } | ||||||
							
								
								
									
										321
									
								
								dart/.dart_tool/package_config.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										321
									
								
								dart/.dart_tool/package_config.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,321 @@ | |||||||
|  | { | ||||||
|  |   "configVersion": 2, | ||||||
|  |   "packages": [ | ||||||
|  |     { | ||||||
|  |       "name": "_fe_analyzer_shared", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-73.0.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.3" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "_macros", | ||||||
|  |       "rootUri": "file:///opt/homebrew/Cellar/dart/3.5.3/libexec/pkg/_macros", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "analyzer", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/analyzer-6.8.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.3" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "args", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/args-2.5.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.0" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "async", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/async-2.11.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.18" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "boolean_selector", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.17" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "collection", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/collection-1.19.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "convert", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/convert-3.1.1", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.18" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "coverage", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/coverage-1.9.2", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "crypto", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/crypto-3.0.5", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "ffi", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/ffi-1.2.1", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.12" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "file", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/file-7.0.1", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.0" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "frontend_server_client", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.0" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "glob", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/glob-2.1.2", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.19" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "http_multi_server", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/http_multi_server-3.2.1", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.12" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "http_parser", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/http_parser-4.1.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "io", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/io-1.0.4", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.12" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "js", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/js-0.7.1", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.1" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "lints", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/lints-4.0.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.1" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "logging", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/logging-1.2.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.19" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "macros", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/macros-0.1.2-main.4", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "matcher", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/matcher-0.12.16+1", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.0" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "meta", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/meta-1.16.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.12" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "mime", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/mime-2.0.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.2" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "node_preamble", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/node_preamble-2.0.2", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.12" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "package_config", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/package_config-2.1.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.12" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "path", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/path-1.9.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.0" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "pool", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/pool-1.5.1", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.12" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "pub_semver", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/pub_semver-2.1.4", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.17" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "shelf", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/shelf-1.4.2", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "shelf_packages_handler", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.17" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "shelf_static", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/shelf_static-1.1.3", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.3" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "shelf_web_socket", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/shelf_web_socket-2.0.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.0" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "source_map_stack_trace", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.3" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "source_maps", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/source_maps-0.10.12", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.18" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "source_span", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/source_span-1.10.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.18" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "stack_trace", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/stack_trace-1.12.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "stream_channel", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/stream_channel-2.1.2", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.19" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "string_scanner", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/string_scanner-1.3.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.1" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "term_glyph", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/term_glyph-1.2.1", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.12" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "test", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/test-1.25.8", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "test_api", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/test_api-0.7.3", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "test_core", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/test_core-0.6.5", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "typed_data", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/typed_data-1.3.2", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.17" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "vm_service", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/vm_service-14.3.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.3" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "watcher", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/watcher-1.1.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.0" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "web", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/web-1.1.0", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "web_socket", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/web_socket-0.1.6", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.3" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "web_socket_channel", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.1", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.3" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "webkit_inspection_protocol", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.0" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "yaml", | ||||||
|  |       "rootUri": "file:///Users/darren/.pub-cache/hosted/pub.dev/yaml-3.1.2", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "2.19" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "dartHello", | ||||||
|  |       "rootUri": "../", | ||||||
|  |       "packageUri": "lib/", | ||||||
|  |       "languageVersion": "3.4" | ||||||
|  |     } | ||||||
|  |   ], | ||||||
|  |   "generated": "2024-10-14T02:37:48.199003Z", | ||||||
|  |   "generator": "pub", | ||||||
|  |   "generatorVersion": "3.5.3", | ||||||
|  |   "pubCache": "file:///Users/darren/.pub-cache" | ||||||
|  | } | ||||||
							
								
								
									
										22
									
								
								dart/build.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								dart/build.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | 
 | ||||||
|  | PROJECT_DIR=$(pwd) | ||||||
|  | RUAPU_API_DIR="$PROJECT_DIR/ruapu-api" | ||||||
|  | BUILD_DIR="$PROJECT_DIR/build" | ||||||
|  | 
 | ||||||
|  | mkdir -p "$BUILD_DIR" | ||||||
|  | cd "$BUILD_DIR" || exit | ||||||
|  | 
 | ||||||
|  | cmake "$RUAPU_API_DIR" | ||||||
|  | make | ||||||
|  | 
 | ||||||
|  | if [ $? -ne 0 ]; then | ||||||
|  |   echo "编译失败,请检查错误信息。" | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | cd "$PROJECT_DIR" || exit | ||||||
|  | 
 | ||||||
|  | dart pub get | ||||||
|  | 
 | ||||||
|  | dart run main.dart | ||||||
							
								
								
									
										33
									
								
								dart/main.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								dart/main.dart
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | |||||||
|  | import 'dart:io'; | ||||||
|  | import 'ruapu_api.dart'; | ||||||
|  | import 'package:path/path.dart' as path; | ||||||
|  | 
 | ||||||
|  | void main() { | ||||||
|  |   var libraryPath = | ||||||
|  |   path.join(Directory.current.path, 'build', 'libruapu.so'); | ||||||
|  | 
 | ||||||
|  |   if (Platform.isMacOS) { | ||||||
|  |     libraryPath = | ||||||
|  |         path.join(Directory.current.path, 'build', 'libruapu.dylib'); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   if (Platform.isWindows) { | ||||||
|  |     libraryPath = path.join( | ||||||
|  |         Directory.current.path, 'build', 'Debug', 'hello.dll'); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   Ruapu api = Ruapu(libraryPath); | ||||||
|  | 
 | ||||||
|  |   api.init(); | ||||||
|  | 
 | ||||||
|  |   List<String> isas = api.getRuapuISA(); | ||||||
|  |   print("This CPU Support:"); | ||||||
|  |   for (String isa in isas) { | ||||||
|  |     print(isa); | ||||||
|  |   } | ||||||
|  |   print("================="); | ||||||
|  | 
 | ||||||
|  |   String isaToCheck = 'aes'; | ||||||
|  |   bool isSupported = api.supportsISA(isaToCheck); | ||||||
|  |   print('Does the system support $isaToCheck? $isSupported'); | ||||||
|  | } | ||||||
							
								
								
									
										410
									
								
								dart/pubspec.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										410
									
								
								dart/pubspec.lock
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,410 @@ | |||||||
|  | # Generated by pub | ||||||
|  | # See https://dart.dev/tools/pub/glossary#lockfile | ||||||
|  | packages: | ||||||
|  |   _fe_analyzer_shared: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: _fe_analyzer_shared | ||||||
|  |       sha256: "45cfa8471b89fb6643fe9bf51bd7931a76b8f5ec2d65de4fb176dba8d4f22c77" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "73.0.0" | ||||||
|  |   _macros: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: dart | ||||||
|  |     source: sdk | ||||||
|  |     version: "0.3.2" | ||||||
|  |   analyzer: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: analyzer | ||||||
|  |       sha256: "4959fec185fe70cce007c57e9ab6983101dbe593d2bf8bbfb4453aaec0cf470a" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "6.8.0" | ||||||
|  |   args: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: args | ||||||
|  |       sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "2.5.0" | ||||||
|  |   async: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: async | ||||||
|  |       sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "2.11.0" | ||||||
|  |   boolean_selector: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: boolean_selector | ||||||
|  |       sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "2.1.1" | ||||||
|  |   collection: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: collection | ||||||
|  |       sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.19.0" | ||||||
|  |   convert: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: convert | ||||||
|  |       sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "3.1.1" | ||||||
|  |   coverage: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: coverage | ||||||
|  |       sha256: c1fb2dce3c0085f39dc72668e85f8e0210ec7de05345821ff58530567df345a5 | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.9.2" | ||||||
|  |   crypto: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: crypto | ||||||
|  |       sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "3.0.5" | ||||||
|  |   ffi: | ||||||
|  |     dependency: "direct main" | ||||||
|  |     description: | ||||||
|  |       name: ffi | ||||||
|  |       sha256: "13a6ccf6a459a125b3fcdb6ec73bd5ff90822e071207c663bfd1f70062d51d18" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.2.1" | ||||||
|  |   file: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: file | ||||||
|  |       sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "7.0.1" | ||||||
|  |   frontend_server_client: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: frontend_server_client | ||||||
|  |       sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "4.0.0" | ||||||
|  |   glob: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: glob | ||||||
|  |       sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "2.1.2" | ||||||
|  |   http_multi_server: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: http_multi_server | ||||||
|  |       sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "3.2.1" | ||||||
|  |   http_parser: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: http_parser | ||||||
|  |       sha256: "40f592dd352890c3b60fec1b68e786cefb9603e05ff303dbc4dda49b304ecdf4" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "4.1.0" | ||||||
|  |   io: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: io | ||||||
|  |       sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.0.4" | ||||||
|  |   js: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: js | ||||||
|  |       sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "0.7.1" | ||||||
|  |   lints: | ||||||
|  |     dependency: "direct dev" | ||||||
|  |     description: | ||||||
|  |       name: lints | ||||||
|  |       sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "4.0.0" | ||||||
|  |   logging: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: logging | ||||||
|  |       sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.2.0" | ||||||
|  |   macros: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: macros | ||||||
|  |       sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "0.1.2-main.4" | ||||||
|  |   matcher: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: matcher | ||||||
|  |       sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "0.12.16+1" | ||||||
|  |   meta: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: meta | ||||||
|  |       sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.16.0" | ||||||
|  |   mime: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: mime | ||||||
|  |       sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "2.0.0" | ||||||
|  |   node_preamble: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: node_preamble | ||||||
|  |       sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "2.0.2" | ||||||
|  |   package_config: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: package_config | ||||||
|  |       sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "2.1.0" | ||||||
|  |   path: | ||||||
|  |     dependency: "direct main" | ||||||
|  |     description: | ||||||
|  |       name: path | ||||||
|  |       sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.9.0" | ||||||
|  |   pool: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: pool | ||||||
|  |       sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.5.1" | ||||||
|  |   pub_semver: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: pub_semver | ||||||
|  |       sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "2.1.4" | ||||||
|  |   shelf: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: shelf | ||||||
|  |       sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.4.2" | ||||||
|  |   shelf_packages_handler: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: shelf_packages_handler | ||||||
|  |       sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "3.0.2" | ||||||
|  |   shelf_static: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: shelf_static | ||||||
|  |       sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.1.3" | ||||||
|  |   shelf_web_socket: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: shelf_web_socket | ||||||
|  |       sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "2.0.0" | ||||||
|  |   source_map_stack_trace: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: source_map_stack_trace | ||||||
|  |       sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "2.1.2" | ||||||
|  |   source_maps: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: source_maps | ||||||
|  |       sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "0.10.12" | ||||||
|  |   source_span: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: source_span | ||||||
|  |       sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.10.0" | ||||||
|  |   stack_trace: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: stack_trace | ||||||
|  |       sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.12.0" | ||||||
|  |   stream_channel: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: stream_channel | ||||||
|  |       sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "2.1.2" | ||||||
|  |   string_scanner: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: string_scanner | ||||||
|  |       sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.3.0" | ||||||
|  |   term_glyph: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: term_glyph | ||||||
|  |       sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.2.1" | ||||||
|  |   test: | ||||||
|  |     dependency: "direct dev" | ||||||
|  |     description: | ||||||
|  |       name: test | ||||||
|  |       sha256: "713a8789d62f3233c46b4a90b174737b2c04cb6ae4500f2aa8b1be8f03f5e67f" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.25.8" | ||||||
|  |   test_api: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: test_api | ||||||
|  |       sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "0.7.3" | ||||||
|  |   test_core: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: test_core | ||||||
|  |       sha256: "12391302411737c176b0b5d6491f466b0dd56d4763e347b6714efbaa74d7953d" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "0.6.5" | ||||||
|  |   typed_data: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: typed_data | ||||||
|  |       sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.3.2" | ||||||
|  |   vm_service: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: vm_service | ||||||
|  |       sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "14.3.0" | ||||||
|  |   watcher: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: watcher | ||||||
|  |       sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.1.0" | ||||||
|  |   web: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: web | ||||||
|  |       sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.1.0" | ||||||
|  |   web_socket: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: web_socket | ||||||
|  |       sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "0.1.6" | ||||||
|  |   web_socket_channel: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: web_socket_channel | ||||||
|  |       sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "3.0.1" | ||||||
|  |   webkit_inspection_protocol: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: webkit_inspection_protocol | ||||||
|  |       sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "1.2.1" | ||||||
|  |   yaml: | ||||||
|  |     dependency: transitive | ||||||
|  |     description: | ||||||
|  |       name: yaml | ||||||
|  |       sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" | ||||||
|  |       url: "https://pub.dev" | ||||||
|  |     source: hosted | ||||||
|  |     version: "3.1.2" | ||||||
|  | sdks: | ||||||
|  |   dart: ">=3.4.0 <4.0.0" | ||||||
							
								
								
									
										18
									
								
								dart/pubspec.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								dart/pubspec.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | name: dartHello | ||||||
|  | version: 0.0.1 | ||||||
|  | description: >- | ||||||
|  |   A super simple example of calling C code from Dart with FFI | ||||||
|  | 
 | ||||||
|  | # This example isn't intended for publishing on pub.dev. | ||||||
|  | publish_to: none | ||||||
|  | 
 | ||||||
|  | environment: | ||||||
|  |   sdk: ^3.4.0 | ||||||
|  | 
 | ||||||
|  | dependencies: | ||||||
|  |   path: ^1.9.0 | ||||||
|  |   ffi: ^1.0.0 | ||||||
|  | 
 | ||||||
|  | dev_dependencies: | ||||||
|  |   lints: ^4.0.0 | ||||||
|  |   test: ^1.25.0 | ||||||
							
								
								
									
										12
									
								
								dart/ruapu-api/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								dart/ruapu-api/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | cmake_minimum_required(VERSION 3.7 FATAL_ERROR) | ||||||
|  | project(ruapu_library VERSION 1.0.0 LANGUAGES C) | ||||||
|  | add_library(ruapu_library SHARED ruapu.c ruapu.def) | ||||||
|  | include_directories(../../) | ||||||
|  | 
 | ||||||
|  | set_target_properties(ruapu_library PROPERTIES | ||||||
|  |     PUBLIC_HEADER ../../ruapu.h | ||||||
|  |     VERSION ${PROJECT_VERSION} | ||||||
|  |     SOVERSION 1 | ||||||
|  |     OUTPUT_NAME "ruapu" | ||||||
|  |     XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Hex_Identity_ID_Goes_Here" | ||||||
|  | ) | ||||||
							
								
								
									
										3
									
								
								dart/ruapu-api/ruapu.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								dart/ruapu-api/ruapu.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | #define RUAPU_IMPLEMENTATION | ||||||
|  | #include "ruapu.h" | ||||||
|  | 
 | ||||||
							
								
								
									
										5
									
								
								dart/ruapu-api/ruapu.def
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								dart/ruapu-api/ruapu.def
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | LIBRARY     ruapu | ||||||
|  | EXPORTS | ||||||
|  |    ruapu_rua | ||||||
|  |    ruapu_supports | ||||||
|  |    ruapu_init | ||||||
							
								
								
									
										63
									
								
								dart/ruapu_api.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								dart/ruapu_api.dart
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,63 @@ | |||||||
|  | import 'dart:ffi'; // 导入 dart:ffi 库 | ||||||
|  | import 'package:ffi/ffi.dart'; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | typedef RuapuRUA_C = Pointer<Pointer<Utf8>> Function(); | ||||||
|  | typedef RuapuRUA_Dart = Pointer<Pointer<Utf8>> Function(); | ||||||
|  | 
 | ||||||
|  | typedef RuapuInit_C = Void Function(); | ||||||
|  | typedef RuapuInit_Dart = void Function(); | ||||||
|  | 
 | ||||||
|  | typedef RuapuSupports_C = Int32 Function(Pointer<Utf8>); | ||||||
|  | typedef RuapuSupports_Dart = int Function(Pointer<Utf8>); | ||||||
|  | 
 | ||||||
|  | class Ruapu { | ||||||
|  |   final DynamicLibrary _nativeLib; | ||||||
|  | 
 | ||||||
|  |   Ruapu(String libraryPath) : _nativeLib = DynamicLibrary.open(libraryPath); | ||||||
|  | 
 | ||||||
|  |   /// 初始化 | ||||||
|  |   void init() { | ||||||
|  |     final RuapuInit_Dart ruapu_init = _nativeLib | ||||||
|  |         .lookup<NativeFunction<RuapuInit_C>>('ruapu_init') | ||||||
|  |         .asFunction(); | ||||||
|  |     ruapu_init(); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   /// 获取支持的ISA列表 | ||||||
|  |   List<String> getRuapuISA() { | ||||||
|  |     final RuapuRUA_Dart ruapu_rua = _nativeLib | ||||||
|  |         .lookup<NativeFunction<RuapuRUA_C>>('ruapu_rua') | ||||||
|  |         .asFunction(); | ||||||
|  | 
 | ||||||
|  |     Pointer<Pointer<Utf8>> result = ruapu_rua(); | ||||||
|  | 
 | ||||||
|  |     List<String> isas = []; | ||||||
|  |     int index = 0; | ||||||
|  |     while (true) { | ||||||
|  |       Pointer<Utf8> strPtr = result.elementAt(index).value; | ||||||
|  |       if (strPtr.address == 0) break; // 结束标志 | ||||||
|  |       String str = strPtr.toDartString(); | ||||||
|  |       isas.add(str); | ||||||
|  |       index++; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return isas; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   /// 检查是否支持某个ISA | ||||||
|  |   bool supportsISA(String isa) { | ||||||
|  |     final Pointer<Utf8> cIsa = isa.toNativeUtf8(); | ||||||
|  | 
 | ||||||
|  |     final RuapuSupports_Dart ruapu_supports = _nativeLib | ||||||
|  |         .lookup<NativeFunction<RuapuSupports_C>>('ruapu_supports') | ||||||
|  |         .asFunction(); | ||||||
|  | 
 | ||||||
|  |     int result = ruapu_supports(cIsa); | ||||||
|  | 
 | ||||||
|  |     malloc.free(cIsa); | ||||||
|  | 
 | ||||||
|  |     return result != 0; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								main.c
									
									
									
									
									
								
							| @ -52,6 +52,15 @@ int main() | |||||||
|     PRINT_ISA_SUPPORT(amxbf16) |     PRINT_ISA_SUPPORT(amxbf16) | ||||||
|     PRINT_ISA_SUPPORT(amxint8) |     PRINT_ISA_SUPPORT(amxint8) | ||||||
|     PRINT_ISA_SUPPORT(amxtile) |     PRINT_ISA_SUPPORT(amxtile) | ||||||
|  |     PRINT_ISA_SUPPORT(bmi1) | ||||||
|  |     PRINT_ISA_SUPPORT(bmi2) | ||||||
|  |     PRINT_ISA_SUPPORT(gfni) | ||||||
|  |     PRINT_ISA_SUPPORT(aesni) | ||||||
|  |     PRINT_ISA_SUPPORT(vaes) | ||||||
|  |     PRINT_ISA_SUPPORT(sha) | ||||||
|  |     PRINT_ISA_SUPPORT(rdrand) | ||||||
|  |     PRINT_ISA_SUPPORT(rdseed) | ||||||
|  |     PRINT_ISA_SUPPORT(tsx) | ||||||
| 
 | 
 | ||||||
| #elif __aarch64__ || defined(_M_ARM64) | #elif __aarch64__ || defined(_M_ARM64) | ||||||
|     PRINT_ISA_SUPPORT(neon) |     PRINT_ISA_SUPPORT(neon) | ||||||
| @ -135,6 +144,7 @@ int main() | |||||||
|     PRINT_ISA_SUPPORT(zbkb) |     PRINT_ISA_SUPPORT(zbkb) | ||||||
|     PRINT_ISA_SUPPORT(zbkc) |     PRINT_ISA_SUPPORT(zbkc) | ||||||
|     PRINT_ISA_SUPPORT(zbkx) |     PRINT_ISA_SUPPORT(zbkx) | ||||||
|  |     PRINT_ISA_SUPPORT(zcb) | ||||||
|     PRINT_ISA_SUPPORT(zfa) |     PRINT_ISA_SUPPORT(zfa) | ||||||
|     PRINT_ISA_SUPPORT(zfbfmin) |     PRINT_ISA_SUPPORT(zfbfmin) | ||||||
|     PRINT_ISA_SUPPORT(zfh) |     PRINT_ISA_SUPPORT(zfh) | ||||||
| @ -169,6 +179,10 @@ int main() | |||||||
|     PRINT_ISA_SUPPORT(xtheadsync) |     PRINT_ISA_SUPPORT(xtheadsync) | ||||||
|     PRINT_ISA_SUPPORT(xtheadvdot) |     PRINT_ISA_SUPPORT(xtheadvdot) | ||||||
| 
 | 
 | ||||||
|  |     PRINT_ISA_SUPPORT(spacemitvmadot) | ||||||
|  |     PRINT_ISA_SUPPORT(spacemitvmadotn) | ||||||
|  |     PRINT_ISA_SUPPORT(spacemitvfmadot) | ||||||
|  | 
 | ||||||
| #elif __openrisc__ | #elif __openrisc__ | ||||||
|     PRINT_ISA_SUPPORT(orbis32) |     PRINT_ISA_SUPPORT(orbis32) | ||||||
|     PRINT_ISA_SUPPORT(orbis64) |     PRINT_ISA_SUPPORT(orbis64) | ||||||
|  | |||||||
							
								
								
									
										42
									
								
								ruapu.h
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								ruapu.h
									
									
									
									
									
								
							| @ -82,28 +82,29 @@ static int ruapu_detect_isa(ruapu_some_inst some_inst) | |||||||
| #include <signal.h> | #include <signal.h> | ||||||
| #include <setjmp.h> | #include <setjmp.h> | ||||||
| 
 | 
 | ||||||
| static int g_ruapu_sigill_caught = 0; | static int g_ruapu_sig_caught = 0; | ||||||
| static sigjmp_buf g_ruapu_jmpbuf; | static sigjmp_buf g_ruapu_jmpbuf; | ||||||
| 
 | 
 | ||||||
| static void ruapu_catch_sigill(int signo, siginfo_t* si, void* data) | static void ruapu_catch_sig(int signo, siginfo_t* si, void* data) | ||||||
| { | { | ||||||
|     (void)signo; |     (void)signo; | ||||||
|     (void)si; |     (void)si; | ||||||
|     (void)data; |     (void)data; | ||||||
| 
 | 
 | ||||||
|     g_ruapu_sigill_caught = 1; |     g_ruapu_sig_caught = 1; | ||||||
|     siglongjmp(g_ruapu_jmpbuf, -1); |     siglongjmp(g_ruapu_jmpbuf, -1); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int ruapu_detect_isa(ruapu_some_inst some_inst) | static int ruapu_detect_isa(ruapu_some_inst some_inst) | ||||||
| { | { | ||||||
|     g_ruapu_sigill_caught = 0; |     g_ruapu_sig_caught = 0; | ||||||
| 
 | 
 | ||||||
|     struct sigaction sa = { 0 }; |     struct sigaction sa = { 0 }; | ||||||
|     struct sigaction old_sa; |     struct sigaction old_sa; | ||||||
|     sa.sa_flags = SA_ONSTACK | SA_RESTART | SA_SIGINFO; |     sa.sa_flags = SA_ONSTACK | SA_RESTART | SA_SIGINFO; | ||||||
|     sa.sa_sigaction = ruapu_catch_sigill; |     sa.sa_sigaction = ruapu_catch_sig; | ||||||
|     sigaction(SIGILL, &sa, &old_sa); |     sigaction(SIGILL, &sa, &old_sa); | ||||||
|  |     sigaction(SIGSEGV, &sa, &old_sa); | ||||||
| 
 | 
 | ||||||
|     if (sigsetjmp(g_ruapu_jmpbuf, 1) == 0) |     if (sigsetjmp(g_ruapu_jmpbuf, 1) == 0) | ||||||
|     { |     { | ||||||
| @ -111,8 +112,9 @@ static int ruapu_detect_isa(ruapu_some_inst some_inst) | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     sigaction(SIGILL, &old_sa, NULL); |     sigaction(SIGILL, &old_sa, NULL); | ||||||
|  |     sigaction(SIGSEGV, &old_sa, NULL); | ||||||
| 
 | 
 | ||||||
|     return g_ruapu_sigill_caught ? 0 : 1; |     return g_ruapu_sig_caught ? 0 : 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #elif defined __SYTERKIT__ | #elif defined __SYTERKIT__ | ||||||
| @ -223,6 +225,15 @@ RUAPU_INSTCODE(amxfp16, 0xc4, 0xe2, 0x7b, 0x5c, 0xd1) // tdpfp16ps %tmm0, %tmm1, | |||||||
| RUAPU_INSTCODE(amxbf16, 0xc4, 0xe2, 0x7a, 0x5c, 0xd1) // tdpbf16ps %tmm0, %tmm1, %tmm2
 | RUAPU_INSTCODE(amxbf16, 0xc4, 0xe2, 0x7a, 0x5c, 0xd1) // tdpbf16ps %tmm0, %tmm1, %tmm2
 | ||||||
| RUAPU_INSTCODE(amxint8, 0xc4, 0xe2, 0x7b, 0x5e, 0xd1) // tdpbssd %tmm0, %tmm1, %tmm2
 | RUAPU_INSTCODE(amxint8, 0xc4, 0xe2, 0x7b, 0x5e, 0xd1) // tdpbssd %tmm0, %tmm1, %tmm2
 | ||||||
| RUAPU_INSTCODE(amxtile, 0xc4, 0xe2, 0x7a, 0x49, 0xc0) // tilezero %tmm0
 | RUAPU_INSTCODE(amxtile, 0xc4, 0xe2, 0x7a, 0x49, 0xc0) // tilezero %tmm0
 | ||||||
|  | RUAPU_INSTCODE(bmi1, 0xc4, 0xe2, 0x78, 0xf2, 0xc0) // andn eax,eax,eax
 | ||||||
|  | RUAPU_INSTCODE(bmi2, 0xc4, 0xe2, 0x7b, 0xf6, 0xc0) // mulx eax,eax,eax
 | ||||||
|  | RUAPU_INSTCODE(gfni, 0x66, 0x0f, 0x38, 0xcf, 0xc0) // gf2p8mulb xmm0,xmm0
 | ||||||
|  | RUAPU_INSTCODE(aesni, 0x66, 0x0f, 0x38, 0xdc, 0xc0) // aesenc xmm0,xmm0
 | ||||||
|  | RUAPU_INSTCODE(vaes, 0xc4, 0xe2, 0x7d, 0xdc, 0xc0) // vaesenc ymm0,ymm0,ymm0
 | ||||||
|  | RUAPU_INSTCODE(sha, 0x0f, 0x38, 0xc9, 0xc0) // sha1msg1 xmm0,xmm0
 | ||||||
|  | RUAPU_INSTCODE(rdrand, 0x0f, 0xc7, 0xf0) // rdrand eax
 | ||||||
|  | RUAPU_INSTCODE(rdseed, 0x0f, 0xc7, 0xf8) // rdseed eax
 | ||||||
|  | RUAPU_INSTCODE(tsx, 0x0f, 0x01, 0xd6) // xtest
 | ||||||
| 
 | 
 | ||||||
| #elif __aarch64__ || defined(_M_ARM64) | #elif __aarch64__ || defined(_M_ARM64) | ||||||
| RUAPU_INSTCODE(neon, 0x4e20d400) // fadd v0.4s,v0.4s,v0.4s
 | RUAPU_INSTCODE(neon, 0x4e20d400) // fadd v0.4s,v0.4s,v0.4s
 | ||||||
| @ -314,6 +325,7 @@ RUAPU_INSTCODE(zbs, 0x48a51533) // bclr a0,a0,a0 | |||||||
| RUAPU_INSTCODE(zbkb, 0x08a54533) // pack a0,a0,a0
 | RUAPU_INSTCODE(zbkb, 0x08a54533) // pack a0,a0,a0
 | ||||||
| RUAPU_INSTCODE(zbkc, 0x0aa53533) // clmulh a0,a0,a0
 | RUAPU_INSTCODE(zbkc, 0x0aa53533) // clmulh a0,a0,a0
 | ||||||
| RUAPU_INSTCODE(zbkx, 0x28a52533) // xperm.n a0,a0,a0
 | RUAPU_INSTCODE(zbkx, 0x28a52533) // xperm.n a0,a0,a0
 | ||||||
|  | RUAPU_INSTCODE(zcb, 0x9d759d75) // c.not a0 c.not a0
 | ||||||
| RUAPU_INSTCODE(zfa, 0xf0108053) // fli.s ft0, min
 | RUAPU_INSTCODE(zfa, 0xf0108053) // fli.s ft0, min
 | ||||||
| RUAPU_INSTCODE(zfbfmin, 0x44807053) // fcvt.bf16.s ft0,ft0
 | RUAPU_INSTCODE(zfbfmin, 0x44807053) // fcvt.bf16.s ft0,ft0
 | ||||||
| RUAPU_INSTCODE(zfh, 0x04007053); // fadd.hs ft0, ft0, ft0
 | RUAPU_INSTCODE(zfh, 0x04007053); // fadd.hs ft0, ft0, ft0
 | ||||||
| @ -335,6 +347,10 @@ RUAPU_INSTCODE(xtheadmempair, 0xe0a1450b) // th.lwd a0,a0,(sp),#0,3 | |||||||
| RUAPU_INSTCODE(xtheadsync, 0x0180000b) // th.sync
 | RUAPU_INSTCODE(xtheadsync, 0x0180000b) // th.sync
 | ||||||
| RUAPU_INSTCODE(xtheadvdot, 0x8000600b) // th.vmaqa.vv v0,v0,v0
 | RUAPU_INSTCODE(xtheadvdot, 0x8000600b) // th.vmaqa.vv v0,v0,v0
 | ||||||
| 
 | 
 | ||||||
|  | RUAPU_INSTCODE(spacemitvmadot, 0xe200312b) // vmadot v2,v0,v0
 | ||||||
|  | RUAPU_INSTCODE(spacemitvmadotn, 0xe600b12b) // vmadot3 v2,v0,v1 //vmadot2 vmadot1
 | ||||||
|  | RUAPU_INSTCODE(spacemitvfmadot, 0xea00012b) // vfmadot v2,v0,v0
 | ||||||
|  | 
 | ||||||
| // RVV 1.0 support
 | // RVV 1.0 support
 | ||||||
| // unimp (csrrw x0, cycle, x0)
 | // unimp (csrrw x0, cycle, x0)
 | ||||||
| #define RUAPU_RV_TRAP() asm volatile(".align 2\n.word 0xc0001073") | #define RUAPU_RV_TRAP() asm volatile(".align 2\n.word 0xc0001073") | ||||||
| @ -429,6 +445,15 @@ RUAPU_ISAENTRY(amxfp16) | |||||||
| RUAPU_ISAENTRY(amxbf16) | RUAPU_ISAENTRY(amxbf16) | ||||||
| RUAPU_ISAENTRY(amxint8) | RUAPU_ISAENTRY(amxint8) | ||||||
| RUAPU_ISAENTRY(amxtile) | RUAPU_ISAENTRY(amxtile) | ||||||
|  | RUAPU_ISAENTRY(bmi1) | ||||||
|  | RUAPU_ISAENTRY(bmi2) | ||||||
|  | RUAPU_ISAENTRY(gfni) | ||||||
|  | RUAPU_ISAENTRY(aesni) | ||||||
|  | RUAPU_ISAENTRY(vaes) | ||||||
|  | RUAPU_ISAENTRY(sha) | ||||||
|  | RUAPU_ISAENTRY(rdrand) | ||||||
|  | RUAPU_ISAENTRY(rdseed) | ||||||
|  | RUAPU_ISAENTRY(tsx) | ||||||
| 
 | 
 | ||||||
| #elif __aarch64__ || defined(_M_ARM64) | #elif __aarch64__ || defined(_M_ARM64) | ||||||
| RUAPU_ISAENTRY(neon) | RUAPU_ISAENTRY(neon) | ||||||
| @ -512,6 +537,7 @@ RUAPU_ISAENTRY(zbs) | |||||||
| RUAPU_ISAENTRY(zbkb) | RUAPU_ISAENTRY(zbkb) | ||||||
| RUAPU_ISAENTRY(zbkc) | RUAPU_ISAENTRY(zbkc) | ||||||
| RUAPU_ISAENTRY(zbkx) | RUAPU_ISAENTRY(zbkx) | ||||||
|  | RUAPU_ISAENTRY(zcb) | ||||||
| RUAPU_ISAENTRY(zfa) | RUAPU_ISAENTRY(zfa) | ||||||
| RUAPU_ISAENTRY(zfbfmin) | RUAPU_ISAENTRY(zfbfmin) | ||||||
| RUAPU_ISAENTRY(zfh) | RUAPU_ISAENTRY(zfh) | ||||||
| @ -546,6 +572,10 @@ RUAPU_ISAENTRY(xtheadmempair) | |||||||
| RUAPU_ISAENTRY(xtheadsync) | RUAPU_ISAENTRY(xtheadsync) | ||||||
| RUAPU_ISAENTRY(xtheadvdot) | RUAPU_ISAENTRY(xtheadvdot) | ||||||
| 
 | 
 | ||||||
|  | RUAPU_ISAENTRY(spacemitvmadot) | ||||||
|  | RUAPU_ISAENTRY(spacemitvmadotn) | ||||||
|  | RUAPU_ISAENTRY(spacemitvfmadot) | ||||||
|  | 
 | ||||||
| #elif __openrisc__ | #elif __openrisc__ | ||||||
| RUAPU_ISAENTRY(orbis32) | RUAPU_ISAENTRY(orbis32) | ||||||
| RUAPU_ISAENTRY(orbis64) | RUAPU_ISAENTRY(orbis64) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user