diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-01-12 00:18:43 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-01-12 00:18:43 +0000 |
commit | b06b1e03c3fdc9b553f3869190e77b9516f22720 (patch) | |
tree | b23864f1b825e8a75a3b863913fbac18424ac38c /gcc/config/a29k | |
parent | 935abd69dfcfda3c34dd6e7114594939f796ae08 (diff) |
(output_prolog): Update debug reg map when we have -mkernel-registers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6382 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/a29k')
-rw-r--r-- | gcc/config/a29k/a29k.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/config/a29k/a29k.c b/gcc/config/a29k/a29k.c index 10a08b2379f..447751b7925 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. */ |