Browse Source

add loongarch64 user.h structs; adjust elf_fpreg_t and ELF_NFPREG

user_regs_struct and user_fp_struct were missing from the initial
commit of the port.

the union type for elf_fpreg_t and the new value of ELF_NFPREG are
made consistent with glibc.
Hongliang Wang 1 year ago
parent
commit
ec325b3828
1 changed files with 21 additions and 2 deletions
  1. 21 2
      arch/loongarch64/bits/user.h

+ 21 - 2
arch/loongarch64/bits/user.h

@@ -1,5 +1,24 @@
 #define ELF_NGREG    45
-#define ELF_NFPREG   33
+#define ELF_NFPREG   34
+
+struct user_regs_struct {
+	unsigned long regs[32];
+	unsigned long orig_a0;
+	unsigned long csr_era;
+	unsigned long csr_badv;
+	unsigned long reserved[10];
+};
+
+struct user_fp_struct {
+	unsigned long fpr[32];
+	unsigned long fcc;
+	unsigned int fcsr;
+};
 
 typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
-typedef double elf_fpreg_t, elf_fpregset_t[ELF_NFPREG];
+
+typedef union {
+	double d;
+	float f;
+} elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];