* x86-64-tdep.c: Fix some formatting problems, mostly in comments.
authorMark Kettenis <kettenis@gnu.org>
Sat, 26 Oct 2002 10:37:45 +0000 (10:37 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sat, 26 Oct 2002 10:37:45 +0000 (10:37 +0000)
(x86_64_push_return_address): Add comment.
(x86_64_pop_frame): Make static.
(examine_argument): Clarify comment.
(x86_64_skip_prologue): Make prolog_expact variable static.

gdb/ChangeLog
gdb/x86-64-tdep.c

index 27ee9c7d24853bc8f113d05dba84374f2dc22d38..ef085932b7807d8ec6d4b45fa78c8c40182a4373 100644 (file)
@@ -1,5 +1,11 @@
 2002-10-26  Mark Kettenis  <kettenis@gnu.org>
 
+       * x86-64-tdep.c: Fix some formatting problems, mostly in comments.
+       (x86_64_push_return_address): Add comment.
+       (x86_64_pop_frame): Make static.
+       (examine_argument): Clarify comment.
+       (x86_64_skip_prologue): Make prolog_expact variable static.
+
        * dwarf2cfi.c: Fix some formatting problems.
        (context_cpy, read_encoded_pointer): Clarify comments.
 
index a3b7f670ae346a4efe66464921c82f2cb63d8ad3..74a4450f015e27b42ec4ee42c1ccec25e887ad70 100644 (file)
@@ -1,7 +1,6 @@
 /* Target-dependent code for the x86-64 for GDB, the GNU debugger.
 
    Copyright 2001, 2002 Free Software Foundation, Inc.
-
    Contributed by Jiri Smid, SuSE Labs.
 
    This file is part of GDB.
@@ -251,18 +250,20 @@ static const char *valid_flavours[] = {
 };
 static const char *disassembly_flavour = att_flavour;
 
+/* Push the return address (pointing to the call dummy) onto the stack
+   and return the new value for the stack pointer.  */
+
 static CORE_ADDR
 x86_64_push_return_address (CORE_ADDR pc, CORE_ADDR sp)
 {
   char buf[8];
 
   store_unsigned_integer (buf, 8, CALL_DUMMY_ADDRESS ());
-
   write_memory (sp - 8, buf, 8);
   return sp - 8;
 }
 
-void
+static void
 x86_64_pop_frame (void)
 {
   generic_pop_current_frame (cfi_pop_frame);
@@ -300,8 +301,8 @@ merge_classes (enum x86_64_reg_class class1, enum x86_64_reg_class class2)
   if (class1 == class2)
     return class1;
 
-  /* Rule #2: If one of the classes is NO_CLASS, the resulting class is
-     the other class.  */
+  /* Rule #2: If one of the classes is NO_CLASS, the resulting class
+     is the other class.  */
   if (class1 == X86_64_NO_CLASS)
     return class2;
   if (class2 == X86_64_NO_CLASS)
@@ -328,15 +329,13 @@ merge_classes (enum x86_64_reg_class class1, enum x86_64_reg_class class2)
   return X86_64_SSE_CLASS;
 }
 
+/* Classify the argument type.  CLASSES will be filled by the register
+   class used to pass each word of the operand.  The number of words
+   is returned.  In case the parameter should be passed in memory, 0
+   is returned.  As a special case for zero sized containers,
+   classes[0] will be NO_CLASS and 1 is returned.
 
-/* Classify the argument type.
-   CLASSES will be filled by the register class used to pass each word
-   of the operand.  The number of words is returned.  In case the parameter
-   should be passed in memory, 0 is returned. As a special case for zero
-   sized containers, classes[0] will be NO_CLASS and 1 is returned.
-
-   See the x86-64 PS ABI for details.
-*/
+   See the x86-64 psABI for details.  */
 
 static int
 classify_argument (struct type *type,
@@ -361,8 +360,8 @@ classify_argument (struct type *type,
        for (i = 0; i < words; i++)
          classes[i] = X86_64_NO_CLASS;
 
-       /* Zero sized arrays or structures are NO_CLASS.  We return 0 to
-          signalize memory class, so handle it as special case.  */
+       /* Zero sized arrays or structures are NO_CLASS.  We return 0
+          to signalize memory class, so handle it as special case.  */
        if (!words)
          {
            classes[0] = X86_64_NO_CLASS;
@@ -445,7 +444,7 @@ classify_argument (struct type *type,
                && (i == 0 || classes[i - 1] != X86_64_SSE_CLASS))
              classes[i] = X86_64_SSE_CLASS;
 
-           /*  X86_64_X87UP_CLASS should be preceeded by X86_64_X87_CLASS.  */
+           /* X86_64_X87UP_CLASS should be preceeded by X86_64_X87_CLASS.  */
            if (classes[i] == X86_64_X87UP_CLASS
                && (i == 0 || classes[i - 1] != X86_64_X87_CLASS))
              classes[i] = X86_64_SSE_CLASS;
@@ -499,8 +498,9 @@ classify_argument (struct type *type,
                  "classify_argument: unknown argument type");
 }
 
-/* Examine the argument and return set number of register required in each
-   class.  Return 0 ifif parameter should be passed in memory.  */
+/* Examine the argument and set *INT_NREGS and *SSE_NREGS to the
+   number of registers required based on the information passed in
+   CLASSES.  Return 0 if parameter should be passed in memory.  */
 
 static int
 examine_argument (enum x86_64_reg_class classes[MAX_CLASSES],
@@ -538,9 +538,9 @@ examine_argument (enum x86_64_reg_class classes[MAX_CLASSES],
 #define RET_SSE_REGS 2
 
 /* Check if the structure in value_type is returned in registers or in
-   memory. If this function returns 1, gdb will call STORE_STRUCT_RETURN and
-   EXTRACT_STRUCT_VALUE_ADDRESS else STORE_RETURN_VALUE and EXTRACT_RETURN_VALUE
-   will be used.  */
+   memory. If this function returns 1, GDB will call
+   STORE_STRUCT_RETURN and EXTRACT_STRUCT_VALUE_ADDRESS else
+   STORE_RETURN_VALUE and EXTRACT_RETURN_VALUE will be used.  */
 int
 x86_64_use_struct_convention (int gcc_p, struct type *value_type)
 {
@@ -554,7 +554,6 @@ x86_64_use_struct_convention (int gcc_p, struct type *value_type)
          needed_intregs > RET_INT_REGS || needed_sseregs > RET_SSE_REGS);
 }
 
-
 /* Extract from an array REGBUF containing the (raw) register state, a
    function return value of TYPE, and copy that, in virtual format,
    into VALBUF.  */
@@ -637,10 +636,10 @@ x86_64_extract_return_value (struct type *type, char *regbuf, char *valbuf)
     }
 }
 
-/* Handled by unwind informations.  */
 static void
 x86_64_frame_init_saved_regs (struct frame_info *fi)
 {
+  /* Do nothing.  Everything is handled by the stack unwinding code.  */
 }
 
 #define INT_REGS 6
@@ -862,30 +861,31 @@ x86_64_skip_prologue (CORE_ADDR pc)
   struct symtab_and_line v_sal;
   struct symbol *v_function;
   CORE_ADDR endaddr;
+  unsigned char prolog_buf[PROLOG_BUFSIZE];
 
-  /* We will handle only functions beginning with:
-     55          pushq %rbp
-     48 89 e5    movq %rsp,%rbp 
-   */
-  unsigned char prolog_expect[PROLOG_BUFSIZE] = { 0x55, 0x48, 0x89, 0xe5 },
-    prolog_buf[PROLOG_BUFSIZE];
+  /* We will handle only functions starting with: */
+  static unsigned char prolog_expect[PROLOG_BUFSIZE] =
+  {
+    0x55,                      /* pushq %rbp */
+    0x48, 0x89, 0xe5           /* movq %rsp, %rbp */
+  };
 
   read_memory (pc, (char *) prolog_buf, PROLOG_BUFSIZE);
 
-  /* First check, whether pc points to pushq %rbp, movq %rsp,%rbp.  */
+  /* First check, whether pc points to pushq %rbp, movq %rsp, %rbp.  */
   for (i = 0; i < PROLOG_BUFSIZE; i++)
     if (prolog_expect[i] != prolog_buf[i])
-      return pc;               /* ... no, it doesn't. Nothing to skip.  */
+      return pc;               /* ... no, it doesn't.  Nothing to skip.  */
 
-  /* OK, we have found the prologue and want PC of the first 
+  /* OK, we have found the prologue and want PC of the first
      non-prologue instruction.  */
   pc += PROLOG_BUFSIZE;
 
   v_function = find_pc_function (pc);
   v_sal = find_pc_line (pc, 0);
 
-  /* If pc doesn't point to a function with debuginfo, 
-     some of the following may be NULL.  */
+  /* If pc doesn't point to a function with debuginfo, some of the
+     following may be NULL.  */
   if (!v_function || !v_function->ginfo.value.block || !v_sal.symtab)
     return pc;