Whoops, forgot to commit this yesterday:
[deliverable/binutils-gdb.git] / gdb / arm-linux-tdep.c
index 293a8b720579b16c291b6de8d3b8dde84bcf57fc..ae06160ca5b0f2c9b130a4f85134fc52498cd02e 100644 (file)
@@ -26,6 +26,7 @@
 #include "gdbcore.h"
 #include "frame.h"
 #include "regcache.h"
+#include "doublest.h"
 
 /* For arm_linux_skip_solib_resolver.  */
 #include "symtab.h"
@@ -104,7 +105,7 @@ arm_linux_extract_return_value (struct type *type,
 #define UNMAKE_THUMB_ADDR(addr) ((addr) & ~1)
          
 CORE_ADDR
-arm_linux_push_arguments (int nargs, value_ptr * args, CORE_ADDR sp,
+arm_linux_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
                          int struct_return, CORE_ADDR struct_addr)
 {
   char *fp;
@@ -159,7 +160,6 @@ arm_linux_push_arguments (int nargs, value_ptr * args, CORE_ADDR sp,
     {
       int len;
       char *val;
-      double dbl_arg;
       CORE_ADDR regval;
       enum type_code typecode;
       struct type *arg_type, *target_type;
@@ -179,14 +179,11 @@ arm_linux_push_arguments (int nargs, value_ptr * args, CORE_ADDR sp,
          calling the function.  */
       if (TYPE_CODE_FLT == typecode && REGISTER_SIZE == len)
        {
-         /* Float argument in buffer is in host format.  Read it and 
-            convert to DOUBLEST, and store it in target double.  */
          DOUBLEST dblval;
-         
+         dblval = extract_floating (val, len);
          len = TARGET_DOUBLE_BIT / TARGET_CHAR_BIT;
-         floatformat_to_doublest (HOST_FLOAT_FORMAT, val, &dblval);
-         store_floating (&dbl_arg, len, dblval);
-         val = (char *) &dbl_arg;
+         val = alloca (len);
+         store_floating (val, len, dblval);
        }
 
       /* If the argument is a pointer to a function, and it is a Thumb
This page took 0.025126 seconds and 4 git commands to generate.