* solib-svr4.c (svr4_truncate_ptr): New function.
[deliverable/binutils-gdb.git] / gdb / arm-linux-tdep.c
index 05c186adeab303d8cd24ce7de7302b74eb142601..ff896d95c4029f85b7444ab6dd8ee500519d6488 100644 (file)
 #include "gdbcore.h"
 #include "frame.h"
 #include "regcache.h"
+#include "doublest.h"
 
 /* For arm_linux_skip_solib_resolver.  */
 #include "symtab.h"
 #include "symfile.h"
 #include "objfiles.h"
 
+/* CALL_DUMMY_WORDS:
+   This sequence of words is the instructions
+
+   mov  lr, pc
+   mov  pc, r4
+   swi bkpt_swi
+
+   Note this is 12 bytes.  */
+
+LONGEST arm_linux_call_dummy_words[] =
+{
+  0xe1a0e00f, 0xe1a0f004, 0xef9f001
+};
+
 #ifdef GET_LONGJMP_TARGET
 
 /* Figure out where the longjmp will land.  We expect that we have
@@ -159,7 +174,6 @@ arm_linux_push_arguments (int nargs, struct value **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 +193,11 @@ arm_linux_push_arguments (int nargs, struct value **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
@@ -405,7 +416,7 @@ skip_hurd_resolver (CORE_ADDR pc)
   if (resolver)
     {
       struct minimal_symbol *fixup
-       = lookup_minimal_symbol ("fixup", 0, objfile);
+       = lookup_minimal_symbol ("fixup", NULL, objfile);
 
       if (fixup && SYMBOL_VALUE_ADDRESS (fixup) == pc)
        return (SAVED_PC_AFTER_CALL (get_current_frame ()));
This page took 0.023359 seconds and 4 git commands to generate.