--- jffi-1.3.9+ds.orig/build.xml
+++ jffi-1.3.9+ds/build.xml
@@ -106,6 +106,12 @@
       </or>
     </condition>
 
+    <condition property="platform.cpu" value="loongarch64">
+      <or>
+        <os arch="loongarch64"/>
+      </or>
+    </condition>
+
     <condition property="platform.os" value="Windows">
       <os family="Windows"/>
     </condition>
--- jffi-1.3.9+ds.orig/src/main/java/com/kenai/jffi/Platform.java
+++ jffi-1.3.9+ds/src/main/java/com/kenai/jffi/Platform.java
@@ -110,6 +110,8 @@ public abstract class Platform {
         MIPS64EL(64),
        /** RISCV64 */
         RISCV64(64),
+       /** LOONGARCH64 */
+        LOONGARCH64(64),
         /** Unknown CPU */
         UNKNOWN(64);
 
@@ -254,6 +256,8 @@ public abstract class Platform {
                 return CPU.MIPS64EL;
             } else if (Util.equalsIgnoreCase("riscv64", archString, LOCALE)) {
                 return CPU.RISCV64;
+            } else if (Util.equalsIgnoreCase("loongarch64", archString, LOCALE)) {
+                return CPU.LOONGARCH64;
             }
             
 
--- jffi-1.3.9+ds.orig/src/main/java/com/kenai/jffi/internal/StubLoader.java
+++ jffi-1.3.9+ds/src/main/java/com/kenai/jffi/internal/StubLoader.java
@@ -165,6 +165,8 @@ public class StubLoader {
         MIPS64EL,
         /** RISC-V 64-bit little endian */
         RISCV64,
+        /** LOONGACH 64-bit little endian */
+        LOONGARCH64,
         /** Unknown CPU */
         UNKNOWN;
 
@@ -238,6 +240,8 @@ public class StubLoader {
         } else if (Util.equalsIgnoreCase("riscv64", archString, LOCALE)) {
             return CPU.RISCV64;
 
+        } else if (Util.equalsIgnoreCase("loongarch64", archString, LOCALE)) {
+            return CPU.LOONGARCH64;
         }
 
         // Try to find by lookup up in the CPU list
