]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/arch/loongarch.c
gdb: LoongArch: Add floating-point support
[thirdparty/binutils-gdb.git] / gdb / arch / loongarch.c
index 11310c1dd933cfe9acb9dc1ff673d569bd832b48..c48c2001e96151abffed0f8e12746e45d131b50a 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "../features/loongarch/base32.c"
 #include "../features/loongarch/base64.c"
+#include "../features/loongarch/fpu.c"
 
 #ifndef GDBSERVER
 #define STATIC_IN_GDB static
@@ -44,6 +45,11 @@ loongarch_create_target_description (const struct loongarch_gdbarch_features fea
   else if (features.xlen == 8)
     arch_name.append ("64");
 
+  if (features.fputype == SINGLE_FLOAT)
+    arch_name.append ("f");
+  else if (features.fputype == DOUBLE_FLOAT)
+    arch_name.append ("d");
+
   set_tdesc_architecture (tdesc.get (), arch_name.c_str ());
 
   long regnum = 0;
@@ -54,6 +60,9 @@ loongarch_create_target_description (const struct loongarch_gdbarch_features fea
   else if (features.xlen == 8)
     regnum = create_feature_loongarch_base64 (tdesc.get (), regnum);
 
+  /* For now we only support creating single float and double float.  */
+  regnum = create_feature_loongarch_fpu (tdesc.get (), regnum);
+
   return tdesc;
 }