diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-08-04 13:46:39 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-08-04 13:46:39 +0000 |
commit | a57f48a9ee01c7019453979bf975797b9e50b3aa (patch) | |
tree | 27b588a261891bbea7de5153b9b4b3ee7e24f2c6 | |
parent | beb53eef62044955be724ae56ab3dbe93b3eb764 (diff) | |
download | gcc-a57f48a9ee01c7019453979bf975797b9e50b3aa.tar.gz |
runtime: dump registers for Alpha
Patch from Uros Bizjak.
Reviewed-on: https://go-review.googlesource.com/53350
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250873 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 | ||||
-rw-r--r-- | libgo/runtime/go-signal.c | 41 |
2 files changed, 42 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index bf07b7f76f2..b86cb856d52 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -adac632f95d1cd3421c9c1df5204db10b6a92c44 +db685a1a9aa8b3b916dd6d1284895e01d73158e1 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c index 8c7ecbae3b5..a5a7cb8080a 100644 --- a/libgo/runtime/go-signal.c +++ b/libgo/runtime/go-signal.c @@ -298,4 +298,45 @@ dumpregs(siginfo_t *info __attribute__((unused)), void *context __attribute__((u } #endif #endif + +#ifdef __alpha__ + #ifdef __linux__ + { + mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext; + + runtime_printf("v0 %X\n", m->sc_regs[0]); + runtime_printf("t0 %X\n", m->sc_regs[1]); + runtime_printf("t1 %X\n", m->sc_regs[2]); + runtime_printf("t2 %X\n", m->sc_regs[3]); + runtime_printf("t3 %X\n", m->sc_regs[4]); + runtime_printf("t4 %X\n", m->sc_regs[5]); + runtime_printf("t5 %X\n", m->sc_regs[6]); + runtime_printf("t6 %X\n", m->sc_regs[7]); + runtime_printf("t7 %X\n", m->sc_regs[8]); + runtime_printf("s0 %X\n", m->sc_regs[9]); + runtime_printf("s1 %X\n", m->sc_regs[10]); + runtime_printf("s2 %X\n", m->sc_regs[11]); + runtime_printf("s3 %X\n", m->sc_regs[12]); + runtime_printf("s4 %X\n", m->sc_regs[13]); + runtime_printf("s5 %X\n", m->sc_regs[14]); + runtime_printf("fp %X\n", m->sc_regs[15]); + runtime_printf("a0 %X\n", m->sc_regs[16]); + runtime_printf("a1 %X\n", m->sc_regs[17]); + runtime_printf("a2 %X\n", m->sc_regs[18]); + runtime_printf("a3 %X\n", m->sc_regs[19]); + runtime_printf("a4 %X\n", m->sc_regs[20]); + runtime_printf("a5 %X\n", m->sc_regs[21]); + runtime_printf("t8 %X\n", m->sc_regs[22]); + runtime_printf("t9 %X\n", m->sc_regs[23]); + runtime_printf("t10 %X\n", m->sc_regs[24]); + runtime_printf("t11 %X\n", m->sc_regs[25]); + runtime_printf("ra %X\n", m->sc_regs[26]); + runtime_printf("t12 %X\n", m->sc_regs[27]); + runtime_printf("at %X\n", m->sc_regs[28]); + runtime_printf("gp %X\n", m->sc_regs[29]); + runtime_printf("sp %X\n", m->sc_regs[30]); + runtime_printf("pc %X\n", m->sc_pc); + } + #endif +#endif } |