about summary refs log tree commit diff stats
path: root/src/rv64detect.c
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-01-14 16:20:25 +0800
committerGitHub <noreply@github.com>2025-01-14 09:20:25 +0100
commit613f2cccf15674f91c9b539fe2ed6f5c4a1164c8 (patch)
tree8c725dc0594a73df1776d7c8ef547946bcc30942 /src/rv64detect.c
parentd91461f4681ebb61310a227a519cd6982e135e1a (diff)
downloadbox64-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.c59
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