* elf-m10300.c (compute_function_info): Keep track of stack space
authorJeff Law <law@redhat.com>
Thu, 23 Jul 1998 17:41:00 +0000 (17:41 +0000)
committerJeff Law <law@redhat.com>
Thu, 23 Jul 1998 17:41:00 +0000 (17:41 +0000)
        needed by am33 movm instruction variant.

bfd/ChangeLog
bfd/elf-m10300.c

index 0cec1a781c35cdf4332913c7fd8d2a6f0dbda895..7cf1999232591d5b738e415751982679bd61260e 100644 (file)
@@ -1,5 +1,10 @@
 Thu Jul 23 11:29:43 1998  Jeffrey A Law  (law@cygnus.com)
 
+start-sanitize-am33
+       * elf-m10300.c (compute_function_info): Keep track of stack space
+       needed by am33 movm instruction variant.
+end-sanitize-am33
+
        * Re-add lost change:
         * elf-m10300.c (elf32_mn10300_link_hash_entry): Add new field
         "movm_stack_size".
index 13836b6a21e0f53c270d2bafa184a33b0a53fceb..7ed54ed3c1d9741ad2246cee90540cf5be9a5b0e 100644 (file)
@@ -2288,6 +2288,23 @@ compute_function_info (abfd, hash, addr, contents)
       /* "other" space.  d0, d1, a0, a1, mdr, lir, lar, 4 byte pad.  */
       if (hash->movm_args & 0x08)
        hash->movm_stack_size += 8 * 4;
+
+      /* start-sanitize-am33 */
+      if (bfd_get_mach (abfd) == bfd_mach_am33)
+       {
+         /* "exother" space.  e0, e1, mdrq, mcrh, mcrl, mcvf */
+         if (hash->movm_args & 0x1)
+           hash->movm_stack_size += 6 * 4;
+
+         /* exreg1 space.  e4, e5, e6, e7 */
+         if (hash->movm_args & 0x2)
+           hash->movm_stack_size += 4 * 4;
+
+         /* exreg0 space.  e2, e3  */
+         if (hash->movm_args & 0x4)
+           hash->movm_stack_size += 2 * 4;
+       }
+      /* end-sanitize-am33 */
     }
 
   /* Now look for the two stack adjustment variants.  */