aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-01-11 19:18:43 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-01-11 19:18:43 -0500
commitb7f37b10e0224957c7e56b5f06d5e5bc3f127dd5 (patch)
treeb23864f1b825e8a75a3b863913fbac18424ac38c
parente9b5e15f608f671b46cc81fc4c1ade09bd3fb9a0 (diff)
downloadgcc-b7f37b10e0224957c7e56b5f06d5e5bc3f127dd5.zip
gcc-b7f37b10e0224957c7e56b5f06d5e5bc3f127dd5.tar.gz
gcc-b7f37b10e0224957c7e56b5f06d5e5bc3f127dd5.tar.bz2
(output_prolog): Update debug reg map when we have -mkernel-registers.
From-SVN: r6382
-rw-r--r--gcc/config/a29k/a29k.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/config/a29k/a29k.c b/gcc/config/a29k/a29k.c
index 10a08b2..447751b 100644
--- a/gcc/config/a29k/a29k.c
+++ b/gcc/config/a29k/a29k.c
@@ -1204,6 +1204,16 @@ output_prolog (file, size)
a29k_debug_reg_map[R_AR (i)] = R_LR (a29k_regstack_size + i + 2);
}
+ /* If using kernel register map, swap numbers for kernel and user
+ registers. */
+ if (TARGET_KERNEL_REGISTERS)
+ for (i = 0; i < 32; i++)
+ {
+ int tem = a29k_debug_reg_map[i];
+ a29k_debug_reg_map[i] = a29k_debug_reg_map[R_KR (i)];
+ a29k_debug_reg_map[R_KR (i)] = tem;
+ }
+
/* Compute memory stack size. Add in number of bytes that the we should
push and pretend the caller did and the size of outgoing arguments.
Then round to a doubleword boundary. */