loongarch64:add $a7 to assembler constraints

Change-Id: I6252916f52ecb061b8b5ea80e602c25bac505132
Reviewed-on: https://chromium-review.googlesource.com/c/linux-syscall-support/+/3945798
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/linux_syscall_support.h b/linux_syscall_support.h
index 6dc5888..aab95e6 100644
--- a/linux_syscall_support.h
+++ b/linux_syscall_support.h
@@ -3949,11 +3949,11 @@
     #undef  LSS_BODY
     #define LSS_BODY(type,name,args...)                                       \
           register int64_t __res_a0 __asm__("a0");                            \
+          register int64_t __a7 __asm__("a7") = __NR_##name;                  \
           int64_t __res;                                                      \
-          __asm__ __volatile__ ("li.d $a7, %1\n"                              \
-                                "syscall 0x0\n"                               \
+          __asm__ __volatile__ ("syscall 0x0\n"                               \
                                 : "=r"(__res_a0)                              \
-                                : "i"(__NR_##name) , ## args                  \
+                                : "r"(__a7), ## args                          \
                                 : LSS_SYSCALL_CLOBBERS);                      \
           __res = __res_a0;                                                   \
           LSS_RETURN(type, __res)
@@ -4055,7 +4055,7 @@
                              : "r"(fn), "r"(__stack), "r"(__flags), "r"(arg),
                                "r"(__ptid), "r"(__tls), "r"(__ctid),
                                "i"(__NR_clone), "i"(__NR_exit)
-                             : LSS_SYSCALL_CLOBBERS);
+                             : "a7", LSS_SYSCALL_CLOBBERS);
       __res = __res_a0;
       }
       LSS_RETURN(int, __res);