Restrict i387_convert_register_p
authorYao Qi <yao.qi@linaro.org>
Wed, 24 May 2017 21:15:23 +0000 (22:15 +0100)
committerYao Qi <yao.qi@linaro.org>
Wed, 24 May 2017 21:15:23 +0000 (22:15 +0100)
gdb:

2017-05-24  Yao Qi  <yao.qi@linaro.org>

* i387-tdep.c (i387_convert_register_p): Return false if type
code isn't TYPE_CODE_FLT.

gdb/ChangeLog
gdb/i387-tdep.c

index 1234e14..29cd306 100644 (file)
@@ -1,5 +1,10 @@
 2017-05-24  Yao Qi  <yao.qi@linaro.org>
 
+       * i387-tdep.c (i387_convert_register_p): Return false if type
+       code isn't TYPE_CODE_FLT.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
        * alpha-tdep.c (alpha_convert_register_p): Return true if type
        length is 4.
        (alpha_register_to_value): Remove type length check.
index 9206109..925f4e5 100644 (file)
@@ -341,8 +341,9 @@ i387_convert_register_p (struct gdbarch *gdbarch, int regnum,
   if (i386_fp_regnum_p (gdbarch, regnum))
     {
       /* Floating point registers must be converted unless we are
-        accessing them in their hardware type.  */
-      if (type == i387_ext_type (gdbarch))
+        accessing them in their hardware type or TYPE is not float.  */
+      if (type == i387_ext_type (gdbarch)
+         || TYPE_CODE (type) != TYPE_CODE_FLT)
        return 0;
       else
        return 1;