aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1998-07-23 17:41:00 +0000
committerJeff Law <law@redhat.com>1998-07-23 17:41:00 +0000
commit91b9fccdf0ccb5251c0c4b275d22b07f9c835312 (patch)
treee1c0ee92b27ec6ac2e3b18d416183b55e8f9cc83
parentd5394da7ec8fecf90165a9df6c6a52fdaa15d67d (diff)
downloadgdb-91b9fccdf0ccb5251c0c4b275d22b07f9c835312.zip
gdb-91b9fccdf0ccb5251c0c4b275d22b07f9c835312.tar.gz
gdb-91b9fccdf0ccb5251c0c4b275d22b07f9c835312.tar.bz2
* elf-m10300.c (compute_function_info): Keep track of stack space
needed by am33 movm instruction variant.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf-m10300.c17
2 files changed, 22 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0cec1a7..7cf1999 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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".
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index 13836b6..7ed54ed 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -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. */