diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-01-14 16:20:25 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-14 09:20:25 +0100 |
| commit | 613f2cccf15674f91c9b539fe2ed6f5c4a1164c8 (patch) | |
| tree | 8c725dc0594a73df1776d7c8ef547946bcc30942 /src/rv64detect.c | |
| parent | d91461f4681ebb61310a227a519cd6982e135e1a (diff) | |
| download | box64-613f2cccf15674f91c9b539fe2ed6f5c4a1164c8.tar.gz box64-613f2cccf15674f91c9b539fe2ed6f5c4a1164c8.zip | |
[CORE] Simplified xhead* detection and standardized extension display (#2261)
Diffstat (limited to 'src/rv64detect.c')
| -rw-r--r-- | src/rv64detect.c | 59 |
1 files changed, 9 insertions, 50 deletions
diff --git a/src/rv64detect.c b/src/rv64detect.c index b0664b05..ec41b482 100644 --- a/src/rv64detect.c +++ b/src/rv64detect.c @@ -92,59 +92,18 @@ void RV64_Detect_Function() // THead vendor extensions if (!rv64_zba) { - // Test XTheadBa with TH_ADDSL block = (uint32_t*)my_block; TH_ADDSL(A0, A0, A1, 1); BR(xRA); - rv64_xtheadba = Check(my_block); - - // Test XTheadBb with TH_SRRI - block = (uint32_t*)my_block; - TH_SRRI(A0, A1, 1); - BR(xRA); - rv64_xtheadbb = Check(my_block); - - // Test XTheadBs with TH_TST - block = (uint32_t*)my_block; - TH_TST(A0, A1, 1); - BR(xRA); - rv64_xtheadbs = Check(my_block); - - // Test XTheadCondMov with TH_MVEQZ - block = (uint32_t*)my_block; - TH_MVEQZ(A0, A0, A1); - BR(xRA); - rv64_xtheadcondmov = Check(my_block); - - // Test XTheadMemIdx with TH_LBIA - block = (uint32_t*)my_block; - TH_LBIA(A0, A2, 1, 1); - BR(xRA); - rv64_xtheadmemidx = Check(my_block); - - // Test XTheadMemPair with TH_LDD - block = (uint32_t*)my_block; - TH_LDD(A0, A1, A2, 0); - BR(xRA); - rv64_xtheadmempair = Check(my_block); - - // Test XTheadFMemIdx with TH_FLRD - block = (uint32_t*)my_block; - TH_FLRD(A0, A2, xZR, 0); - BR(xRA); - rv64_xtheadfmemidx = Check(my_block); - - // Test XTheadMac with TH_MULA - block = (uint32_t*)my_block; - TH_MULA(A0, A0, A1); - BR(xRA); - rv64_xtheadmac = Check(my_block); - - // Test XTheadFmv with TH_FMV_X_HW - block = (uint32_t*)my_block; - TH_FMV_X_HW(A0, A1); - BR(xRA); - rv64_xtheadfmv = Check(my_block); + rv64_xtheadba + = rv64_xtheadbb + = rv64_xtheadbs + = rv64_xtheadcondmov + = rv64_xtheadmemidx + = rv64_xtheadmempair + = rv64_xtheadfmemidx + = rv64_xtheadmac + = rv64_xtheadfmv = Check(my_block); } // Finish |